Amazon Bedrock で一般提供になった OpenAI GPT-6 Astra を試してみた
はじめに
2026年9月8日、OpenAI の GPT-6 Astra が Amazon Bedrock で一般提供になりました。
GPT-6 Astra を、bedrock-runtime の Converse/OpenAI 互換パスと、bedrock-mantle の OpenAI 互換パスから呼び出しを試しました。
検証内容
モデル一覧
OpenAI プロバイダーに絞って基盤モデル一覧を取得しました。
aws bedrock list-foundation-models \
--by-provider OpenAI \
--region us-east-1
返ってきた一覧には次のエントリが含まれていました。
{
"modelArn": "arn:aws:bedrock:us-east-1::foundation-model/openai.gpt-6-astra",
"modelId": "openai.gpt-6-astra",
"modelName": "GPT-6 Astra",
"providerName": "OpenAI",
"inputModalities": [
"TEXT",
"IMAGE"
],
"outputModalities": [
"TEXT"
],
"responseStreamingSupported": true,
"customizationsSupported": [],
"inferenceTypesSupported": [
"INFERENCE_PROFILE"
],
"modelLifecycle": {
"status": "ACTIVE",
"startOfLifeTime": "2026-09-08T17:00:00+00:00"
}
}
モデルIDは openai.gpt-6-astra で、入力はテキストと画像、出力はテキストです。レスポンスストリーミングにも対応しています。
Converse
一覧に現れるモデルIDは openai.gpt-6-astra ですが、呼び出しに指定するのは global.openai.gpt-6-astra です。us-east-1 へ Converse を実行しました。
aws bedrock-runtime converse \
--region us-east-1 \
--model-id global.openai.gpt-6-astra \
--messages '[{"role":"user","content":[{"text":"Say ok"}]}]' \
--inference-config '{"maxTokens":64}'
応答は次のとおりです。
{
"output": {
"message": {
"role": "assistant",
"content": [
{
"text": "ok"
}
]
}
},
"stopReason": "end_turn",
"usage": {
"inputTokens": 8,
"outputTokens": 5,
"totalTokens": 13,
"cacheReadInputTokens": 0
}
}
同じリクエストを us-east-1、us-west-2、ap-northeast-1 に送ったところ、いずれも stopReason は end_turn、応答テキストは ok、usage は入力8 / 出力5 / 合計13 でした。
同じモデルIDを指定した InvokeModel でも応答を得られました。
入力ボディに {"messages":[{"role":"user","content":"Say ok"}],"max_completion_tokens":16} を渡した結果です。
{"choices":[{"finish_reason":"stop","index":0,"message":{"annotations":[],"content":"ok","refusal":null,"role":"assistant"}}],"created":1788919066,"id":"chatcmpl-y3ldv7w2nvet7ibewtphemha2kmyudqvrasturqhjottjo2tbm3q","model":"global.openai.gpt-6-astra","object":"chat.completion","service_tier":"default","usage":{"completion_tokens":5,"completion_tokens_details":{"accepted_prediction_tokens":0,"audio_tokens":0,"reasoning_tokens":0,"rejected_prediction_tokens":0},"prompt_tokens":8,"prompt_tokens_details":{"audio_tokens":0,"cache_write_tokens":0,"cached_tokens":0},"total_tokens":13},"system_fingerprint":null}
OpenAI 互換パス
bedrock-runtime の OpenAI 互換パスへ Responses API 形式のボディを送りました。
{"model":"global.openai.gpt-6-astra","input":"Say ok","store":false}
これを gpt6-astra-responses-body.json として保存し、curl で /openai/v1/responses へ送りました。認証には AWS CLI と同じ一時認証情報を環境変数から渡し、curl の SigV4 署名を付けています。
curl --silent --show-error \
--aws-sigv4 'aws:amz:us-east-1:bedrock' \
--user "$AWS_ACCESS_KEY_ID:$AWS_SECRET_ACCESS_KEY" \
-H "x-amz-security-token: $AWS_SESSION_TOKEN" \
-H 'Content-Type: application/json' \
--data-binary @gpt6-astra-responses-body.json \
https://bedrock-runtime.us-east-1.amazonaws.com/openai/v1/responses
HTTP ステータスは 200 でした。レスポンスの model は global.openai.gpt-6-astra、status は completed、出力テキストは ok で、usage は Converse と同じ 8 / 5 / 13(input_tokens / output_tokens / total_tokens)でした。
/openai/v1/chat/completions へ同じモデルIDを指定して送った場合も HTTP ステータスは 200 でした。finish_reason は stop、応答テキストは ok、usage は prompt_tokens 8 / completion_tokens 5 / total_tokens 13 です。出力上限は max_completion_tokens で指定しました。
IAM ロールの環境変数で OpenAI SDK から呼ぶ
公式の OpenAI SDK の基本例は Bedrock API キーを使います。本記事のコードは、その SDK サンプルの認証方法を置き換えるものではなく、HTTP クライアントへ SigV4 署名を加えた実証例です。エンドポイントの仕様では Runtime と Mantle の両方が SigV4 認証に対応しています。ここでは IAM ロールなどから取得済みの AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY、AWS_SESSION_TOKEN を環境変数に設定した状態で、OpenAI SDK が送る HTTP リクエストに SigV4 署名を追加しました。
Responses API を Runtime で実行するプリンシパルには、推論プロファイルとデフォルトプロジェクトに対する bedrock:InvokeModel が必要です。以降のコードは、その権限を持つ一時認証情報が環境変数に設定済みであることを前提にしています。
import json
import os
import httpx
from botocore.auth import SigV4Auth
from botocore.awsrequest import AWSRequest
from botocore.credentials import Credentials
from openai import OpenAI
REGION = "us-west-2"
SIGNING_SERVICE = "bedrock"
MODEL_ID = "global.openai.gpt-6-astra"
credentials = Credentials(
os.environ["AWS_ACCESS_KEY_ID"],
os.environ["AWS_SECRET_ACCESS_KEY"],
os.environ.get("AWS_SESSION_TOKEN"),
)
class SigV4Signer(httpx.Auth):
requires_request_body = True
def auth_flow(self, request):
aws_request = AWSRequest(
method=request.method,
url=str(request.url),
data=request.content,
headers={"content-type": request.headers.get("content-type", "application/json")},
)
SigV4Auth(credentials, SIGNING_SERVICE, REGION).add_auth(aws_request)
for key, value in aws_request.headers.items():
request.headers[key] = value
yield request
client = OpenAI(
api_key="unused-sigv4",
base_url=f"https://bedrock-runtime.{REGION}.amazonaws.com/openai/v1",
http_client=httpx.Client(auth=SigV4Signer(), timeout=120.0),
)
response = client.responses.create(
model=MODEL_ID,
input="Can you explain the features of Amazon Bedrock?",
)
print("=== output_text ===")
print(response.output_text)
print("=== usage ===")
print(json.dumps(response.usage.model_dump(), indent=2))
python:3.12-slim コンテナで openai、botocore、httpx をインストールし、認証情報はコンテナへ環境変数でだけ渡して実行しました。response.output_text には Bedrock の機能を説明する本文が返り、usage は入力 16、出力 1,010(うち reasoning 145)、合計 1,026 トークンでした。出力の抜粋は次のとおりです。
=== output_text ===
**Amazon Bedrock is AWS’s managed platform for building generative AI applications.** It gives you access to foundation models and tools for connecting them to your data, automating workflows, and adding security controls—without having to manage the underlying model-serving infrastructure for its standard managed offerings.
Here are its main features:
### 1. Access to multiple foundation models
...
=== usage ===
{
"input_tokens": 16,
"output_tokens": 1010,
"total_tokens": 1026
}
Mantle
公式ドキュメントでは、新規アプリケーションには bedrock-runtime が推奨されていますが、GPT-6 Astra は bedrock-mantle からも利用できました。us-west-2 の OpenAI 互換 Responses API へ openai.gpt-6-astra を指定して送ると、HTTP 200、status: completed が返りました。出力テキストは ok、usage も同じ 8 / 5 / 13 でした。
bedrock-mantle で指定するモデルIDには、bedrock-runtime と異なりプロファイル接頭辞を付けません。us-east-1 で同じモデルIDを指定すると、The model 'openai.gpt-6-astra' does not exist という HTTP 404 が返りました。モデルカードでも、bedrock-mantle での提供リージョンは us-west-2 のみとされています。
IAM ロールの環境変数で OpenAI SDK から Mantle を呼ぶ
Mantle でも同じ SigV4Signer を使えます。必要なのは bedrock-mantle:CreateInference を許可された環境変数の認証情報です。Runtime 版のコードから、リージョン、署名サービス名、モデルID、base_url を次のように変更します。
REGION = "us-west-2"
SIGNING_SERVICE = "bedrock-mantle"
MODEL_ID = "openai.gpt-6-astra"
client = OpenAI(
api_key="unused-sigv4",
base_url=f"https://bedrock-mantle.{REGION}.api.aws/openai/v1",
http_client=httpx.Client(auth=SigV4Signer(), timeout=120.0),
)
response = client.responses.create(
model=MODEL_ID,
input="Can you explain the features of Amazon Bedrock?",
)
print(response.output_text)
このブロックと Runtime 版の SigV4Signer を1つのファイルに保存して実行しました。python:3.12-slim コンテナに環境変数で一時認証情報を渡した実測では、response.output_text に Bedrock の機能を説明する長文が返りました。先頭は次のとおりです。
**Amazon Bedrock is AWS’s fully managed service for building generative AI applications.** It lets you access foundation models, connect them to your data, and deploy AI-powered workflows without managing the underlying model-serving infrastructure.
Its main features include:
### 1. Access to multiple foundation models
...
このように、SDK の呼び出し本体は共通で、Runtime と Mantle では接続先、SigV4 のサービス名、モデルIDを切り替えれば呼び出せました。
料金
Bedrock 側の単価はモデルカード、直販の単価は OpenAI のモデルページに載っています。次の表は、272Kトークンまでの短コンテキストにおける1Mトークンあたりの定価です。
| 呼び出し方 | 入力 | 出力 |
|---|---|---|
| Bedrock / グローバルのクロスリージョン推論 | $10.00 | $50.00 |
| Bedrock / リージョン内推論・地理別クロスリージョン推論 | $11.00 | $55.00 |
| OpenAI 直販 | $10.00 | $50.00 |
まとめ
GA 直後の GPT-6 Astra を、Bedrock ネイティブの Converse と OpenAI 互換の Responses API のどちらからも呼び出せました。
今回 Amazon Bedrock で利用可能になった GPT-6 Astra、AI エージェントである Kiro などへの展開や、地理別クロスリージョン推論の対象地域が北米以外にも拡大されることに期待したいと思います。








