翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
モニタリングとログ記録
AWS CloudTrail は、AWS 上の Claude プラットフォームへのすべてのリクエストをキャプチャできます。ワークスペースおよびボールトオペレーションは、デフォルトで管理イベントとして記録されます。他のすべてのオペレーション (推論、バッチ、ファイル、スキル、モデル、ユーザープロファイル、およびボールトを除く Claude マネージドエージェント) はデータイベントです。ログ記録には明示的な設定が必要であり、追加の CloudTrail 料金が発生します。完全なイベントタイプの分類については IAM アクション、設定の詳細については AWS CloudTrail ドキュメントを参照してください。
CloudTrail データイベントログ記録を設定するときは、リソースタイプ を選択しますAWS::AWSExternalAnthropic::Workspace。これは AWS ワークスペース上の Claude プラットフォームの CloudTrail リソースタイプであり、データプレーンイベント (推論、バッチ、ファイル、およびその他のワークスペースごとのオペレーション) をキャプチャするために必要です。アカウント全体ではなくワークスペースのサブセットのアクティビティをログに記録する場合は、データイベントセレクタを特定のワークスペース ARNs にスコープします。
リクエスト IDs
各レスポンスには、レスポンスヘッダーに 2 つのリクエスト IDs が含まれます。
-
AWS リクエスト ID (
x-amzn-requestid): CloudTrail でインデックス付けされたプライマリ ID。これは、AWS ツールを介してリクエストを調査する場合や、AWS サポートに問い合わせる場合に使用します。 -
Anthropic リクエスト ID (
request-id): セカンダリ ID。Anthropic サポートに連絡するときに使用します。
Python
from anthropic import AnthropicAWS client = AnthropicAWS(aws_region="us-west-2") response = client.messages.with_raw_response.create( model="claude-sonnet-4-6", max_tokens=1024, messages=[{"role": "user", "content": "Hello!"}], ) print(response.headers.get("x-amzn-requestid")) # AWS request ID print(response.headers.get("request-id")) # Anthropic request ID message = response.parse() print(message.content)
TypeScript
import AnthropicAws from "@anthropic-ai/aws-sdk"; const client = new AnthropicAws({ awsRegion: "us-west-2" }); const { data: message, response } = await client.messages .create({ model: "claude-sonnet-4-6", max_tokens: 1024, messages: [{ role: "user", content: "Hello!" }] }) .withResponse(); console.log(response.headers.get("x-amzn-requestid")); // AWS request ID console.log(response.headers.get("request-id")); // Anthropic request ID console.log(message.content);
C#
using Anthropic; using Anthropic.Aws; var client = new AnthropicAwsClient(new() { AwsRegion = "us-west-2" }); var response = await client.WithRawResponse.Messages.Create(new() { Model = "claude-sonnet-4-6", MaxTokens = 1024, Messages = [new() { Role = "user", Content = "Hello!" }] }); Console.WriteLine(response.Headers.GetValues("x-amzn-requestid").First()); // AWS request ID Console.WriteLine(response.Headers.GetValues("request-id").First()); // Anthropic request ID Console.WriteLine(response.Value.Content);
Go
client, err := anthropicaws.NewClient(context.Background(), anthropicaws.ClientConfig{}) if err != nil { panic(err) } var response *http.Response message, err := client.Messages.New( context.Background(), anthropic.MessageNewParams{ Model: anthropic.ModelClaudeSonnet4_6, MaxTokens: 1024, Messages: []anthropic.MessageParam{ anthropic.NewUserMessage(anthropic.NewTextBlock("Hello!")), }, }, option.WithResponseInto(&response), ) if err != nil { panic(err) } fmt.Println(response.Header.Get("x-amzn-requestid")) // AWS request ID fmt.Println(response.Header.Get("request-id")) // Anthropic request ID fmt.Println(message.Content[0].Text)
Java
import com.anthropic.aws.backends.AwsBackend; import com.anthropic.client.AnthropicClient; import com.anthropic.client.okhttp.AnthropicOkHttpClient; import com.anthropic.core.http.HttpResponseFor; import com.anthropic.models.messages.Message; import com.anthropic.models.messages.MessageCreateParams; import com.anthropic.models.messages.Model; AnthropicClient client = AnthropicOkHttpClient.builder() .backend(AwsBackend.fromEnv()) .build(); HttpResponseFor<Message> response = client.messages().withRawResponse().create( MessageCreateParams.builder() .model(Model.CLAUDE_SONNET_4_6) .maxTokens(1024) .addUserMessage("Hello!") .build() ); IO.println(response.headers().values("x-amzn-requestid")); // AWS request ID IO.println(response.requestId()); // Anthropic request ID IO.println(response.parse().content());
PHP
use Anthropic\Aws\Client; $client = new Client(); $response = $client->messages->raw->create( model: 'claude-sonnet-4-6', maxTokens: 1024, messages: [['role' => 'user', 'content' => 'Hello!']], ); echo $response->getHeaderLine('x-amzn-requestid') . "\n"; // AWS request ID echo $response->getHeaderLine('request-id') . "\n"; // Anthropic request ID echo $response->parse();
Ruby
Ruby SDK は現在 raw-response アクセサーを公開していないため、Ruby のレスポンスヘッダーからリクエスト IDs を読み取ることはできません。request-ID ログ記録が必要な場合は、上記の他の言語を使用するか、HTTP プロキシレイヤーで IDs をキャプチャします。
Anthropic では、使用パターンを理解し、潜在的な問題を調査するために、少なくとも 30 日間のローリングベースでアクティビティを記録することを推奨しています。
注記
AWS CloudTrail は AWS アカウント内で設定されます。ログ記録を有効にしても、AWS または Anthropic は請求およびサービスオペレーションに必要な範囲を超えてコンテンツにアクセスすることはできません。
使用状況メトリクスとダッシュボード
Claude Platform on AWS は、ワークスペースごとの使用状況メトリクスを Amazon CloudWatch に発行しません。トークン数、リクエスト量、モデルごとの使用量は、代わりに Anthropic の使用表面から使用できます。
-
Claude コンソールの使用状況ビュー — プリンシパルが を使用して Claude コンソールにフェデレーションする場合
aws-external-anthropic:AssumeConsole(IAM ポリシーを参照)、使用状況ダッシュボードには、アクセス可能なワークスペースのリクエストボリューム、トークン数、モデルごとの内訳が表示されます。アカウント全体の使用状況ビューには、管理者コンソール機能が必要です。 -
Anthropic Usage and Cost API — ワークスペースごとやモデルごとの集計など、使用状況とコストデータへのプログラムによるアクセスについては、Anthropic ドキュメントの「Usage and Cost API
」を参照してください。
運用モニタリング (エラー率、レイテンシー、レート制限ヘッダー) には、CloudTrail でキャプチャされた AWS リクエスト ID とともに、すべてのリクエストで返されるレスポンスヘッダーを使用します (「レート制限とクォータ」を参照)。 IDs
コスト配分とモニタリング
AWS での Claude Platform の料金は、モデルごとの使用ディメンションとともに、AWS での Claude Platform on AWS サービスの AWS 請求書に表示されます。AWS コストと使用状況レポート (CUR) をワークスペースタグと組み合わせて使用して、きめ細かなコスト配分を行います。
-
ワークスペースに、関心のある割り当てディメンション (チーム、アプリケーション、環境、コストセンター) をタグ付けします。タグ付けの詳細については、「WorkSpaces」を参照してください。
-
AWS Billing コンソールで、各タグキーをコスト配分タグとしてアクティブ化します。アクティベーション後、アクティベーション日以降に発生した使用量は、CUR のタグで分割されます。
-
CUR または AWS Cost Explorer では、
resourceTags/user:<tag-key>列でグループ化して、ワークスペースタグ別に支出を分類します。
WorkSpace タグは、AWS でのすべての Claude プラットフォームの CUR 明細項目に流れます。同じタグキーは、IAM ベースのアクセスコントロールとコスト配分の両方を促進します。セットアップ手順とアクティベーションの遅延については、AWS Billing ドキュメントの「コスト配分タグ」を参照してください。