メインコンテンツへスキップ
応用編 API・開発 2026.06.25 / Gemini入門ラボ編集部

Gemini APIアプリをCloud Run / Cloud Functionsにデプロイする【2026】

Gemini Cloud Run デプロイの考え方を解説。ローカルで動くGemini APIアプリをサーバー管理不要のサーバーレス(Cloud Run / Cloud Functions)に載せて公開する流れと、両者の使い分け、APIキーを安全に扱う方法、コストやタイムアウトの勘所まで、API開発者向けに整理します。

非公式 当サイトは Google 非公式の独立メディアです。現在、記事に広告・アフィリエイトリンクは掲載していません(今後掲載する場合は記事の冒頭で明示します)。 仕様・料金は変わることがあるため、重要な点は公式情報で最新をご確認ください。

⚠️ この記事は開発者向けです。 Gemini API をプログラムから使う話で、コードを書く前提の内容です。 チャットとして使いたい方は、Geminiとは何かGeminiの始め方 をご覧ください。そちらはコードを書きません。

ローカルで作った Gemini API アプリを「自分のパソコンの外」で動かして、URL でみんなが使える状態にしたい。そんなときに役立つのが Gemini Cloud Run デプロイ をはじめとするサーバーレスへの公開です。この記事では、Cloud Run と Cloud Functions の違いと選び方、デプロイのおおまかな流れ、そしてAPIキーを安全に扱う運用のコツまで、API開発者向けにやさしく整理します。

結論:手元のGemini APIアプリを「サーバー管理なし」で公開できる

先に要点だけ言うと、Cloud Run や Cloud Functions を使うと、次のことができます。

  • ローカルで動くGemini APIアプリを、そのままインターネットに公開できる: 自分のPCを起動し続けなくても、URL経由でアクセスできるサービスにできる
  • サーバーの管理がいらない: OSのアップデートや台数の増減(スケール)をクラウド側が面倒を見てくれるので、アプリのコードに集中できる
  • アクセスに応じて自動でスケールする: 利用が増えれば自動で処理能力が増え、来ない間は小さく保たれる(従量課金と相性が良い)

つまり、「自分のPCで動くプログラム」を「誰でも使えるWebサービス」に変えるのが、ここでやることです。難しいインフラ運用を肩代わりしてくれるのがサーバーレスの魅力です。

この記事は概念と流れの整理が目的です。具体的なコマンドやSDKの細かな指定は更新が速いので、断定は避け、最後に公式ドキュメントへ案内します。

なぜサーバーレス(Cloud Run / Cloud Functions)なのか

Gemini API アプリを公開する方法はいくつもありますが、サーバーレスが入門に向いているのは次の理由からです。

  • サーバーを自分で立てて管理しなくてよい: 仮想マシンの構築・保守・セキュリティパッチといった手間が大幅に減る
  • 自動でスケールする: アクセスが急に増えても、基本はクラウド側が処理能力を調整してくれる
  • 従量課金でムダが出にくい: 使われていない時間のコストを抑えやすく、個人開発や小さなサービスでも始めやすい
  • 公開URLがすぐ手に入る: デプロイすると、外部からアクセスできるURLが割り当てられる

特に Gemini API のように「リクエストが来たときだけ処理する」使い方は、常時サーバーを動かしておくより、必要なときに立ち上がるサーバーレスと相性が良いです。

Cloud RunとCloud Functionsの違いと選び方

どちらも Google Cloud のサーバーレスですが、向いている用途が少し違います。

ざっくりした違い

Cloud RunCloud Functions
単位コンテナ(アプリ一式)関数(1つの処理)
イメージ小さなAPIサーバーを丸ごと載せる「この処理だけ」を置く
向くもの複数のエンドポイントを持つAPI、常駐的なサーバー的アプリ特定のイベントに反応する軽い処理
自由度高い(好きな構成のコンテナを動かせる)手軽(関数を書いて置くだけに近い)

選び方の目安

  • Cloud Runが向くケース: 「チャットボットのAPI」「複数の機能をまとめたGemini APIサーバー」など、まとまった機能を一つのサービスとして公開したいとき。コンテナ単位なので、使うライブラリや構成を自由に決められます
  • Cloud Functionsが向くケース: 「フォームが送信されたら要約する」「アップロードをきっかけにGeminiで分類する」など、何かのイベントに反応する軽い1機能を置きたいとき

迷ったときの考え方はシンプルです。まずシンプルなほうで試し、足りなくなったら見直す。最初から完璧な構成を狙わず、動くものを公開してから育てるのが現実的です。

両サービスの最新の機能差・対応言語・制限値は更新されます。細かい仕様で迷ったら、Cloud Run の公式ドキュメントCloud Functions の公式ドキュメントで最新を確認してください。

デプロイの流れ(概略)

ここでは「どんな順番で進むか」という全体像をつかみます。サービスやツールによって細部は変わるため、正確なコマンドや手順は公式ドキュメントを正としてください。あくまで流れのイメージです。

おおまかなデプロイの流れ(イメージ):
  1. ローカルでGemini APIアプリを動くようにする
       └ APIキーは環境変数から読む(コードに直書きしない)
  2. 公開用の形に整える
       └ Cloud Run ならコンテナ化、Functions なら関数として用意
  3. APIキーを安全に渡す設定をする
       └ 環境変数 / Secret Manager に登録(リポジトリには入れない)
  4. デプロイして公開URLを得る
  5. 公開URLにアクセスして動作確認&ログ確認

ポイントは、ローカルで「環境変数からキーを読む」形にしておけば、本番でも同じ仕組みで安全に渡せることです。ローカルとデプロイ先で読み込み方をそろえておくと、移行でつまずきにくくなります。

AI Studio から作ったアプリを Cloud Run へ公開する流れも用意されており、その場合はAPIキーがサーバー側の環境に注入され、ブラウザ側のコードには含まれない形で公開されます。手段は複数あるので、自分の構成に合うものを公式の手順から選んでください。

運用の注意(ここがいちばん大事)

公開して終わりではなく、ここからが本番です。特に次の点を押さえてください。

APIキーは絶対にコードへ直書きしない

最重要のルールです。

  • コードやリポジトリにキーを書かない: GitHub などに上げてしまうと、自動収集ツールに見つかって不正利用される恐れがあります。不正利用の課金はキー所有者に請求されます
  • 環境変数、できればSecret Managerで管理する: サーバーレスの環境変数に入れるか、より安全にはSecret Manager(シークレット管理サービス)に保管し、実行時に読み込みます
  • キーはサーバー側だけに持たせる: ブラウザやスマホアプリ側のコードにキーを埋め込むと、利用者から丸見えになります。Geminiへの呼び出しはサーバー側で行い、クライアントには結果だけ返す設計にします
  • 漏れたら即失効・再発行: 少しでも露出した疑いがあれば、放置せずすぐ失効させて作り直します

コスト・タイムアウト・同時実行

  • コスト: サーバーレス自体は従量課金で抑えやすい一方、Gemini API の利用料は別にかかります。アクセスが増えればそのぶん増えるので、想定外の課金を避けるなら上限アラートなどの仕組みも検討します
  • タイムアウト: 長文生成やストリーミングは応答に時間がかかります。サーバーレスには実行時間の上限があるため、上限を超えて処理が打ち切られないか確認します
  • 同時実行(スケール): 急なアクセス増で同時実行が跳ね上がると、Gemini API側のレート制限に当たることがあります。リトライやキューで山をならす設計も視野に入れます

CORS・認証

  • CORS: ブラウザから直接呼ぶ構成では、別ドメインからのアクセス可否(CORS)の設定が必要になります
  • 認証: 公開APIを誰でも叩ける状態にすると、悪用やコスト増につながります。用途に応じてアクセス制限や認証をかけ、入力は必ずバリデーションしてください

単価・無料枠・タイムアウトの上限・同時実行の制限といった具体的な数値は変わりやすいため、断定はせず、Cloud RunCloud FunctionsGemini APIそれぞれの公式を最新の情報源としてください。

一次体験:ローカルとデプロイ先で「キーの読み方」をそろえる

実際に手元のGemini APIアプリを公開したとき、いちばん効いたのは最初からローカルでも環境変数経由でキーを読むようにしておくことでした。ローカルでは .env に置いて読み込み、デプロイ先では環境変数(やSecret Manager)に同じ名前で登録する。こうしておくと、コードを一切いじらずにそのまま公開でき、移行でのトラブルがほとんど起きませんでした。

逆に、開発中につい「動けばいい」とキーを直書きしてしまうと、公開のたびに書き換えが必要になり、消し忘れて事故るリスクが一気に上がります。最初の一歩からキーを外に出さない運用にしておくのが、結局いちばん速くて安全だと感じています。

まとめ

  • Cloud Run / Cloud Functions を使うと、ローカルのGemini APIアプリをサーバー管理なしで公開でき、自動スケール・従量課金の恩恵を受けられる
  • Cloud Run=コンテナ/常駐的なAPIサーバー向き、Cloud Functions=イベントに反応する軽い関数向き。迷ったらシンプルなほうで試して育てる
  • デプロイの流れは「ローカルで動かす → 公開用に整える → キーを安全に渡す → デプロイ → 動作・ログ確認」。ローカルとデプロイ先でキーの読み方をそろえるとつまずきにくい
  • 運用の核はAPIキーをコードに直書きしないこと。環境変数・Secret Managerで管理し、サーバー側だけに持たせ、漏れたら即失効
  • コスト・タイムアウト・同時実行・CORS・認証にも目を配る。具体的な数値や手順は変わりやすいので、Cloud Run / Cloud Functions / Gemini API の公式ドキュメントで最新を確認する

まず API そのものに不安がある方はGemini API入門(AI Studio)から、コードを書かずに業務へ組み込みたい方はGemini×GASで業務自動化を、より本格的な基盤を検討するならVertex AIとGemini APIの違いもあわせてご覧ください。

よくある質問

Q. Cloud RunとCloud Functionsはどちらを選べばいいですか?
A. ざっくり言うと、APIサーバーのように一定の機能をまとめて常時提供したいならCloud Run、特定のイベントに反応して動く軽い関数1つを置きたいならCloud Functionsが向いています。Cloud Runはコンテナ単位で自由度が高く、Cloud Functionsは関数単位で手早く始められます。迷ったら、まずシンプルな構成のほうで試し、足りなくなったら見直すのが現実的です。なお両サービスの最新の機能差や制限は更新されるため、具体的な仕様はCloud Run・Cloud Functionsの公式ドキュメントでご確認ください。
Q. APIキーはどこに置けばいいですか?
A. コードやリポジトリに直書きするのは厳禁です。サーバーレスの環境変数として渡すか、より安全にはSecret Manager(シークレット管理サービス)に保管し、実行時に読み込む形にします。キーはクライアント(ブラウザやアプリ)側に出さず、サーバー側だけが持つ設計にしてください。漏れに気づいたらすぐ失効・再発行します。
Q. デプロイすると料金はかかりますか?
A. サーバーレスは基本的に使ったぶんだけの従量課金で、リクエストが来ない間のコストは小さく抑えやすいのが利点です。ただしGemini API自体の利用料は別にかかり、アクセスが増えればそのぶん増えます。無料枠や単価は変わりやすいので、最新はCloud Run / Cloud FunctionsとGemini APIそれぞれの公式の料金ページで確認してください。
Q. ローカルで動いたのに公開すると動きません。何を疑えばいいですか?
A. よくあるのはAPIキーの渡し忘れ(環境変数の設定漏れ)、タイムアウト超過、CORSや認証の設定です。まずサーバーレス側のログを見て、エラーがキー関連か・時間切れか・権限かを切り分けましょう。長文生成やストリーミングは応答に時間がかかるため、タイムアウトの上限も確認してください。

応用編 20 / 22 本目

次のレッスン

Gemini APIのバッチ処理(Batch API)でコストを下げる【2026】

Gemini Batch API(バッチ処理)の考え方をやさしく解説。急がない大量のリクエストをまとめて非同期で投げ、結果を後で受け取ることで、同期実行より割安に大量処理する仕組みです。向くケース・向かないケース、ジョブ投入から結果取得までの流れの概略、コスト感の注意点までまとめます。

続けて読む →