Vertex AIのClaudeエンドポイント3種 — 10%の料金差と選び方
Google CloudのVertex AIでClaude APIを呼ぶときの、globalとマルチリージョンとリージョナルの違い。10%の上乗せ、データルーティング、非対応機能を示します。
エンドポイントは3種類、料金差は10%
Google CloudのVertex AI(現在はAgent Platformとも表記される)でClaudeを呼ぶと、接続先のエンドポイントを3種類から選ぶことになります。グローバル、マルチリージョン、リージョナルです。
選択を決めるのは、データをどこで処理させたいかと、料金です。グローバルが基準価格で、マルチリージョンとリージョナルには10%の上乗せがあります。
| 種類 | ルーティング | 料金 | 従量課金 | プロビジョンドスループット |
|---|---|---|---|---|
| グローバル | ルーティング空き容量のあるリージョンへ動的に振り分け | 料金基準 | 従量課金対応 | プロビジョンドスループット非対応 |
| マルチリージョン | ルーティングusまたはeuの地域内で動的に振り分け | 料金基準の10%増 | 従量課金対応 | プロビジョンドスループット非対応 |
| リージョナル | ルーティング指定したリージョンを通る | 料金基準の10%増 | 従量課金対応 | プロビジョンドスループット対応 |
この記事は、APIを自分のコードから呼ぶ実装側の話です。Claude CodeをVertex AI経由で使う設定はClaude CodeでVertex AIのリージョンを設定するが扱っています。
SDKを入れて最初の1リクエストを通す
準備は、SDKのインストールとGoogle Cloudの認証の2つです。Pythonならvertexエクストラ付きで入れます。
pip install -U "anthropic[vertex]"
gcloud auth application-default loginTypeScriptは@anthropic-ai/vertex-sdk、C#はAnthropic.Vertexパッケージです。GoやJava、Ruby、PHPにも対応するSDKがあります。
最小の呼び出しは次のとおりです。クラスはAnthropicではなくAnthropicVertexで、regionにエンドポイントの種類を渡します。
from anthropic import AnthropicVertex
client = AnthropicVertex(project_id="MY_PROJECT_ID", region="global")
message = client.messages.create(
model="claude-opus-5-5",
max_tokens=100,
messages=[{"role": "user", "content": "Hey Claude!"}],
)
print(message)モデルIDは、日付サフィックスの有無が世代で分かれます。Opus 5.5はclaude-opus-5-5、Sonnet 5.5はclaude-sonnet-5-5と日付なしです。一方でSonnet 4.5はclaude-sonnet-4-5@20250929、Haiku 4.5はclaude-haiku-4-5@20251001のように@日付が付きます。Sonnet 4.5は廃止予定(deprecated)の扱いで、Sonnet 4.6はclaude-sonnet-4-6と日付なしです。BedrockのモデルIDとは表記が違うので、コードを移植するときは書き換えが必要です。
curlで直接叩く場合、URLのlocations/の後ろにリージョンを入れ、:rawPredictを呼びます。Anthropic直結のMessages APIとは2点違い、モデルIDはリクエスト本文でなくURLに入れ、"anthropic_version": "vertex-2023-10-16"は(ヘッダーでなく)本文に必須です。
Anthropic公式のCLIツールantはVertex AIに対応しません。コマンドラインから試すときは、次のcurlかSDKを使います。
MODEL_ID=claude-opus-5-5
PROJECT_ID=MY_PROJECT_ID
curl https://aiplatform.googleapis.com/v1/projects/${PROJECT_ID}\
/locations/global/publishers/anthropic/models/${MODEL_ID}:rawPredict \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"anthropic_version": "vertex-2023-10-16",
"messages": [{"role": "user", "content": "Hey Claude!"}],
"max_tokens": 100
}'regionに渡す値で接続先が変わる
エンドポイントの切り替えは、regionの文字列だけで行います(PHPも引数名はregionです)。SDKが値の形を見てホスト名を選び分けます。
regionの値 | 種類 | ホスト名 |
|---|---|---|
global | 種類グローバル | ホスト名aiplatform.googleapis.com |
us / eu | 種類マルチリージョン | ホスト名aiplatform.us.rep.googleapis.com / aiplatform.eu.rep.googleapis.com |
us-east5やeurope-west1など | 種類リージョナル | ホスト名<リージョン>-aiplatform.googleapis.com |
マルチリージョンとして使える識別子はus(米国)とeu(欧州連合)の2つです。curlでマルチリージョンを叩くときは、ホスト名とパスの両方に同じ識別子を入れます。
LOCATION=us
curl https://aiplatform.${LOCATION}.rep.googleapis.com/v1/projects/${PROJECT_ID}\
/locations/${LOCATION}/publishers/anthropic/models/${MODEL_ID}:rawPredict \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{"anthropic_version": "vertex-2023-10-16",
"messages": [{"role": "user", "content": "Hey Claude!"}],
"max_tokens": 100}'リージョナルはホスト名が${LOCATION}-aiplatform.googleapis.comの形になります。ホストの形がグローバル・マルチリージョン・リージョナルで三通りあるため、URLを手で組み立てるコードは間違えやすい箇所です。SDKを使えばregionの値を替えるだけで済みます。
環境変数で切り替える構成
環境ごとにエンドポイントを変えたい場合は、regionをコードに埋めず環境変数から読む形が扱いやすくなります。次のスケッチは公式の呼び出しに環境変数の読み取りを足しただけの例で、推奨構成ではありません。
import os
from anthropic import AnthropicVertex
client = AnthropicVertex(
project_id=os.environ["GCP_PROJECT_ID"],
region=os.environ.get("CLAUDE_VERTEX_REGION", "global"),
)開発環境はglobal、データ所在地の要件がある本番だけeuにする、といった分け方がコード変更なしでできます。ただし、コードを変えずに済むのはregionだけです。モデルIDは、後述のとおりエンドポイントによって使えないものがあります。
10%の上乗せはどこに掛かるか
上乗せの対象は、マルチリージョンとリージョナルです。グローバルには掛かりません。リージョナルの上乗せは、専用リージョン容量のインフラコストの反映とされています。
対象モデルの書き方は、公式の2ページで少し違います。Vertex AIのページは「Sonnet 4.5以降」、料金ページは「Sonnet 4.5・Haiku 4.5・Opus 4.5以降のすべてのモデル」です。Sonnet 4、Opus 4.1およびそれ以前は、従来の料金体系のままです。
グローバル単価を1としたときの係数
グローバル
1.0倍
基準。上乗せなし
マルチリージョン
1.1倍
us / eu の地域内で動的に振り分け
リージョナル
1.1倍
指定リージョンを通る
Anthropic側の料金ページも、Bedrockと並べて「パートナー運営のクラウドの地域別料金は独立している」と書き、Google Cloud側の料金ページを案内しています。請求元はGoogle Cloudです。なおAnthropic直結のAPIにもinference_geoによるデータ所在地指定があり、こちらは1.1倍の仕組みが別にあります。違いはClaude APIのinference_geoでデータ所在地を指定するにあります。
リージョナルは新しいモデルに使えないことがある
見落としやすいのが、リージョナルで呼べるモデルの範囲です。リージョナルの呼び出し例には、次のコメントが付いています。
Specific regional endpoints support Claude Sonnet 4.6 and earlier; newer models use the global or multi-region endpoints
つまり、リージョナルエンドポイントで動くのはSonnet 4.6以前のモデルで、それより新しいモデルはグローバルかマルチリージョンを使う、という記述です。us-east5にclaude-opus-5-5を投げても通らない可能性があります。
この記述の帰結として、次の二点は確認が必要です。
- 新しいモデルでデータ所在地を地域単位で満たしたいなら、選べるのはマルチリージョン(
usかeu)になる - プロビジョンドスループットはリージョナルでしか使えない。対象モデルはGoogle CloudのClaudeモデルのページで確かめる
どのモデルがどのリージョンで使えるかは、Model GardenでClaudeを検索するか、Google CloudのClaudeモデルのページで確認する案内があります。モデルの提供状況はリージョンごとに異なるためです。
デプロイ前に、使うモデルとリージョンの組み合わせで最小リクエストを1回通しておくと確実です。
import sys
from anthropic import AnthropicVertex
def probe(project_id: str, region: str, model: str) -> bool:
client = AnthropicVertex(project_id=project_id, region=region)
try:
client.messages.create(
model=model,
max_tokens=8,
messages=[{"role": "user", "content": "ping"}],
)
return True
except Exception as e: # 404 などの内容をそのまま見る
print(f"NG {region} {model}: {e}", file=sys.stderr)
return False
for region in ["global", "us", "eu", "us-east5"]:
print(region, probe("MY_PROJECT_ID", region, "claude-sonnet-5-5"))この関数は組み合わせの可否を確かめるための私家版の確認用スクリプトで、公式のサンプルではありません。max_tokensを小さくすれば、確認のコストはごくわずかです。
割り当て(クォータ)はエンドポイントごとに別枠
Googleのクォータ文書によると、グローバルとマルチリージョンでは、2026年5月26日より後に出たモデルを共有系統クォータで管理します。Opus、Sonnet、Haiku、Fableの系統ごとに1つの枠があり、同じ系統の複数バージョンが同じ枠を消費します。グローバルでOpus 4.8を呼んでも、Opus 5.5を呼んでも、anthropic-claude-opusという同じ枠から引かれます。
クォータの数え方
5月26日より後のモデル
base_modelがanthropic-claude-opusのような系統名で、グローバルとマルチリージョンのそれぞれに1つの枠です。新バージョンが出ても別の増枠申請は要りません。バージョンを混ぜて呼んでも合算されます。
5月26日より前のモデル
リージョナル・マルチリージョン・グローバルの種類別に、QPM(毎分リクエスト数)とTPM(毎分トークン数)が決まります。上限はアカウントによって異なります。
見落としやすいのは、グローバルと各マルチリージョンが互いに独立した枠であることです。グローバルの使用量はusやeuの枠を消費せず、その逆も同じです。エンドポイントをグローバルからeuへ移すと、eu側の枠でトラフィックを受けます。上限と使用量は、Google Cloudコンソールの「割り当てとシステム上限」(Quotas and system limits)でbase_modelを絞って見ます。
Vertex AIで使えない機能
エンドポイントの種類とは別に、Vertex AI経由そのものが対応しない機能があります。非対応リストは次のとおりです。
- 入力ソース: 画像・ドキュメントのURL指定、Files API
- サーバー側ツール: コード実行、Web fetch、advisor
- エージェント基盤: Agent Skills、MCPコネクタ、プログラマティックなツール呼び出し
- APIエンドポイント: Message Batches、Models、Admin、Compliance、Usage and Cost
- Claude Managed Agents
- サーバー側フォールバック(
fallbacksパラメータ)
一方、Messages API、プロンプトキャッシュ、拡張思考、ツール使用(Bash・Browser use・Computer use・Memory・Text editorの各ツールを含む)、Web検索ツール、引用、構造化出力は対応しています。
画像をURLで渡す実装は、そのままでは動きません。非対応の入力ソースにURL指定が含まれるため、画像はURLでなくデータそのものを渡す形に直す必要があります。ここは、直接契約のAPIから移す際に最初に当たりやすい差分です。
fallbacksが使えない点については、クライアント側のフォールバックパターンを使う案内があります。Vertex AIではサーバー側に任せられないので、呼び出し側で例外を受けて別のモデルやエンドポイントに投げ直す実装になります。BedrockとGoogle Cloudの機能差の全体は、ClaudeをBedrockとGoogle Cloudで使う — API機能の対応差を比較に表でまとめてあります。
コンテキスト長・ペイロード・ログ
1Mトークンのコンテキストウィンドウは、Claude Fable 5.1・Fable 5、Opus 5.5・Opus 5・Opus 4.8・Opus 4.7・Opus 4.6、Sonnet 5.5・Sonnet 5・Sonnet 4.6が対象です。Sonnet 4.5を含むそれ以外のモデルは200kトークンです。
リクエストのペイロードには30MBの上限があります。大きなドキュメントや多数の画像を送ると、トークン上限より先にこちらに当たることがあります。
ログについては、Vertex AIにリクエストとレスポンスのロギング機能があり、Anthropicは少なくとも30日のローリングでアクティビティを記録するよう推奨しています。Google側も、Claudeには30日間のロギングを有効にして不正利用を追跡するよう案内しています。このロギングを有効にしても、GoogleやAnthropicにコンテンツへのアクセス権が渡ることはないと公式は説明しています。データの取り扱い自体はGoogle Cloudの規定が適用されます。Google Cloudは、Vertex AI(Agent Platform)経由のClaudeがFedRAMP Highの要件を満たし、Google Cloudの認可境界内で動くと説明しています。
どのエンドポイントを選ぶか
公式はグローバルを推奨しています。可用性が最大になり、上乗せもないためです。外す理由が出てくるのは、次のような場合です。
| 状況 | 候補 | 理由 |
|---|---|---|
| データ所在地に制約がなく、可用性を優先したい | 候補グローバル | 理由上乗せなし、容量のあるリージョンへ動的に振り分け |
| 米国内・EU内にデータ処理を収めたいが、可用性も欲しい | 候補マルチリージョン(us / eu) | 理由地域内で動的に振り分け。10%増 |
| 単一リージョンでの処理が要件、または厳格なコンプライアンス | 候補リージョナル | 理由指定リージョンを通る。ただし対応モデルはSonnet 4.6以前 |
| 予約容量(プロビジョンドスループット)が必要 | 候補リージョナル | 理由グローバルとマルチリージョンは従量課金のみ |
日本のチームで、Claudeを使える提供経路そのものを比べたい場合はClaudeを日本から使う提供経路が入口になります。この記事は、Vertex AIを選んだあとのエンドポイントの決め方に絞った内容です。
導入前に確かめる3点
導入前の3点
- 1
組み合わせを通す
使うモデルIDと
regionの組み合わせで、最小リクエストが通るかを見ます。上の確認用スクリプトで足ります。 - 2
非対応機能を洗う
画像のURL指定、Files API、Message Batches、MCPコネクタが、使う機能に入っていないかを見ます。
- 3
単価とクォータを見る
請求はGoogle Cloudから来ます。単価は同社の料金ページで確かめ、マルチリージョンとリージョナルには1.1倍を織り込みます。移行先エンドポイントの枠も確認します。
まとめ
Vertex AIのClaudeは、AnthropicVertexのregionにglobal・usかeu・リージョン名のどれを渡すかで、エンドポイントの種類が決まります。グローバルは上乗せなしで可用性が高く、公式の推奨です。データ所在地の要件があるときにだけ、10%の上乗せを払ってマルチリージョンかリージョナルへ移ります。
リージョナルに載るモデルは限られます。地域単位の要件があるなら、まずマルチリージョンが使えるかを見るのが近道です。移すときは、割り当てが別枠であることも合わせて織り込みます。