【GCP】Google AI Proの月10ドル特典を使い倒す!Cloud Run×Gemini APIで作るサーバーレスAIエージェント構築手順

Google AI Pro(旧 Google One AI プレミアム)を契約していると、毎月10ドルのGoogle Cloud(GCP)クレジットが付与されるのをご存知でしょうか。

強力なGemini Advancedが使えるだけでなく、クラウドのインフラ環境まで無料で使えるお得な特典ですが、「何に使えばいいか分からない」と放置しているITエンジニアの方も多いのではないでしょうか。

この記事では、毎月10ドルのクレジット枠を使い切る具体的なユースケースとして、Cloud RunとGemini API、そしてSupabaseを連携させて「サーバーレスAIエージェント」を構築するアーキテクチャと手順を解説します。GCEの無料枠(e2-micro)でAI常駐を試みてOOM(Out of Memory)に悩んだ経験がある方にも、Cloud Runが現実的な解決策となる理由をあわせて説明します。

この記事で行うこと

  • Google AI ProのGCP月10ドル特典の仕組みと適用方法の確認
  • GCE(e2-micro)ではなくCloud Runを選ぶ理由の整理
  • Cloud Run + Gemini API + Supabaseを使ったサーバーレスAIエージェントのアーキテクチャ設計
  • Cloud RunへのAIエージェントのデプロイ手順(Dockerfile・gcloudコマンド)
  • 月10ドルの枠内でどれだけAPIを叩けるかのコスト試算

この構築で何ができるようになるか

この記事の手順を終えると、「自分がPCを開いていなくても、クラウド上でAIが自律的に動き続ける仕組み」を持てるようになります。

たとえば、以下のような用途に使えます。

  • 毎朝8時にニュースサイトの情報を自動取得してGeminiに要約させ、結果をSupabaseに蓄積する「日次ニュースまとめボット」
  • SlackやLINEからテキストを受け取り、Geminiが内容を判断して返答する「自分専用AIチャットボット」
  • 特定のWebサイトや価格情報を定期監視して、変化があったときだけGeminiに分析させてメール通知する「モニタリングエージェント」
  • 毎日の作業ログをGeminiに渡して週次レポートを自動生成し、Supabaseに保存しておく「自動レポートボット」

共通しているのは、「トリガーさえ設定すれば、あとは何もしなくてもAIが処理し続ける」という点です。サーバーの管理も不要で、使った分だけしかコストが発生しません。

前提条件

項目内容
対象者Google AI Proを契約済みのITエンジニア
GCPアカウント作成済み・請求先アカウントあり
ローカル環境Docker、gcloud CLI がインストール済み
使用言語Python 3.12以降
検証時期2026年6月

Supabaseのアカウントも事前に作成しておいてください。無料プランで十分対応できます。

Google AI ProのGCP月10ドル特典とは

Google AI Proには、毎月10ドル分のGCPクレジットが付帯しています(2026年6月時点)。

このクレジットは、申し込み完了後に以下のGCPサービスの利用料へ充当されます。

  • Vertex AI(Gemini APIなど)
  • Cloud Run

ただし、契約しただけでは自動的に適用されません。以下の手順で「申し込み」を完了させる必要があります。

特典を適用する手順

  • GCPコンソールで「請求先アカウント」を作成する
  • Google for Developers の特典ページ(My Benefits) にアクセスし、プランを契約しているGoogleアカウントでログインする
  • 「$10の生成AIとCloudのクレジット」というカードを見つけ「申し込む(Apply)」をクリックする
  • 利用したい「GCP請求先アカウント」を選択して紐づけを完了させる

注意点

  • クレジットは毎月リセットされます。当月中に使い切らない分は翌月に持ち越せません
  • クレジット枠を超えた利用が発生した場合、登録した支払い方法に自動課金されます
  • GCPコンソールの「予算とアラート」や「支出制限」の設定を必ず行いましょう

なぜGCE(e2-micro)ではなくCloud Runを選ぶのか

GCPの無料枠として有名なのは、GCE(Google Compute Engine)のe2-microインスタンスです。毎月一定時間まで無料で使えますが、AIエージェントの常駐用途では深刻な問題が発生しやすい構成です。

e2-microの限界

e2-microのメモリは1GBです。このスペックで発生する問題は次の通りです。

  • PythonのAI系ライブラリ(langchaingoogle-generativeai など)を読み込むだけでメモリの大半を消費する
  • Gemini APIを呼び出す処理を連続実行すると、OOM(Out of Memory)でプロセスが強制終了する
  • スワップ領域(SWAP)を設定すれば一時的に回避できるが、ディスクI/Oが増加し応答が極端に遅くなる

さらに、無料枠を維持するためのリージョン指定(us-west1/us-central1/us-east1限定)やディスク種別(標準永続ディスク)の制約も管理コストになります。

Cloud Runが解決すること

Cloud Runはリクエストを受けたときだけコンテナが起動するサーバーレス実行環境です。AIエージェント用途では次のメリットがあります。

  • メモリは最大16GiB(標準は512MiB〜2GiB)まで柔軟に設定でき、OOMが起きにくい
  • リクエストがない間はコンテナが停止し、CPUもメモリも消費しない(コストゼロ)
  • OS管理・パッチ適用が不要で、インフラの運用保守コストがほぼゼロになる
  • Cloud Schedulerと組み合わせれば、定期実行型のエージェントとして動作させられる

サーバーレスAIエージェントのアーキテクチャ設計

今回構築するシステムの全体像は以下の通りです。

外部トリガー(Cloud Scheduler / Webhook)
         ↓
Cloud Run(Python コンテナ)
  ├── Gemini API(Gemini 3.1 Flash-Lite)呼び出し
  └── 処理結果を Supabase に保存

各コンポーネントの役割

コンポーネント役割
Cloud Scheduler毎時・毎日など指定間隔でCloud RunのエンドポイントをHTTPでキックする
Cloud RunPythonコンテナでエージェントのメインロジックを実行する
Gemini API自然言語処理・要約・判定などのAI処理を担う
Supabase処理結果の永続化と外部連携(APIとして再利用可能)を担う

トリガー方式の選択肢

目的に応じて2種類のトリガーを使い分けます。

  • 定期実行(バッチ処理型): Cloud Schedulerで毎時/毎日にHTTP POSTを送る構成。ニュース要約ボットや日次レポート生成に向いています
  • Webhook型(イベント駆動型): 外部サービス(Slack、GitHub、LINEなど)からのイベントをCloud RunのエンドポイントでリアルタイムAI処理する構成

実践:Cloud RunへのAIエージェントデプロイ手順

手順1:Pythonアプリのコードを作成する

まず、プロジェクトディレクトリを作成し、エージェントのメインスクリプトを用意します。

# main.py
import os
from flask import Flask, request, jsonify
from google import generativeai as genai
from supabase import create_client

app = Flask(__name__)

# 環境変数から認証情報を取得する
genai.configure(api_key=os.environ["GEMINI_API_KEY"])
supabase = create_client(
    os.environ["SUPABASE_URL"],
    os.environ["SUPABASE_KEY"]
)

@app.route("/run", methods=["POST"])
def run_agent():
    data = request.get_json()
    prompt = data.get("prompt", "今日のタスクを要約してください。")

    # Gemini APIでテキスト生成する
    model = genai.GenerativeModel("gemini-3.1-flash-lite-001")
    response = model.generate_content(prompt)
    result_text = response.text

    # Supabaseに結果を保存する
    supabase.table("agent_logs").insert({
        "prompt": prompt,
        "result": result_text
    }).execute()

    return jsonify({"status": "ok", "result": result_text})

if __name__ == "__main__":
    app.run(host="0.0.0.0", port=int(os.environ.get("PORT", 8080)))

あわせて依存ライブラリを定義します。

# requirements.txt
flask==3.1.0
google-generativeai==0.8.4
supabase==2.15.0

手順2:Dockerfileを作成する

Cloud RunはDockerコンテナで動作します。以下の最小構成のDockerfileを作成します。

# Dockerfile
FROM python:3.12-slim

WORKDIR /app

COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

COPY main.py .

ENV PORT=8080
CMD ["python", "main.py"]

手順3:コンテナイメージをビルドしてArtifact Registryにプッシュする

ターミナル(PowerShell またはbash)で以下のコマンドを順に実行します。

# プロジェクトIDを環境変数に設定する(例: my-gcp-project)
PROJECT_ID="your-project-id"
REGION="us-central1"
IMAGE_NAME="ai-agent"

# Artifact Registry のリポジトリを作成する(初回のみ)
gcloud artifacts repositories create ${IMAGE_NAME} \
  --repository-format=docker \
  --location=${REGION}

# コンテナイメージをビルドしてプッシュする
gcloud builds submit --tag \
  ${REGION}-docker.pkg.dev/${PROJECT_ID}/${IMAGE_NAME}/${IMAGE_NAME}:latest

コマンド実行後に以下のような出力が確認できれば成功です。

SUCCESS

手順4:Cloud Runにデプロイする

gcloud run deploy ${IMAGE_NAME} \
  --image ${REGION}-docker.pkg.dev/${PROJECT_ID}/${IMAGE_NAME}/${IMAGE_NAME}:latest \
  --region ${REGION} \
  --platform managed \
  --allow-unauthenticated \
  --memory 512Mi \
  --set-env-vars GEMINI_API_KEY=your-api-key,SUPABASE_URL=your-url,SUPABASE_KEY=your-key

デプロイ完了後、以下のようにサービスURLが表示されます。

Service [ai-agent] revision [ai-agent-00001-xxx] has been deployed
and is serving 100 percent of traffic.
Service URL: https://ai-agent-xxxxxxxxxx-uc.a.run.app

手順5:シークレットマネージャーでAPIキーを安全に管理する(推奨)

上記の --set-env-vars でAPIキーを直接渡す方法は手軽ですが、本番環境ではSecret Managerを使う方が安全です。

# Gemini APIキーをシークレットとして登録する
echo -n "your-gemini-api-key" | \
  gcloud secrets create GEMINI_API_KEY --data-file=-

# Cloud Runデプロイ時にシークレットを環境変数として参照する
gcloud run deploy ${IMAGE_NAME} \
  --image ... \
  --set-secrets GEMINI_API_KEY=GEMINI_API_KEY:latest

手順6:動作確認する

デプロイ後、curlコマンドでエンドポイントをテストします。

curl -X POST https://ai-agent-xxxxxxxxxx-uc.a.run.app/run \
  -H "Content-Type: application/json" \
  -d '{"prompt": "サーバーレスAIエージェントとは何ですか?一言で説明してください。"}'

以下のようなレスポンスが返ってくれば正常に動作しています。

{
  "status": "ok",
  "result": "リクエスト時のみ起動し、AIによる処理をクラウド上でスケーラブルに実行する仕組みです。"
}

ログはGCPコンソールの「Cloud Run → サービス → ログ」タブからリアルタイムで確認できます。

コスト試算:月10ドルの枠内でどれだけAPIを叩けるか

2026年6月時点の料金をもとに試算します。

Cloud Run 無料枠(月間)

項目無料枠
リクエスト数200万リクエスト
CPU180,000 vCPU秒
メモリ360,000 GiB秒
ネットワーク転送(北米発)1 GB

個人のAIエージェントが月100〜数百回程度の実行をする分には、Cloud Runの課金が発生することはほぼありません。

Gemini APIのコスト試算

モデル入力トークン単価(100万トークン)出力トークン単価(100万トークン)
Gemini 3.5 Flash$1.50$9.00
Gemini 3.1 Flash-Lite$0.25$1.50

コスト重視の個人用途では Gemini 3.1 Flash-Lite が適しています。

1回のAPIコールを「入力1,000トークン・出力500トークン」と仮定した場合の概算です。

項目計算
入力コスト(1回)$0.00000025/トークン × 1,000トークン = $0.00025
出力コスト(1回)$0.0000015/トークン × 500トークン = $0.00075
1回の合計約$0.001(0.1セント)
月10ドルで叩ける回数約10,000回

1回あたり約0.1セントなので、月10ドルの予算では約10,000回まで呼び出せる計算になります。個人のAIエージェントが1日に数十回程度実行する用途であれば、月10ドルのGCPクレジットで十分まかなえます。

Supabaseのコスト

無料プランで対応できます。主な制限は以下の通りです。

  • データベース容量:500MB
  • 帯域幅:5GB/月

注意点として、7日間アクセスがないプロジェクトは自動停止します。定期的にアクセスが発生するエージェント構成では問題になりませんが、開発中の期間は意識しておく必要があります。

うまくいかない場合の確認ポイント

コンテナがデプロイできない

  • gcloud auth login と gcloud config set project [PROJECT_ID] が正しく設定されているか確認してください
  • Artifact RegistryのAPIが有効化されているかGCPコンソールで確認してください

APIキーエラーが返ってくる

  • Cloud Runの「環境変数」または「シークレット」の設定画面で、キーが正しく登録されているか確認してください
  • Gemini APIキーがGoogle AI StudioまたはGCPコンソールで発行されたものかを確認してください

Supabaseへの書き込みが失敗する

  • SUPABASE_URL と SUPABASE_KEY が正しいか確認してください
  • テーブル agent_logs が事前に作成されているか確認してください(Supabaseコンソールから手動で作成するか、マイグレーションスクリプトで作成します)

コールドスタートが遅い

  • Cloud Runの最小インスタンス数を 1 に設定すると常時1台が起動した状態を維持できます。ただし月の無料枠を消費しやすくなるため、コストとのトレードオフを考慮してください
  • Dockerイメージのサイズを小さくする(python:3.12-slim を使う、不要なライブラリを入れない)ことで起動時間を短縮できます

元に戻す方法

Cloud RunサービスとArtifact Registryのイメージを削除する場合は、以下のコマンドを実行します。

# Cloud Run サービスを削除する
gcloud run services delete ${IMAGE_NAME} --region ${REGION}

# Artifact Registry のリポジトリを削除する
gcloud artifacts repositories delete ${IMAGE_NAME} \
  --location ${REGION}

削除前に、GCPコンソールの「請求」ページで残コストが発生していないか確認することをお勧めします。

よくある質問

Google AI ProのGCPクレジットはVertex AIでも使えますか?

使えます。Vertex AI経由でGemini APIを呼び出す場合も、10ドルのクレジットが充当されます。ただし、Vertex AIのエンドポイントは google-cloud-aiplatform ライブラリを使う構成になるため、今回のサンプルコード(google-generativeai)とは実装が異なります。

Cloud RunのコンテナはGCE e2-microと比べて高価ではないですか?

個人規模の利用であれば、むしろ安くなる場合がほとんどです。Cloud Runは無料枠(月200万リクエスト・180,000 vCPU秒)が大きく、かつリクエストのない時間帯はコストが発生しません。常時起動のe2-microと比較すると、月の実行回数が少ない用途ではCloud Runのほうが大幅にコストを抑えられます。

Supabaseの7日間自動停止はどう対策すればよいですか?

Cloud Schedulerで7日に1回、Supabaseの読み書きが発生するエンドポイントをキックする設定を入れておくと、自動停止を回避できます。あるいは、定期実行型のAIエージェント構成であれば、毎日Supabaseへの書き込みが発生するため自動停止の問題が起きにくくなります。

まとめ

Google AI ProのGCPクレジット(月10ドル)は、Cloud RunとGemini APIを組み合わせることで、個人用のサーバーレスAIエージェントを実質コストゼロで運用できる環境を作れます。

GCE(e2-micro)のメモリ不足(OOM)に悩んでいた方には、Cloud Runへの移行が現実的な解決策になります。リクエスト時のみ起動するサーバーレスの仕組みはメモリの割り当てが柔軟で、インフラ管理の手間もかかりません。

今後の拡張アイデアとしては以下のような方向性が考えられます。

  • LINE MessagingAPIと連携してスマートフォンから呼び出せる個人秘書ボット化
  • Cloud Schedulerで毎朝ニュースを要約してSupabaseに蓄積する日次レポートボット
  • Webスクレイピング結果をGemini APIで分析して定期通知するモニタリングエージェント

10ドルというコストで「自分専用のAIインフラ」を持てるのが、Google AI Proの見逃せない魅力です。

参考情報