引き続き↓この記事のことについて、つまり生成AIとの共同開発について、ぶちぶちと・・・取り留めなく・・・。
静的ページ + Cloud Runの2段ロケットへ
ようやく新しい構造(アーキテクチャ)への移行が済みました。
「静的ページ + Cloud Run」の二段構えになりました。これでようやく安心して眠れます。
なぜそんなに悩んでいたのか?(課金問題のリアル)
(3/8までの無料クレジットがあと3万円あるので実害はまだありません。)
インスタンスが起動して準備ができるまでの時間 診断実行時間 ユーザーが画面を見ている時間 使っていないのにインスタンスが起きている時間
3人のAIとの攻防戦
アニメーションで時間を稼ぐ!
入り口は静的HTML: 診断ボタンを押すまでは、Cloud Runは一円もかからず眠っています。叩き起こして待機: ボタンを押すとCloud Runを起動させますが、ここで35秒 かかります(コールドスタート)。演出でカバー: その間、表の静的ページではアニメーションを流して「待たされている感」を減らします。結果をパス: 処理が終わったら結果をまた静的ページに送ります。これなら、ユーザーは課金を気にせず、ゆっくり結果を読めます。- 再度診断へ:続けて診断したい場合は、5分以内ならCloud Runはまだ起きてますので、3秒ほどで診断画面が表示されます。

「35秒」を少しでも短くするために
プログラムの減量: ブラウザを軽量なChromiumに変えたり、重いフォントを削除したり。場所の引っ越し: 倉庫(保存先)を米国から、実行環境と同じベルギーへ。なぜベルギー?: 東京に置けば速くて安くなりそうですが、実はそうでもありません。Cloud Runの単価が安いベルギーのメリットが、速度の差を上回るからです。マルチステージビルド:っていうのもあるらしい・・・
え、なぜブラウザが必要なの?って話もしたいなぁ・・・
それと、日本のサイトはページを解析する時間がヨーロッパのサイトと比べて3倍ぐらいかかります。こればかりは、距離の問題なので妥協することに。
おまけ
Geminiに静的ページを作ってもらうためのプロンプトもGeminiに作ってもらいました。
依頼内容:Webアクセシビリティ・チェッカー「Bring Your Alibis」の扉ページ(index.html)を制作してください。
【目的】 サーバー(Cloud Run)の起動待ち時間(約30秒)を、ユーザーがワクワクして待てるようなアニメーションで演出し、診断ページへ誘導する。
【デザイン要件】
- テーマ: 「優しさ」「最新技術」「世界基準のアクセシビリティ」。
- メインビジュアル: ベルギー(ヨーロッパ)の地図、あるいはコンテナが運ばれてくるような、クリーンでミニマルなアニメーションをHTML/CSSのみで表現してください。
- メッセージ: 「現在、ベルギーの専用コンテナを起動しています。AIの目を準備中...」といった状況説明を表示してください。
- 機能:
- 診断したいURLを入力するテキストボックス。
- 「🚀 診断を開始する」ボタン。
- ボタン押下後、アニメーションを表示し、30秒後に自動的に指定のURL(StreamlitのURL)へ遷移する。
【技術制約】
- 画像ファイルを使わず、単一の HTML ファイル(CSS, JS内包)で完結させてください。
- Google Cloud Storage (GCS) にアップロードするだけで動くようにしてください。
ベルギーの地図はあまりにあまりだった(子供のおねしょみたいだった)ので、ベクトルのデータを探してきて差し替えました。
なんか垢抜けてないけど、自分じゃ作れないのでまぁいいです。

と、きょうはここまで。