View a markdown version of this page

VPC 用の Amazon Bedrock AgentCore ランタイムとツールを設定する - Amazon Bedrock AgentCore

VPC 用の Amazon Bedrock AgentCore ランタイムとツールを設定する

Amazon Bedrock AgentCore ランタイムと組み込みツール (コードインタープリタとブラウザツール) を設定して、Amazon Virtual Private Cloud (VPC) のリソースに接続できます。VPC 接続を設定することで、VPC 内のデータベース、内部 APIs、サービスなどのプライベートリソースへの安全なアクセスが可能になります。

Amazon Bedrock AgentCore ランタイムとツールの VPC 接続

Amazon Bedrock AgentCore ランタイムと組み込みツールがプライベート VPC 内のリソースに安全にアクセスできるようにするには、AgentCore は VPC 接続機能を提供します。この機能を使用すると、ランタイムとツールは次のことを実行できます。

  • インターネットに公開せずにプライベートリソースに接続する

  • 組織のネットワーク境界内で安全な通信を維持する

  • セキュリティを維持しながらエンタープライズデータストアと内部サービスにアクセスする

Amazon Bedrock AgentCore ランタイムとツールの VPC 接続を設定する場合:

  • Amazon Bedrock は、サービスにリンクされたロールを使用して VPC に Elastic Network Interface (ENIs) を作成します。 AWSServiceRoleForBedrockAgentCoreNetwork

  • これらの ENIsにより、Amazon Bedrock AgentCore ランタイムとツールが VPC 内のリソースと安全に通信できるようになります。

  • 各 ENI には、指定したサブネットからプライベート IP アドレスが割り当てられます。

  • ENIs にアタッチされたセキュリティグループは、ランタイムとツールが通信できるリソースを制御します。

注記

ENIsは、同じサブネットとセキュリティグループ設定を使用するエージェント間で共有リソースです。エージェントを削除すると、関連付けられた ENI が VPC に最大 8 時間保持されてから自動的に削除されます。

注記

VPC 接続は、AgentCore サービスからのインバウンドおよびアウトバウンドのネットワークトラフィックに影響します。VPC でアプリケーションをホストする場合、AgentCore AWS VPC エンドポイントを VPC に追加することで、AgentCore ランタイム API と AgentCore Gateway APIs へのプライベート接続を確立できます。これにより、VPC PrivateLink インバウンド接続を介して、インターネットトラバーサルなしで安全な API コールが可能になります。

前提条件

VPC アクセス用に Amazon Bedrock AgentCore ランタイムとツールを設定する前に、以下を確認してください。

  • ランタイムとツールの要件に適したサブネットを持つ Amazon VPC。たとえば、インターネットアクセスを持つようにサブネットを設定するには、「インターネットアクセスに関する考慮事項」を参照してください。

  • リージョンでサポートされているアベイラビリティーゾーンにあるサブネット。サポートされているアベイラビリティーゾーンの詳細については、「サポートされているアベイラビリティーゾーン」を参照してください。

  • ランタイムとツールのアクセスパターン用に VPC で定義された適切なセキュリティグループ。例えば、Amazon RDS に接続するようにセキュリティグループを設定するには、「例: Amazon RDS データベースに接続する」を参照してください。

  • サービスにリンクされたロールを作成および管理するために必要な IAM アクセス許可 (既に AWS 管理ポリシー BedrockAgentCoreFullAccess に含まれています)。必要なアクセス許可の詳細については、「IAM アクセス許可」を参照してください。

  • VPC にインターネットアクセスがない場合に必要な VPC エンドポイント。例えば、VPC エンドポイントを設定するには、「VPC エンドポイントの設定」を参照してください。

  • ランタイムとツールのネットワーク要件 (データベース、APIs、ウェブリソース) の理解。インターネットアクセスを必要とするブラウザツールを使用する必要がある場合は、VPC が NAT Gateway 経由でインターネットアクセスを持っている必要があります。例えば、「セキュリティグループの考慮事項」を参照してください。

重要

AgentCore は、プライベート IP アドレスを持つネットワークインターフェイスをアカウントに作成します。パブリックサブネットを使用しても、インターネット接続は提供されません。インターネットアクセスを有効にするには、NAT ゲートウェイへのルートを持つプライベートサブネットに配置します。

サポートされているアベイラビリティーゾーン

AgentCore は、サポートされている各リージョン内の特定のアベイラビリティーゾーンで VPC 接続をサポートしています。Amazon Bedrock AgentCore ランタイムと組み込みツールのサブネットを設定するときは、サブネットがリージョンでサポートされているアベイラビリティーゾーンにあることを確認してください。

次の表は、各リージョンでサポートされているアベイラビリティーゾーン IDs を示しています。

リージョン リージョンコード サポートされているアベイラビリティーゾーン

米国東部 (バージニア北部)

us-east-1

use1-az1 use1-az2 use1-az4

米国東部 (オハイオ)

us-east-2

use2-az1 use2-az2 use2-az3

米国西部 (オレゴン)

us-west-2

usw2-az1 usw2-az2 usw2-az3

アジアパシフィック (マレーシア)

ap-southeast-5

apse5-az1 apse5-az2 apse5-az3

アジアパシフィック (ムンバイ)

ap-south-1

aps1-az1 aps1-az2 aps1-az3

アジアパシフィック (ソウル)

ap-northeast-2

apne2-az1 apne2-az2 apne2-az3

アジアパシフィック (シンガポール)

ap-southeast-1

apse1-az1 apse1-az2 apse1-az3

アジアパシフィック (シドニー)

ap-southeast-2

apse2-az1 apse2-az2 apse2-az3

アジアパシフィック (タイ)

ap-southeast-7

apse7-az1 apse7-az2 apse7-az3

アジアパシフィック (東京)

ap-northeast-1

apne1-az1 apne1-az2 apne1-az4

カナダ (中部)

ca-central-1

cac1-az1 cac1-az2 cac1-az4

欧州 (フランクフルト)

eu-central-1

euc1-az1 euc1-az2 euc1-az3

欧州 (アイルランド)

eu-west-1

euw1-az1 euw1-az2 euw1-az3

欧州 (ロンドン)

eu-west-2

euw2-az1 euw2-az2 euw2-az3

欧州 (ミラノ)

eu-south-1

eus1-az1 eus1-az2 eus1-az3

欧州 (パリ)

eu-west-3

euw3-az1 euw3-az2 euw3-az3

欧州 (スペイン)

eu-south-2

eus2-az1 eus2-az2 eus2-az3

欧州 (ストックホルム)

eu-north-1

eun1-az1 eun1-az2 eun1-az3

南米 (サンパウロ)

sa-east-1

sae1-az1 sae1-az2 sae1-az3

AWS GovCloud (米国西部)

us-gov-west-1

usgw1-az1 usgw1-az2 usgw1-az3

重要

サブネットは、上記のサポートされているアベイラビリティーゾーンに配置する必要があります。サポートされていないアベイラビリティーゾーンでサブネットを指定すると、リソースの作成中に設定が失敗します。

サブネットのアベイラビリティーゾーン ID を識別するには、次の CLI コマンドを使用できます。

aws ec2 describe-subnets --subnet-ids subnet-12345678 --query 'Subnets[0].AvailabilityZoneId'

IAM アクセス許可

AgentCore は、サービスにリンクされたロールAWSServiceRoleForBedrockAgentCoreNetworkを使用して、VPC 内のネットワークインターフェイスを作成および管理します。このロールは、VPC 接続を使用するように Amazon Bedrock AgentCore ランタイムまたは AgentCore 組み込みツールを初めて設定するときに自動的に作成されます。

このロールを手動で作成する必要がある場合、IAM エンティティには次のアクセス許可が必要です。

{ "Action": "iam:CreateServiceLinkedRole", "Effect": "Allow", "Resource": "arn:aws:iam::*:role/aws-service-role/network.bedrock-agentcore.amazonaws.com/AWSServiceRoleForBedrockAgentCoreNetwork", "Condition": { "StringLike": { "iam:AWSServiceName": "network.bedrock-agentcore.amazonaws.com" } } }

このアクセス許可は、 AWS 管理ポリシー BedrockAgentCoreFullAccess にすでに含まれています。

ベストプラクティス

VPC 接続の Amazon Bedrock AgentCore ランタイムと組み込みツールを使用して、最適なパフォーマンスとセキュリティを実現するには:

  • 高可用性:

    • 異なるアベイラビリティーゾーンに少なくとも 2 つのプライベートサブネットを設定します。サポートされているアベイラビリティーゾーンのリストについては、「サポートされているアベイラビリティーゾーン」を参照してください。

    • マルチ AZ サポートを使用して依存リソース (データベースやキャッシュなど) をデプロイし、単一障害点を回避します。

  • ネットワークパフォーマンス:

    • Amazon Bedrock AgentCore ランタイムまたは組み込みツールサブネットを、接続先のリソースと同じアベイラビリティーゾーンに配置します。これにより、AZ 間のレイテンシーとデータ転送コストを削減できます。

    • 可能な限り、 AWS サービスに VPC エンドポイントを使用します。エンドポイントは、低レイテンシー、高信頼性を提供し、サポートされているサービスの NAT ゲートウェイ料金を回避します。

  • のセキュリティ

    • セキュリティグループルールを作成するときは、最小特権の原則を適用します。

    • 監査とモニタリングのために VPC フローログを有効にします。ログを定期的に確認して、予期しないトラフィックパターンを特定します。

  • インターネットアクセス:

    • Amazon Bedrock AgentCore ランタイムまたは VPC 内の組み込みツールからのインターネットアクセスを提供するには、パブリックサブネットで NAT ゲートウェイを設定します。プライベートサブネットのルートテーブルを更新して、アウトバウンドトラフィック (0.0.0.0/0) を NAT ゲートウェイに送信します。

    • セキュリティを向上させ、コストを削減するために、インターネットルーティングの代わりに AWS サービスに VPC エンドポイントを使用することをお勧めします。

ランタイムとツールの VPC アクセスの設定

AWS マネジメントコンソール、 AWS CLI、または AWS SDKs を使用して、Amazon Bedrock AgentCore ランタイムおよび組み込みツールの VPC アクセスを設定できます。

ランタイム設定

AWS Management Console
  1. https://console.aws.amazon.com/bedrock-agentcore/home# で AgentCore コンソールを開きます。

  2. AgentCore セクションに移動します。

  3. Amazon Bedrock AgentCore ランタイム設定を選択または作成する

  4. ECR イメージを選択する

  5. ネットワーク設定セクションで、VPC を選択します。

  6. ドロップダウンリストから VPC を選択します。

  7. アプリケーションのニーズに適したサブネットを選択する

  8. ENIs に適用する 1 つ以上のセキュリティグループを選択する

  9. 設定を保存する

AWS CLI
  1. aws bedrock-agentcore-control create-agent-runtime \ --agent-runtime-name "MyAgentRuntime" \ --network-configuration '{ "networkMode": "VPC", "networkModeConfig": { "subnets": ["subnet-0123456789abcdef0", "subnet-0123456789abcdef1"], "securityGroups": ["sg-0123456789abcdef0"] } }'
AWS SDK (Python)
  1. import boto3 client = boto3.client('bedrock-agentcore') response = client.create_runtime( runtimeName='MyAgentRuntime', networkConfiguration={ 'networkMode': 'VPC', 'networkModeConfig': { 'subnets': ['subnet-0123456789abcdef0', 'subnet-0123456789abcdef1'], 'securityGroups': ['sg-0123456789abcdef0'] } }, lifecycleConfiguration={ 'idleRuntimeSessionTimeout': 300, # 5 min, configurable 'maxLifetime': 1800 # 30 minutes, configurable }, )

Code Interpreter の設定

AWS Management Console
  1. https://console.aws.amazon.com/bedrock-agentcore/home# で AgentCore コンソールを開きます。

  2. AgentCore → 組み込みツール → コードインタープリタに移動する

  3. コードインタープリタの作成を選択するか、既存の設定を変更する

  4. ツール名を指定する (オプション)

  5. 必要なアクセス許可を持つ実行ロールを設定する

  6. ネットワーク設定で VPC を選択します。

  7. ドロップダウンから VPC を選択する

  8. 適切なサブネットを選択する (NAT ゲートウェイを使用する複数の AZsプライベートサブネットを推奨)

  9. ENI アクセスコントロールのセキュリティグループを選択する

  10. 必要なアクセス許可を持つ実行ロールを設定する

  11. 設定を保存する

AWS CLI
  1. aws bedrock-agentcore-control create-code-interpreter \ --region <Region> \ --name "my-code-interpreter" \ --description "My Code Interpreter with VPC mode for data analysis" \ --execution-role-arn "arn:aws:iam::123456789012:role/my-execution-role" \ --network-configuration '{ "networkMode": "VPC", "networkModeConfig": { "subnets": ["subnet-0123456789abcdef0", "subnet-0123456789abcdef1"], "securityGroups": ["sg-0123456789abcdef0"] } }'
AWS SDK (Python)
  1. import boto3 # Initialize the boto3 client cp_client = boto3.client( 'bedrock-agentcore-control', region_name="<Region>", endpoint_url="https://bedrock-agentcore-control.<Region>.amazonaws.com" ) # Create a Code Interpreter response = cp_client.create_code_interpreter( name="myTestVpcCodeInterpreter", description="Test code sandbox for development", executionRoleArn="arn:aws:iam::123456789012:role/my-execution-role", networkConfiguration={ 'networkMode': 'VPC', 'networkModeConfig': { 'subnets': ['subnet-0123456789abcdef0', 'subnet-0123456789abcdef1'], 'securityGroups': ['sg-0123456789abcdef0'] } } ) # Print the Code Interpreter ID code_interpreter_id = response["codeInterpreterId"] print(f"Code Interpreter ID: {code_interpreter_id}")

ブラウザツールの設定

AWS Management Console
  1. https://console.aws.amazon.com/bedrock-agentcore/home# で AgentCore コンソールを開きます。

  2. ナビゲーションペインで、組み込みツールを選択します。

  3. ブラウザの作成ツールを選択する

  4. ツール名 (オプション) と説明 (オプション) を入力します。

  5. 実行ロールのアクセス許可を設定する

  6. ネットワーク設定セクションで、VPC モードを選択します。

  7. VPC とサブネットを選択する

  8. ウェブアクセス要件のセキュリティグループを設定する

  9. 実行ロールのアクセス許可を設定する

  10. 設定を保存する

AWS CLI
  1. aws bedrock-agentcore-control create-browser \ --region <Region> \ --name "my-browser" \ --description "My browser for web interaction" \ --network-configuration '{ "networkMode": "VPC", "networkModeConfig": { "subnets": ["subnet-0123456789abcdef0", "subnet-0123456789abcdef1"], "securityGroups": ["sg-0123456789abcdef0"] } }' \ --recording '{ "enabled": true, "s3Location": { "bucket": "my-bucket-name", "prefix": "sessionreplay" } }' \ --execution-role-arn "arn:aws:iam::123456789012:role/my-execution-role"
AWS SDK (Python)
  1. import boto3 # Initialize the boto3 client cp_client = boto3.client( 'bedrock-agentcore-control', region_name="<Region>", endpoint_url="https://bedrock-agentcore-control.<Region>.amazonaws.com" ) # Create a Browser response = cp_client.create_browser( name="myTestVpcBrowser", description="Test browser with VPC mode for development", networkConfiguration={ 'networkMode': 'VPC', 'networkModeConfig': { 'subnets': ['subnet-0123456789abcdef0', 'subnet-0123456789abcdef1'], 'securityGroups': ['sg-0123456789abcdef0'] } }, executionRoleArn="arn:aws:iam::123456789012:role/Sessionreplay", recording={ "enabled": True, "s3Location": { "bucket": "session-record-123456789012", "prefix": "replay-data" } } )

セキュリティグループに関する考慮事項

セキュリティグループは、VPC に接続されている場合、Amazon Bedrock AgentCore ランタイムまたは組み込みツールの仮想ファイアウォールとして機能します。インスタンスレベルでインバウンドトラフィックとアウトバウンドトラフィックを制御します。ランタイムのセキュリティグループを設定するには:

  • アウトバウンドルール – Amazon Bedrock AgentCore ランタイムが必要な VPC リソースに接続できるようにするアウトバウンドルールを定義します。

  • インバウンドルール – ターゲットリソースのセキュリティグループが、Amazon Bedrock AgentCore ランタイムに関連付けられたセキュリティグループからのインバウンド接続を許可していることを確認します。

  • 最小特権 – 最小特権の原則を適用するには、最小限必要なトラフィックのみを許可します。

例: Amazon RDS データベースへの接続

Amazon Bedrock AgentCore ランタイムが Amazon RDS データベースに接続するときは、次のようにセキュリティグループを設定します。

Amazon Bedrock AgentCore ランタイムセキュリティグループ

  • アウトバウンド – ポート 3306 (MySQL) で RDS データベースのセキュリティグループへの TCP トラフィックを許可します。

  • インバウンド – 必須ではありません。ランタイムはアウトバウンド接続のみを開始します。

Amazon RDS データベースセキュリティグループ

  • インバウンド – ポート 3306 で Amazon Bedrock AgentCore ランタイムセキュリティグループからの TCP トラフィックを許可します。

  • アウトバウンド – 必須ではありません。セキュリティグループがステートフルであるため、リターントラフィックは自動的に許可されます。

例: Amazon EFS または Amazon S3 ファイルへの接続

エージェントランタイムで bring-your-own ファイルシステム (Amazon EFS または Amazon S3 Files アクセスポイント) を設定すると、AgentCore Runtime はファイルシステムを NFS 経由でマウントします。これには、エージェントランタイム ENIs とファイルシステムのマウントターゲット間のポート 2049 での TCP 接続が必要です。

AgentCore は TLS 暗号化と IAM 認証を自動的に処理します。amazon-efs-utils マウントヘルパーは microVM ランタイムにプリインストールされています。コンテナイメージにマウントソフトウェアを設定またはインストールする必要はありません。

セキュリティグループの設定

エージェントランタイムとファイルシステムのマウントターゲット間の NFS トラフィックを許可するようにセキュリティグループを設定します。

エージェントランタイムセキュリティグループ – アウトバウンドルール:

タイプ プロトコル ポート範囲 宛先 説明

NFS

TCP

2049

sg-mounttarget

NFS にファイルシステムのマウントターゲットを許可する

ファイルシステムのマウントターゲットセキュリティグループ – インバウンドルール:

タイプ プロトコル ポート範囲 ソース 説明

NFS

TCP

2049

sg-agentruntime

AgentCore ランタイムから NFS を許可する

sg-mounttarget を EFS または S3 Files マウントターゲットのセキュリティグループ ID に置き換え、sg-agentruntime をエージェントのランタイムで使用されるセキュリティグループ ID に置き換えます。

AWS CLI – エージェントランタイムセキュリティグループにアウトバウンドルールを追加します。

aws ec2 authorize-security-group-egress \ --group-id sg-0123456789abcdef0 \ --protocol tcp \ --port 2049 \ --source-group sg-0987654321fedcba0

AWS CLI – ターゲットセキュリティグループをマウントするインバウンドルールを追加します。

aws ec2 authorize-security-group-ingress \ --group-id sg-0987654321fedcba0 \ --protocol tcp \ --port 2049 \ --source-group sg-0123456789abcdef0
注記

エージェントランタイムとファイルシステムのマウントターゲットの両方に単一のセキュリティグループを使用する場合は、同じセキュリティグループからのポート 2049 でのインバウンド TCP を許可する自己参照ルールを追加します。

VPC エンドポイント設定

VPC で Amazon Bedrock AgentCore ランタイムを実行する場合は、次の VPC エンドポイントを設定することを強くお勧めします。これらのエンドポイントは、VPC にインターネットアクセスがない場合に必要であり、NAT ゲートウェイデータ処理料金を回避するために、VPC に NAT ゲートウェイがある場合でも強くお勧めします。

必要な VPC エンドポイント

  • Amazon ECR の要件:

    • Docker エンドポイント: com.amazonaws.region.ecr.dkr

    • ECR API エンドポイント: com.amazonaws.region.ecr.api

  • Amazon S3 の要件:

    • ECR Docker Layer ストレージのゲートウェイエンドポイント: com.amazonaws.region.s3

      重要

      コンテナエージェントの場合、AgentCore は Amazon S3 にイメージレイヤーを保存する ECR からコンテナイメージを定期的に更新します。S3 Gateway VPC エンドポイントがない場合、このトラフィックは NAT ゲートウェイを経由し、データ処理料金が発生します。S3 Gateway VPC エンドポイントは無料であり、これらの料金は発生しません。VPC が NAT 経由でインターネットにアクセスできる場合でも、すべての VPC モードコンテナエージェントにこのエンドポイントを追加することを強くお勧めします。

      コンテナエージェントの最小 S3 バケットアクセス許可

      S3 ゲートウェイエンドポイントは、IAM ポリシードキュメントを使用してサービスへのアクセスを制限します。最小特権の原則に従うには、S3 ゲートウェイエンドポイントポリシーの範囲を、Amazon ECR がイメージレイヤーの保存に使用する Amazon S3 バケットのみに設定します。次のポリシーは、リージョンの ECR レイヤーストレージバケットへのアクセスを制限します。

      { "Statement": [ { "Sid": "AllowECRLayerAccess", "Principal": "*", "Action": [ "s3:GetObject" ], "Effect": "Allow", "Resource": ["arn:aws:s3:::prod-region-starport-layer-bucket/*"] } ] }

      region を AWS リージョン識別子 (us-east-2米国東部 (オハイオ) など) に置き換えます。

      ダイレクトコードデプロイエージェントの最小 S3 バケットアクセス許可

      ダイレクトコードデプロイ (zip ベース) を使用してデプロイされたエージェントの場合、AgentCore はコードアーティファクトを内部サービス所有の S3 バケットに保存します。S3 ゲートウェイエンドポイントポリシーの範囲を、リージョンのコードアーティファクトバケットのみに設定します。

      { "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": [ "arn:aws:s3:::acr-code-*-region-an", "arn:aws:s3:::acr-code-*-region-an/*" ], "Condition": { "StringEquals": { "aws:PrincipalServiceName": "bedrock-agentcore.amazonaws.com" } } } ] }

      region を AWS リージョン識別子 (例: ) に置き換えますus-west-2

      注記

      AgentCore コードアーティファクトバケットは、アカウントリージョン名前空間汎用バケットに作成されます。サービスで使用される実際のバケット名を所有 AWS できるのは のみです。このaws:PrincipalServiceName条件により、AgentCore サービスプリンシパルのみがこのエンドポイントポリシーを介してバケットにアクセスできるようになります。

      注記

      永続ファイルシステムも使用している場合は、このポリシーにセッションストレージバケット (acr-storage-*-region-an) を追加します。必要なアクセス許可については、「ネットワーク要件」を参照してください。

  • CloudWatch の要件:

    • ログエンドポイント: com.amazonaws.region.logs

注記

region が異なる場合は、必ず特定のリージョンに置き換えてください。

注記

ファイルシステム設定 を使用している場合は、VPC がネットワーク要件を満たしていることを確認します。

インターネットアクセスに関する考慮事項

Amazon Bedrock AgentCore ランタイムまたは組み込みツールを Virtual Private Cloud (VPC) に接続すると、デフォルトではインターネットアクセスがありません。デフォルトでは、これらのリソースは同じ VPC 内のリソースとのみ通信できます。ランタイムまたはツールが VPC リソースとインターネットの両方にアクセスする必要がある場合は、それに応じて VPC を設定する必要があります。

インターネットアクセスアーキテクチャ

VPC に接続された Amazon Bedrock AgentCore ランタイムまたは組み込みツールのインターネットアクセスを有効にするには、次のコンポーネントを使用して VPC を設定します。

  • プライベートサブネット – Amazon Bedrock AgentCore ランタイムまたはツールのネットワークインターフェイスをプライベートサブネットに配置します。

  • NAT ゲートウェイを持つパブリックサブネット – 1 つ以上のパブリックサブネットに NAT ゲートウェイをデプロイして、プライベートリソースのアウトバウンドインターネットアクセスを提供します。

  • インターネットゲートウェイ (IGW) — インターネットゲートウェイを VPC にアタッチして、NAT ゲートウェイとインターネット間の通信を有効にします。

ルーティング設定

サブネットルートテーブルを次のように更新します。

  • プライベートサブネットルートテーブル – NAT ゲートウェイを指すデフォルトルート (0.0.0.0/0) を追加します。これにより、ランタイムまたはツールからのアウトバウンドトラフィックがインターネットに到達できるようになります。

  • パブリックサブネットルートテーブル – インターネットゲートウェイを指すデフォルトルート (0.0.0.0/0) を追加します。これにより、NAT ゲートウェイはインターネットと通信できます。

重要

Amazon Bedrock AgentCore ランタイムと組み込みツールをパブリックサブネットに接続しても、インターネットアクセスは提供されません。インターネット接続には、常に NAT ゲートウェイでプライベートサブネットを使用してください。

モニタリングとトラブルシューティング

VPC に接続された Amazon Bedrock AgentCore ランタイムとツールをモニタリングおよびトラブルシューティングするには:

CloudWatch Logs

Amazon Bedrock AgentCore ランタイムの CloudWatch Logs を有効にして、接続の問題を特定します。

  • VPC 接続に関連するエラーメッセージを確認する

  • VPC リソースに接続するときにタイムアウトエラーを探す

  • 初期化時間をモニタリングする (VPC 接続によりセッションの起動時間が長くなる可能性があります)

一般的な の問題と解決策

  • 接続タイムアウト:

    • セキュリティグループのルールが正しいことを確認する

    • ルートテーブルが正しく設定されていることを確認します。

    • ターゲットリソースが実行されていて、接続を受け入れていることを確認します。

  • DNS 解決の失敗:

    • VPC で DNS 解決が有効になっていることを確認します。

    • DHCP オプションが正しく設定されていることを確認します。

  • ENIs:

    • IAM アクセス許可をチェックして、サービスにリンクされたロールに適切なアクセス許可があることを確認します。

    • 到達した可能性のあるサービスクォータを探します。

Code Interpreter の問題

  • Code Interpreter は、パブリックエンドポイント を呼び出すときに呼び出しタイムアウトを呼び出します

    • VPC にインターネットアクセス用の NAT ゲートウェイが設定されていることを確認します。

  • プライベート VPC エンドポイントで Code Interpreter の呼び出しを呼び出すと、AccessDenied」エラーがスローされます。

    • Code Interpreter の作成時に渡された実行ロールに、VPC エンドポイントが設定された AWS サービスに対する適切なアクセス許可があることを確認します。

  • 一部のプライベート VPC エンドポイントで Code Interpreter の呼び出しを呼び出すと、「認証情報を見つけることができません」というエラーが表示されます

    • コードインタプリタの作成中に実行ロールが指定されていることを確認します。

ブラウザツールの問題

  • Live-View/Connection Streams はウェブページをロードできず、接続タイムアウト で失敗します

    • ブラウザが NAT ゲートウェイを備えたプライベートサブネットで作成されたかどうかを確認する

VPC 接続のテスト

AgentCore ランタイムとツールに適切な VPC 接続があることを確認するには、プライベートリソースへの接続をテストし、指定したサブネットにネットワークインターフェイスが正しく作成されていることを確認します。

AgentCore ツールにインターネットアクセスがあることを確認するには、VPC 設定で Code Interpreter を設定し、 curl コマンドを使用してパブリック Invoke API またはウェブサイトに接続executeCommandし、レスポンスを確認します。接続がタイムアウトした場合は、VPC 設定、特にルートテーブルと NAT ゲートウェイの設定を確認します。

# Using awscurl awscurl -X POST \ "https://bedrock-agentcore.<Region>.amazonaws.com/code-interpreters/<code_interpreter_id>/tools/invoke" \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -H "x-amzn-code-interpreter-session-id: your-session-id" \ --service bedrock-agentcore \ --region <Region> \ -d '{ "name": "executeCommand", "arguments": { "command": "curl amazon.com" } }'

ファイルシステム接続の問題

ファイルシステムのマウントが失敗すると、InvokeAgentRuntimeAPI は HTTP ステータス 424 (Failed Dependency) を返します。以下のセクションを使用して根本原因を診断します。

ファイルシステムのマウントがタイムアウトする

症状: ファイルシステム設定によるエージェントの呼び出しは、長時間の遅延後に失敗します。エラーは、マウントオペレーションがタイムアウトしたことを示します。

一般的な原因と解決策:

1. セキュリティグループルールがありません

エージェントランタイムセキュリティグループのアウトバウンドルールを確認します。

aws ec2 describe-security-groups \ --group-ids sg-0123456789abcdef0 \ --query 'SecurityGroups[0].IpPermissionsEgress[?ToPort==`2049`]'

マウントターゲットセキュリティグループのインバウンドルールを確認します。

aws ec2 describe-security-groups \ --group-ids sg-0987654321fedcba0 \ --query 'SecurityGroups[0].IpPermissions[?ToPort==`2049`]'

いずれかのクエリが空の結果を返す場合は、「例: Amazon EFS または Amazon S3 ファイルへの接続」に示すように、欠落しているルールを追加します。

2. エージェントのアベイラビリティーゾーンにマウントターゲットがない

エージェントランタイムは、マウントターゲットが存在しないアベイラビリティーゾーンに配置される場合があります。重複を確認します。

# Get agent runtime subnet AZs aws ec2 describe-subnets \ --subnet-ids subnet-0123456789abcdef0 subnet-0123456789abcdef1 \ --query 'Subnets[*].[SubnetId, AvailabilityZoneId]' --output table # Get EFS mount target AZs aws efs describe-mount-targets \ --file-system-id fs-0123456789abcdef0 \ --query 'MountTargets[*].[AvailabilityZoneId, LifeCycleState]' --output table

解決策: エージェントランタイムサブネットが配置されている各アベイラビリティーゾーンにマウントターゲットを作成するか、マウントターゲットが存在するアベイラビリティーゾーンにエージェントランタイムサブネットを制限します。

3. ルートテーブルにローカルルートがありません

エージェントランタイムサブネットに関連付けられたルートテーブルにローカル VPC ルートが含まれていることを確認します。

aws ec2 describe-route-tables \ --filters "Name=association.subnet-id,Values=subnet-0123456789abcdef0" \ --query 'RouteTables[0].Routes[?DestinationCidrBlock]'

ファイルシステムのマウントが「ResourceNotFound」で失敗する

症状: エージェント呼び出しはすぐに失敗し (タイムアウトなし)、ファイルシステムのホスト名を参照する ResourceNotFound エラーが発生します。

一般的な原因と解決策:

1. DNS 解決の失敗 – VPC はファイルシステムのマウントターゲットホスト名を解決できません。

VPC の DNS 設定を確認します。

aws ec2 describe-vpc-attribute \ --vpc-id vpc-0123456789abcdef0 \ --attribute enableDnsSupport aws ec2 describe-vpc-attribute \ --vpc-id vpc-0123456789abcdef0 \ --attribute enableDnsHostnames

どちらも を返す必要がありますtrue。そうでない場合は、有効にします。

aws ec2 modify-vpc-attribute --vpc-id vpc-0123456789abcdef0 --enable-dns-support aws ec2 modify-vpc-attribute --vpc-id vpc-0123456789abcdef0 --enable-dns-hostnames

2。マウントターゲットが使用可能状態にない — マウントターゲットがまだ作成中であるか、削除されている可能性があります。

# For EFS aws efs describe-mount-targets --file-system-id fs-0123456789abcdef0 # For S3 Files aws s3files list-mount-targets --file-system-id fs-0123456789abcdef0

マウントターゲットが LifeCycleStateであることを確認しますavailable。マウントターゲットがない場合は、適切なサブネットで再作成します。

3. ファイルシステムまたはアクセスポイントの削除 – エージェントランタイム設定で参照されるリソースが存在しなくなりました。有効な ARNs。

注記

まれに、S3 ファイルマウントが DNS 解決のタイミングが原因で一時的なResourceNotFoundエラーで失敗することがあります。通常、呼び出しを再試行すると解決されます。エラーが解決しない場合は、マウントターゲットが Available状態であることを確認します。

アベイラビリティーゾーンの不一致 (断続的な障害)

症状: ファイルシステムのマウントは断続的に成功します。一部の呼び出しは機能し、他の呼び出しはタイムアウトで失敗します。

これが発生する理由: エージェントランタイムには複数のアベイラビリティーゾーンにサブネットがありますが、マウントターゲットは一部のアベイラビリティーゾーンにのみ存在します。エージェントがマウントターゲットなしで AZ に配置されると、マウントはタイムアウトします。

解決策: エージェントランタイムサブネットがあるすべてのアベイラビリティーゾーンにマウントターゲットを作成するか (推奨)、マウントターゲットのないアベイラビリティーゾーンにあるエージェントランタイムサブネットを削除します。

# List all EFS mount target AZs aws efs describe-mount-targets \ --file-system-id fs-0123456789abcdef0 \ --query 'MountTargets[*].AvailabilityZoneId' --output text # Create a mount target in a missing AZ aws efs create-mount-target \ --file-system-id fs-0123456789abcdef0 \ --subnet-id subnet-in-missing-az \ --security-groups sg-0987654321fedcba0
注記

S3 ファイルの場合は、同じパラメータaws s3files create-mount-targetで を使用します。