CloudWatch Logs と Amazon S3 を使用してモデル呼び出しをモニタリングする
モデル呼び出しのログ記録を使用すると、リージョン内の Amazon Bedrock で使用されている AWS アカウント のすべての呼び出しに関する呼び出しログ、モデル入力データ、モデル出力データを収集できます。
呼び出しのログ記録を使用すると、リージョン内のアカウントで実行したすべての呼び出しに関連する完全なリクエストデータ、応答データ、メタデータを収集できます。ログ記録は、ログデータが公開される送信先リソースを出力するように設定できます。サポートされている送信先としては、Amazon CloudWatch Logs および Amazon Simple Storage Service (Amazon S3) があります。同じアカウントとリージョンの送信先のみがサポートされます。
モデル呼び出しログ記録はデフォルトで無効になっています。モデル呼び出しのログ記録を有効にすると、ログ記録の設定が削除されるまでログは保存されます。
次のオペレーションでは、モデル呼び出しをログに記録できます。
Converse API を使用している場合、渡した画像データまたはドキュメントデータは Amazon S3 のログに記録されます (Amazon S3 で配信と画像のログ記録を有効にしている場合)。
呼び出しのログ記録を有効にするには、Amazon S3 または CloudWatch Logs の送信先をセットアップする必要があります。呼び出しのログ記録は、コンソールまたは API を使用して有効にできます。
Amazon S3 送信先をセットアップする
注記
Amazon S3 をログ記録先として使用している場合は、モデル呼び出しのログ記録の設定を作成するものと同じ AWS リージョン にバケットを作成する必要があります。
Amazon Bedrock にログインするために S3 送信先をセットアップするには、以下の手順に従います。
-
ログが配信される S3 バケットを作成します。
-
以下のようなバケットポリシーを追加します (を値に置き換えます)。accountId、region、bucketName、およびオプションである prefix注記
アクセス許可
S3:GetBucketPolicyとS3:PutBucketPolicyを使用してログ記録を設定すると、ユーザーに代わって自動的にバケットポリシーがバケットに追加されます。 -
(オプション) バケットで SSE-KMS を設定する場合は、KMS キーで以下のポリシーを追加します。
{ "Effect": "Allow", "Principal": { "Service": "bedrock.amazonaws.com" }, "Action": "kms:GenerateDataKey", "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "accountId" }, "ArnLike": { "aws:SourceArn": "arn:aws:bedrock:region:accountId:*" } } }
S3 SSE-KMS 設定の詳細については、「AWS KMS (SSE−KMS) によるサーバー側の暗号化の指定」を参照してください。
注記
バケットポリシーを有効にするには、バケット ACL を無効にする必要があります。詳細については、「すべての新しいバケットの ACL を無効にし、オブジェクト所有権を執行します。」を参照してください。
CloudWatch Logs 送信先を設定する
Amazon Bedrock にログインするために Amazon CloudWatch Logs をセットアップするには、以下の手順に従います。
-
ログを公開する CloudWatch ロググループを作成します。
-
以下の CloudWatch Logs アクセス許可を持つ IAM ロールを作成します。
信頼されたエンティティ:
ロールポリシー:
SSE 向け CloudWatch Logs の設定詳細については、「AWS Key Management Service を使用して CloudWatch Logs のログデータを暗号化する」を参照してください。
コンソールを使用したモデル呼び出しログ記録
モデル呼び出しのログ記録を有効にするには、[設定] ページの [ログ記録] トグルスイッチの横にあるスライダーボタンをドラッグします。ログ記録用の追加構成設定がパネルに表示されます。
ログに公開するデータリクエストとレスポンスを選択します。以下の出力オプションの任意の組み合わせを選択することもできます。
-
テキスト
-
イメージ
-
埋め込み
ログを公開する場所を選択します。
-
Amazon S3 のみ
-
CloudWatch Logs のみ
-
Amazon S3 と CloudWatch Logs の両方
送信先として、Amazon S3 と CloudWatch Logs は、呼び出しのログ記録と小さな入出力データに対応しています。大量の入出力データやバイナリイメージ出力には、Amazon S3 のみが対応しています。以下の詳細は、ターゲット送信先でのデータの表示方法をまとめたものです。
-
送信先: S3 - 指定された S3 バケットには、Gzip 圧縮された JSON ファイルが配信されます。各ファイルには、呼び出しのログレコードのバッチが含まれています。CloudWatch Logs イベントと同様に、各レコードには呼び出しメタデータ、および入出力 JSON 本文 (最大サイズ 100 KB) が含まれます。100 KB を超えるバイナリデータまたは JSON 本文は、指定された Amazon S3 バケットに、データプレフィックスを付けた個別のオブジェクトとしてアップロードされます。データは Amazon S3 Select と Amazon Athena を使用してクエリできるほか、AWS Glue を使用して ETL 対象としてカタログ化することもできます。データは OpenSearch サービスにロードすることも、任意の Amazon EventBridge ターゲットによって処理することもできます。
-
送信先: CloudWatch Logs - JSON 呼び出しのログイベントは、CloudWatch Logs 内の指定されたロググループに配信されます。ログイベントでは、呼び出しメタデータと、最大サイズ 100 KB の入出力 JSON 本文が対象となります。大量データ配信用の送信先として Amazon S3 が提供されている場合、100 KB を超えるバイナリデータまたは JSON 本文は、その代わりにデータプレフィックスを付けたものが Amazon S3 バケットにアップロードされます。データは CloudWatch Logs Insights を使用してクエリできるほか、CloudWatch Logs を使用してさまざまなサービスにリアルタイムでストリーミングすることもできます。
API を使用したモデル呼び出しログ記録
モデル呼び出しのログ記録は次の API を使用して設定できます。