発展LESSON 08
この教材で学ぶこと Vertex AI経由の利用と各提供方式を比較します。Claude on Vertex AI — GCP 経由での Claude 活用
前提知識: Anthropic APIまたはBedrockの概要。本教材ではGCPでの設定と使い分けを扱います。
1. Vertex AI vs Anthropic API vs Bedrock
Anthropic API Bedrock Vertex AI
課金: Anthropic AWS GCP
データ所在地: Anthropic AWS リージョン GCP リージョン
既存インフラ: なし AWS 中心 GCP 中心
IAM/VPC統合: なし AWS IAM/VPC GCP IAM/VPC
エンタープライズ契約: なし AWS Organizations GCP Organizations
モデルの可用性: 最新・全て 一部 一部
選択基準:
- GCP をメインで使っている組織 → Vertex AI
- AWS をメインで使っている組織 → Bedrock
- スタートアップ・個人開発 → Anthropic API 直接
2. セットアップ
# GCP 認証
gcloud auth login
gcloud config set project YOUR_PROJECT_ID
# Application Default Credentials の設定
gcloud auth application-default login
# 必要な API の有効化
gcloud services enable aiplatform.googleapis.com
# Python ライブラリのインストール
pip install anthropic[vertex]
3. 基本的な使い方
import anthropic
# Vertex AI 経由で Claude を使う
# Anthropic API とほぼ同じインターフェース
client = anthropic.AnthropicVertex(
project_id="my-gcp-project",
region="us-east5", # Claude が利用可能なリージョン
)
# モデル名が Vertex AI 形式
message = client.messages.create(
model="claude-opus-4-5", # Vertex AI でのモデル名
max_tokens=1024,
messages=[
{"role": "user", "content": "GCP の BigQuery で大規模データを集計するSQLを書いてください。"}
]
)
print(message.content[0].text)
# ストリーミング
with client.messages.stream(
model="claude-sonnet-4-5",
max_tokens=1024,
messages=[{"role": "user", "content": "Cloud Run と GKE の使い分けを教えてください。"}]
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)
4. GCP サービスアカウントでの認証
# Cloud Run や GCE などの GCP サービスから使う場合
# → サービスアカウントにロールを付与するだけで認証不要
# 必要な IAM ロール:
# roles/aiplatform.user
from google.oauth2 import service_account
import anthropic
# ローカル開発時のみ(Cloud Run では不要)
credentials = service_account.Credentials.from_service_account_file(
"service-account.json",
scopes=["https://www.googleapis.com/auth/cloud-platform"]
)
client = anthropic.AnthropicVertex(
project_id="my-gcp-project",
region="us-east5",
credentials=credentials
)
5. Vertex AI でのモデル管理
# 利用可能なモデル(Vertex AI ではモデル ID が異なる場合がある)
# 最新情報は GCP コンソールで確認
VERTEX_MODELS = {
"claude-opus-4-5": "最高性能・複雑なタスク",
"claude-sonnet-4-5": "バランス型・推奨",
"claude-haiku-4-5": "高速・軽量タスク"
}
# モデルのフォールバック(利用不可の場合の切り替え)
def create_message_with_fallback(prompt: str) -> str:
models = ["claude-sonnet-4-5", "claude-haiku-4-5"]
for model in models:
try:
response = client.messages.create(
model=model,
max_tokens=1024,
messages=[{"role": "user", "content": prompt}]
)
return response.content[0].text
except anthropic.APIStatusError as e:
if "model" in str(e).lower():
continue # 次のモデルを試す
raise
raise RuntimeError("利用可能なモデルがありません")
6. Cloud Run + Vertex AI の構成例
# Cloud Run 上の FastAPI アプリから Vertex AI 経由で Claude を使う
from fastapi import FastAPI
import anthropic
import os
app = FastAPI()
# Cloud Run では GOOGLE_CLOUD_PROJECT が自動的に設定される
client = anthropic.AnthropicVertex(
project_id=os.environ["GOOGLE_CLOUD_PROJECT"],
region=os.environ.get("VERTEX_AI_REGION", "us-east5")
)
@app.post("/summarize")
async def summarize(text: str):
response = client.messages.create(
model="claude-sonnet-4-5",
max_tokens=500,
messages=[{
"role": "user",
"content": f"以下のテキストを3行で要約してください:\n\n{text}"
}]
)
return {"summary": response.content[0].text}
# Cloud Run 用 Dockerfile
FROM python:3.12-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8080"]
# Cloud Run にデプロイ(サービスアカウントの権限が自動適用される)
gcloud run deploy claude-api \
--image gcr.io/my-project/claude-api \
--region asia-northeast1 \
--service-account claude-runner@my-project.iam.gserviceaccount.com \
--set-env-vars VERTEX_AI_REGION=us-east5 \
--no-allow-unauthenticated
7. Bedrock との使い分け(実践的な判断基準)
GCP 側のリソースと Claude を連携したい:
✅ BigQuery のデータを分析させる → Vertex AI
✅ Cloud Storage のファイルを処理する → Vertex AI
✅ Cloud Run でホストしている → Vertex AI
AWS 側のリソースと Claude を連携したい:
✅ S3 データを処理する → Bedrock
✅ Lambda で呼び出す → Bedrock
✅ ECS でホストしている → Bedrock
既存の AWS/GCP インフラに合わせる:
→ それぞれのクラウドの Claude を使う(IAM 設定が楽)
コストと最新モデルを優先:
→ Anthropic API 直接(最も早く新モデルが使える)
🔗 関連資料
- ../Amazon_Bedrock/01_Claude_on_Bedrock.md — AWS 版の構成
- ../Claude/03_API活用.md — Tool Use・Batch API 等の共通機能
- Anthropic Skilljar: Claude with Google Cloud Vertex AI