15万ドルのLookerをHTMLファイルのバケットで置き換えられますか?
Can we replace a $150k Looker with a bucket of HTML files? (david.lequin.dev)
要約
ある企業では、年間15万ドルを支払うBIツールLookerの代替として、AI(Claude)が生成したHTMLファイルをホストするシンプルなシステムを構築しました。このシステムは、わずか数週間でLookerと同等以上のユーザーを獲得し、コストも大幅に削減されました。このアプローチは、既存のデータプラットフォーム(Snowflake、dbt)を活用し、AIの進化によってBIツールの構築コストが劇的に低下したことを示しています。
全文翻訳
15万ドルのLookerをHTMLファイルのバケットで置き換えられますか?
多くの企業と同様に、私たちはLookerに費用を払っています。年間15万ドルとしましょう。これは、約300シートの平均的なLookerライセンス費用1です。私たちは500人規模の会社で3人のデータプラットフォームエンジニアですが、週のほとんどは、Snowflakeへのデータ供給、2,000モデルを超えたdbtプロジェクトの管理、そしてその下にすべてを支えるAirflow、Airbyte、DataHub、Kubernetesの配管作業といった、地味な作業に費やされています。
2月、私たちのうちの一人がサイドプロジェクトとしてHTMLファイルをホストする仕組みを構築しました。それは半日で完了しました。8ヶ月後、この仕組みはすでに社内でLookerと同等かそれ以上の週次ユーザーを獲得しており、Lookerの利用者は3分の1に減少しています。
テックインフルエンサーたちは、ソフトウェアの終焉について投稿し続けており、中にはすべてのSaaSサブスクリプションをキャンセルして「バイブコーディング」したと主張する人もいます。彼らは、AIがB2B SaaSを破壊すると言っています。2
SaaSは死んだ、ということらしいですが、エンタープライズBIツールを置き換えることはできるのでしょうか?
「セルフホスト型」GitHubリポジトリのシェア
一方、「スラップ」が飛び交うHacker News
左:新しいGitHubリポジトリのうち「セルフホスト型」と説明されているもののシェア。右:「スラップ」という言葉を含むHacker Newsのコメントのシェア。3
スラップは良くなった
1年前、私はほとんどのAI出力はスラップ(質の低いもの)だと思っていましたし、実際そうでした。私たちはいくつかの「データをチャットする」デモを作成しましたが、4つのテーブルしかないおもちゃのスキーマでは素晴らしく見えましたが、私たちの規模では決してうまく機能しませんでした。SQLはエラーなく実行されましたが、数値が間違っていたのです。それははるかに悪いことです。
その後、Claude Code with Opus 4.5 が非常に優秀になりました。本当に、本当に優秀になりました。1月上旬には、会社全体での導入が急増しました。私たちのリポジトリで作業し、ツールを使用することができました。さらに、回答する前に数値を確認するためのクエリを実行することもできました。これは、巧妙に聞こえる応答を得ることよりもはるかに重要でした。数週間以内に、ターミナルを開いたことのない金融、オペレーション、マーケティングの誰もが一日中プロンプトを入力していました。突然、誰もがプロンプトを入力し、誰もクリックしなくなりました。
この頃、Claudeは大量のHTMLを生成し始めました。分析を依頼すると、グラフが含まれた単一のファイルが得られ、正直なところ、それらのページの中にはLookerダッシュボードよりも見栄えの良いものもありました。問題は、それが誰かのダウンロードフォルダに保存されることでした。共有するには、Slackに添付して、うまくいけば、という状態でした。これは、Anthropicがチームおよびエンタープライズ向けの共有可能なアーティファクトをリリースするずっと前のことでした(2026年6月)。私たちは、この新しい種類のダッシュボードを共有する方法を本当に必要としていました。
ある日、私たちのチームのMaddyが、それらをすべてWebサーバーに、社内ドメイン名で配置したと言いました。その日の終わりまでに、彼女はそれを「バイブコーディング」しました。S3にファイルを保存する小さなサービス、その前面にあるSSO、そして(いくつかの)テストです。私たちはすでにすべてをKubernetesで実行しているので、サービスのデプロイは、TerraformモジュールとHelmチャートを追加する問題にすぎませんでした。その配管がすべて整っていたので、全体がずっと簡単になりました。
彼女は小さなPythonスクリプトを書き、それをClaudeプラグインにパッケージ化しました。ユーザーはClaudeにHTMLを書かせ、スクリプトはそれを(SSO経由で)プッシュし、社内の誰でもリンクを開くことができました。当初、ファイルはプレーンな静的HTMLでした。3月には、なぜやらないのかと思い、ビューアのSnowflake OAuthトークンを使用したライブクエリAPIを追加しました。これは今年最高の決断でした。
結局、権限モデルを書く必要はありませんでした。Snowflakeにはすでにそれがありました。長年維持してきたロールがあり、Snowflakeがセールステーブルを読み取れないと言えば、ダッシュボードも読み取れません。4月までに、Snowflake OAuthが唯一のログイン方法になりました。
人々はそれを気に入りました。その理由は、BI業界にとっては恥ずかしいことですが、ダッシュボードが実際に良く見えたからです。
Lookerのタイルは、固定されたチャートタイプのリストと固定された色のセットを持つボックスであり、これまでに作られた他のすべてのLookerタイルと同じように見えます。醜く、個性がありません。
[画像: A Looker dashboard: a line chart, bar charts, big-number tiles and a pie chart in the default Looker style]
固定タイルの、醜いLookerダッシュボード
[画像: A free-form HTML weekly business review with trend sparklines, status pills and progress bars]
1分未満で生成された、自由形式のLLM生成HTML
固定タイルの制約を取り除くことで、ユーザーは自由形式のHTMLを生成し、見栄えが良くなるまでプロンプトで調整できるようになりました。彼らはそれを気に入りました。メールとSlackのエクスポートは4月に、パラメータは5月に登場し、週次ビューアーは3月の23人から6月には136人に増加しました。経営陣はリンクを共有し始めました。人々はまた、このツールを自分たちのものにしました。私たちは考えもしなかったユースケースを見つけ、ダッシュボードをスケジュールで自動再生するように設定し、ボタンを追加し、BIツールでは決して許可されないようなワイルドなデザインとUXを構築しました。
この時点でのセキュリティはひどいものでした。本当にひどいものでした。ダッシュボードのJavaScriptは、セッションと同じオリジンで実行され、権限はなく、すべての従業員がすべてのダッシュボードを読み取ることができました。基本的に、これは大きなXSSの穴でした。つまり、どのダッシュボードも、それを開いた人の代わりにコードを実行し、その人の名前でデータを引き出すことができました。私たちはそれを知っていましたが、内部でVPNとSSO経由でアクセスでき、他にこの仕事をするものがなかったため、それでもリリースしました。
あなた「Xのダッシュボードを作って」
データビジュアライゼーションスキル
テンプレート、チャートルール、公開方法
Claudeがデータを見て、ページを作成
単一のHTMLファイル
チャート+JS+SQL
私たちのプラットフォームがページをホストし、クエリを実行
同僚がリンクを開く
ダッシュボードがブラウザで実行
SnowflakeがSQLを実行
ASK(要求)
WRITE(作成)
PUBLISH(公開)
OPEN(開封)
「データをください」
ビューアとして
Claudeがページを作成し、プラットフォームがそれをホストし、クエリはビューアとして実行されます。
OK、きちんとやろう
私たちのチームでは、「BIツールを構築しよう」というのがジョークになりました。それは数ヶ月間ジョークのままでしたが、私たちが深入りしすぎていることが明らかになるまで続きました。私たちは、セキュリティモデルに誇りを持てないものに数ヶ月のバイブコーディングを積み重ね、会社の半分がそれを使用していました。私たちはジョークをやめ、真剣に言いました。「BIツールを構築しよう」。私たちはホワイトボードの前に座り、主にセキュリティモデルの修正方法を考え、失いたくないものを合意しました。それは、同じS3バケット、移行なし、すでに使用しているユーザーに何も壊れないこと、そして以前と同じように簡単に公開できることでした。
誰もが同意したこと:誰でも単一のプロンプトで任意のHTMLをプッシュできること、レビュープロセスなし、テンプレートなし、承認済みウィジェットのリストなし。私たちはそれを引き続き擁護します。
人々をダッシュボードから遠ざける制約はすべて、彼らをダウンロードフォルダに送り返します。
重要なガバナンスはすでにアップストリーム、つまりdbtモデルとSnowflakeのロールで発生しています。したがって、ダッシュボード自体は、人々が望むように、緩く、速く、見栄えの良いままでいられます。
解決すべき4つの問題がありました。
スクリプトの代わりに1つのコネクタ。 アップロードスクリプトは2つのリポジトリと1つのプラグインにコピーされ、各コピーは少しずつ異なっていました。私たちはそれらすべてを、会社全体の単一のリモートMCPコネクタに置き換えました。これにより、claude.ai、Claude Code、Slack内のClaude、および私たち自身のアナリストエージェントがすべて同じツールを呼び出すようになりました。コネクタはあなたのSnowflakeトークンを渡します。APIはSELECT CURRENT_USER()であなたの身元を確認します。AIがアップロードしたものはすべて下書きとして着陸し、人間が「公開」をクリックする必要があります。
誰か
「Xのダッシュボードを作って」
Claude chat · Code · Slack · エージェント · CI
コネクタ
会社全体の単一MCPサーバー
API
下書き → あなたが公開をクリック
S3
ファイル
Postgres
バージョン、権限
Snowflake
あなたが誰かを知っている
ASK(要求)
MCP
あなたのトークン
ファイル
メタデータ
あなたは誰?
Claudeがダッシュボードを作成し、それを要求した人が、自身のSnowflake IDの下で所有します。
すべてのダッシュボードを敵対的とみなす。 これは実際に考えなければならなかった部分です。製品全体が基本的にXSSを前提とした設計になっています。誰でも同僚のブラウザで実行されるJavaScriptをアップロードでき、誰もレビューせず、その同僚がCFOである可能性もあります。XSSをブロックすることはできません。なぜならXSSが製品そのものだからです。そのため、私たちの仕事は、それが何も到達できないようにすることです。この理由から、私たちのセキュリティモデルは「敵対的とみなす」ことから始まります。各ダッシュボードは、Cookieを持たず、厳格なCSPを持つ独自のオリジン上のサンドボックス化されたiframeで実行されます。それが親ページと通信できる唯一のことは、postMessageを介してです。親はメッセージを送信したユーザーを確認し、セッションをアタッチしてAPIを呼び出します。コンテンツトークンは1時間有効で、1つのダッシュボード、1人のビューア、1つのホストで機能します。
同僚のブラウザ
サンドボックス
Claudeが作成したダッシュボード、誰も信頼していない
Cookieなし · 厳格なCSP
シェル
セッションを保持し、誰が要求しているかを確認
API
このダッシュボードを見ても良いですか?
Snowflake
あなたとしてSQLを実行、あなたのロールが決定
POSTMESSAGE
行数 + あなたのセッション、あなたとして
ダッシュボードコードは決して認証情報に触れることはなく、すべてのクエリはそれを見ているユーザーとして実行されます。
サンドボックスはブラウザを保護します。また、ダッシュボードの各新しいバージョンを非同期で読み取る別のメタデータサービスを作成しました。それはHTML全体とSnowflakeクエリを抽出します。ページがロードするスクリプトと、データがどこに送信されるかを確認します。次に、一連のルールがこれらの事実を判断します。ほとんどのルールは報告のみを行います。生のデータではなくdbtモデルを読み取るダッシュボード、バージョンにピン留めされていないスクリプト、または90日間開かれていないダッシュボードをフラグ付けします。一部のルールはダッシュボードをブロックできます。たとえば、ここで誰も使用したことのないパッケージからのスクリプト、またはCSPがブロックできない唯一の出口であるWebRTC接続などです。ブロックされたダッシュボードはロードされません。ビューアは警告を表示し、ページが実行される前にそれを承認する必要があります。
API
新しいバージョン
公開済み
キュー
メタデータサービス
何をするか · クエリするテーブル · ロードするスクリプト · データを送信する場所
バージョンごとに1回保存
イベント
ルール!
報告
作成者が確認できるフラグ
✕ブロック
ビューアはページ実行前に警告を表示
✓レビュー済み
プラットフォームによってチェックされ、人によるものではない
1日1回:90日間開かれたか?
チェックは公開後に行われるため、誰も待つ必要はありません。
SnowflakeにIDと権限を任せる。 すべてのクエリは、ビューア自身のトークンで実行されます。ダッシュボードの共有は、データアクセスを共有しません。これはセキュリティ機能であり、怠惰な機能でもあります。ログインするすべての人がすでに適切なロールを持つSnowflakeユーザーを持っているため、データ権限を構築または維持する必要はありませんでした。
コンテンツ管理。 この部分は、約1週間で「バイブコーディング」しましたが、ほとんどデザインは必要ありませんでした。スペース、フォルダ、共有のためにGoogle Driveをコピーしました。なぜなら、誰もがGoogle Driveの仕組みをすでに知っているからです。ビューア、エディタ、オーナー、権限はフォルダツリーを下に流れ、最も強い権限が勝ちます。バージョンはコンテンツハッシュによって保存され、復元するとドラフトになります。次に、検索、いいね、スケジュールされたエクスポート、およびHRシステムから毎時間同期されるチームです。セキュリティモデルと比較してください。これは、実際の思考のほとんどが行われた場所です。
開発に数週間かかり、達成しました。
その後、それは広まりました。人々はSlackスレッドでClaudeにタグ付けし、ダッシュボードを受け取るようになりました。私たちのアナリストエージェントは独自のダッシュボードを公開し、一部のリポジトリはCIから直接公開し、ほとんどの人は自分のClaudeから公開しているので、すべてのダッシュボードはそれを作成した人に少し似たものになります。今日では、それはどこにでもあります。
325コミット、約74,000行のコード(うち20,000行はテスト)、そして約6.4kドルのClaudeトークン。
これが私たちの側の全費用です。8ヶ月、3人のエンジニアがサイドで作業し、さらに数人の友人がPRを送りました。Claudeがコードの大部分を書きました。私たちはホワイトボードで考え、たくさん議論し、すべてレビューしました。
ダッシュボードあたり0.50ドル、それはBIにとって何を意味するのか?
利用者数(週あたり)
Lookerの利用はクラッシュではなく漏れ出しました。すべてを移行したわけではありません。一部のチームはまだLookerにいますが、そのダッシュボードのいくつかはまだ代替がありません。人々がLookerの代わりにこれを使用した理由は、ダッシュボードの構築が高価でなくなったことです。それが、どれほど安価なのかを正確に知りたいと思わせました。トークンで支払うことの利点は、エンジニアリング時間ではなく、測定が容易であることです。
ここでは、アナリストエージェントを代理として使用します。なぜなら、それは正確に測定できるビルダーだからです。すべての実行は、トークンとそのコストとともにログに記録され、すべての公開はそれを生成した実行にリンクされます。
ダッシュボードごとに、エージェントは最初の質問から完成したページまで約100万トークンを消費します。それをOpus 5.5に移行した今、ダッシュボードのコストは2.50ドルから約0.50ドルに下がりました。エージェントは同じ作業を行いますが、トークンが安くなっただけです。これが本当の話です。ソフトウェアの構築コストは、トークンコストと同じになり、その価格は下がり続けています。
BIツールは主にクエリを画像に変換する方法であり、画像は現在約0.50ドルのトークンで作成できます。その部分に対して15万ドルのライセンスを正当化するのは困難になります。
週次ダッシュボードコスト
では、構築するか購入するか?
これが、最初のコミットから現在までの全体の請求書です。
8ヶ月、2026年2月から10月
自社で構築
費やしたすべて
$8.3k
12倍少ない
Lookerライセンス
平均15万ドルでの8ヶ月
$100k
Claudeトークン $6.4k
AWS $1.9k
現在、独自のデータベースを備えたこのシステムの運用コストは、AWSで年間約6,000ドルです。さらに、機能追加のために費やすClaudeの費用は、7月以降月額約1,300ドルです。年間2万ドルとしましょう。Lookerの15万ドルと比較して、その2万ドルのほとんどは、維持費ではなく新しいものを構築するための費用です。
Lookerを購入したとき、私たちは4つのものを購入していました。チャートを描画するUI、権限モデル、セマンティックレイヤー、そしてそれをホストする場所です。Claudeは今、一度に1つのダッシュボードずつチャートを描画します。
Snowflakeはすでに権限を持っており、dbtはセマンティクスを持ち、HTMLファイルをホストするコストは約月500ドルです。
それらを取り除くと、残るのは15万ドルの請求書です。
私たちだけではありません。ますます多くの声を聞きます。堅実で確立された企業が、非常に高価な分析サブスクリプションをキャンセルしています。Amjad MasadはPlatformerに、Replitについても同様の話をしました。彼は「ウェアハウスを本番Postgresに接続してレポートを自分で構築できるようになったら、『分析製品のほとんどをキャンセルまたは縮小した』」と述べています。
私たちのケースでは、既存のスタックを中心にダッシュボードツールを構築するコストは、Lookerに支払っていた費用のほんの一部でした。私たちにとって、重要な部分はすでにdbtとSnowflakeにありました。モデル、権限、データです。Lookerはその上にあり、それをダッシュボードに変えていました。それが、私たちが置き換えることができると見つけた部分です。
上記の請求書には、最大のコスト、つまり私たち自身は含まれていません。3人のエンジニアが8ヶ月を費やしました。これは、データプラットフォームチームが日常的に行うすべての作業に加えてのことです。パイプライン、dbtプロジェクト、ウェアハウス、Kubernetesクラスター、オンコール対応。それらのどれも止まりませんでした。時間の正確な数値を示すことはできません。なぜなら、それらは私たちがやっていた他のすべての作業に分散されていたからです。これを構築するためにチームを雇う必要がある場合、計算は異なります。
すでに堅実なプラットフォームがあり、それをよく知っているチームがいる場合、残りはほとんどClaudeの時間であり、Claudeの時間は安価です。
私は、境界線はスケールにあると主張します。AWSとSnowflakeは、誰も「バイブコーディング」できないものを販売しています。データセンター、ペタバイト価格のストレージ、何百万もの他の顧客が共有しているため安価なコンピューティングです。BIは特に脆弱だと思います。なぜなら、少なくとも私たちにとっては、その価値の多くはダッシュボードの構築と提示にあったからです。Claudeは今、それをわずかなコストで実行できます。真のスケールメリットを持つ製品は別の話ですが、より多くの企業がBIスタックの一部を自分で置き換え始めるとしても、私は驚かないでしょう。
Claude Dashboardsについては?
Anthropicは、この投稿の1週間前の10月8日にClaude Dashboardsをベータ版で発表しました。したがって、当然の疑問は、待って購入すべきだったのか?ということです。
実際にはできませんでした。私たちは8ヶ月前に開始し、それは存在しませんでした。もし今日ゼロから始めるなら、正直に言って、まずそれを検討するでしょう。それはAIネイティブであり、Lookerが持つレンダリングの問題がありません。もしあなたのチームが今日何も持っていないなら、それはおそらく正しい選択でしょう。
私たちにとって、ダッシュボードはそれの一部にすぎません。このツールは、私たちのチームがすでに作業している方法に組み込まれています。それは私たちのエージェント制御プレーン、分析プラットフォーム、Slackと連携し、私たちが独自に構築した多くのワークフローを備えています。Claude Dashboardsがその一部をカバーするかもしれませんが、すべてを接続する方法をまだ考え出す必要があります。そして、機能が変更されたり、価格が上昇したりした場合、それに対処する必要があります。
したがって、答えは同じです。あなたのやっていることに合ったソフトウェアが必要で、すでに実行するためのプラットフォームと専任チームがいる場合、スケールが堀でない限り、構築してください。