View a markdown version of this page

VPC용 Amazon Bedrock AgentCore 런타임 및 도구 구성 - Amazon Bedrock AgentCore

VPC용 Amazon Bedrock AgentCore 런타임 및 도구 구성

Amazon Virtual Private Cloud(VPC)의 리소스에 연결하도록 Amazon Bedrock AgentCore 런타임 및 내장 도구(코드 해석기 및 브라우저 도구)를 구성할 수 있습니다. VPC 연결을 구성하면 데이터베이스, 내부 APIs 및 VPC 내 서비스와 같은 프라이빗 리소스에 대한 보안 액세스를 활성화할 수 있습니다.

Amazon Bedrock AgentCore 런타임 및 도구에 대한 VPC 연결

Amazon Bedrock AgentCore 런타임 및 내장 도구가 프라이빗 VPC의 리소스에 안전하게 액세스할 수 있도록 AgentCore는 VPC 연결 기능을 제공합니다. 이 기능을 사용하면 런타임 및 도구가 다음을 수행할 수 있습니다.

  • 인터넷에 노출되지 않고 프라이빗 리소스에 연결

  • 조직의 네트워크 경계 내에서 보안 통신 유지

  • 보안을 유지하면서 엔터프라이즈 데이터 스토어 및 내부 서비스에 액세스

Amazon Bedrock AgentCore 런타임 및 도구에 대한 VPC 연결을 구성하는 경우:

  • Amazon Bedrock은 서비스 연결 역할을 사용하여 VPC에 탄력적 네트워크 인터페이스(ENIs)를 생성합니다. AWSServiceRoleForBedrockAgentCoreNetwork

  • 이러한 ENIs 사용하면 Amazon Bedrock AgentCore 런타임 및 도구가 VPC의 리소스와 안전하게 통신할 수 있습니다.

  • 각 ENI에는 지정한 서브넷의 프라이빗 IP 주소가 할당됩니다.

  • ENIs 제어합니다.

참고

ENIs는 동일한 서브넷 및 보안 그룹 구성을 사용하는 에이전트 간에 공유되는 리소스입니다. 에이전트를 삭제하면 연결된 ENI가 자동으로 제거되기 전에 최대 8시간 동안 VPC에 지속될 수 있습니다.

참고

VPC 연결은 AgentCore 서비스의 인바운드 및 아웃바운드 네트워크 트래픽에 영향을 미칩니다. AWS VPC에서 애플리케이션을 호스팅할 때 AgentCore VPC 엔드포인트를 VPC에 추가하여 AgentCore 런타임 및 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 게이트웨이를 통해 인터넷에 액세스할 수 있어야 합니다. 예를 들어 보안 그룹 고려 사항을 참조하세요.

중요

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

Europe (London)

eu-west-2

euw2-az1 euw2-az2 euw2-az3

Europe (Milan)

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 런타임 및 기본 제공 도구를 사용하여 최적의 성능과 보안을 제공하려면:

  • 고가용성:

    • 서로 다른 가용 영역에 두 개 이상의 프라이빗 서브넷을 구성합니다. 지원되는 가용 영역 목록은 지원되는 가용 영역을 참조하세요.

    • 다중 AZ 지원을 통해 종속 리소스(예: 데이터베이스 또는 캐시)를 배포하여 단일 장애 지점을 방지합니다.

  • 네트워크 성능:

    • Amazon Bedrock AgentCore 런타임 또는 내장 도구 서브넷을 연결된 리소스와 동일한 가용 영역에 배치합니다. 이렇게 하면 AZ 간 지연 시간과 데이터 전송 비용이 줄어듭니다.

    • 가능하면 AWS 서비스에 VPC 엔드포인트를 사용합니다. 엔드포인트는 지연 시간을 줄이고 안정성을 높이며 지원되는 서비스에 대한 NAT 게이트웨이 요금을 방지합니다.

  • 보안:

    • 보안 그룹 규칙을 생성할 때 최소 권한 원칙을 적용합니다.

    • 감사 및 모니터링을 위해 VPC 흐름 로그를 활성화합니다. 로그를 정기적으로 검토하여 예상치 못한 트래픽 패턴을 식별합니다.

  • 인터넷 액세스:

    • Amazon Bedrock AgentCore 런타임 또는 VPC 내 내장 도구에서 인터넷 액세스를 제공하려면 퍼블릭 서브넷에서 NAT 게이트웨이를 구성합니다. NAT 게이트웨이로 아웃바운드 트래픽(0.0.0.0/0)을 전송하도록 프라이빗 서브넷의 라우팅 테이블을 업데이트합니다.

    • 보안을 개선하고 비용을 절감하려면 인터넷 라우팅 대신 AWS 서비스에 VPC 엔드포인트를 사용하는 것이 좋습니다.

런타임 및 도구에 대한 VPC 액세스 구성

AWS 관리 콘솔, CLI 또는SDK를 사용하여 Amazon Bedrock AgentCore 런타임 및 내장 도구에 대한 AWS VPC 액세스를 구성할 수 있습니다. AWS SDKs

런타임 구성

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

  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 }, )

코드 해석기 구성

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 파일 액세스 포인트)을 구성하면 AgentCore 런타임은 NFS를 통해 파일 시스템을 탑재합니다. 이렇게 하려면 포트 2049에서 에이전트 런타임 ENIs와 파일 시스템 탑재 대상 간의 TCP 연결이 필요합니다.

AgentCore는 TLS 암호화 및 IAM 인증을 자동으로 처리합니다. amazon-efs-utils 탑재 헬퍼는 microVM 런타임에 사전 설치되어 있으므로 컨테이너 이미지에 탑재 소프트웨어를 구성하거나 설치할 필요가 없습니다.

보안 그룹 구성

에이전트 런타임과 파일 시스템 탑재 대상 간의 NFS 트래픽을 허용하도록 보안 그룹을 구성합니다.

에이전트 런타임 보안 그룹 - 아웃바운드 규칙:

유형 프로토콜 포트 범위 Destination 설명

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에 인터넷 액세스 권한이 없는 경우 필요하며, VPC에 NAT 게이트웨이가 있더라도 NAT 게이트웨이 데이터 처리 요금을 피하는 것이 좋습니다.

필수 VPC 엔드포인트

  • Amazon ECR 요구 사항:

    • Docker 엔드포인트: com.amazonaws.region.ecr.dkr

    • ECR API 엔드포인트: com.amazonaws.region.ecr.api

  • Amazon S3 요구 사항:

    • ECR Docker 계층 스토리지의 게이트웨이 엔드포인트: com.amazonaws.region.s3

      중요

      컨테이너 에이전트의 경우 AgentCore는 Amazon S3에 이미지 계층을 저장하는 ECR에서 컨테이너 이미지를 주기적으로 새로 고칩니다. S3 게이트웨이 VPC 엔드포인트가 없으면이 트래픽은 NAT 게이트웨이를 통해 라우팅되고 데이터 처리 요금이 발생합니다. S3 Gateway VPC 엔드포인트는 무료이며 이러한 요금이 부과되지 않습니다. VPC에 NAT를 통한 인터넷 액세스 권한이 있더라도 모든 VPC 모드 컨테이너 에이전트에이 엔드포인트를 추가하는 것이 좋습니다.

      컨테이너 에이전트에 대한 최소 S3 버킷 권한

      S3 게이트웨이 엔드포인트는 IAM 정책 문서를 사용하여 서비스에 대한 액세스를 제한합니다. 최소 권한 원칙을 따르려면 S3 ECR이 이미지 계층을 저장하는 데 사용하는 Amazon S3 버킷으로만 S3 게이트웨이 엔드포인트 정책의 범위를 지정합니다. 다음 정책은 리전의 ECR 계층 스토리지 버킷에 대한 액세스를 제한합니다.

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

      리전을 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

참고

다른 경우 리전을 특정 리전으로 바꿔야 합니다.

참고

파일 시스템 구성를 사용하는 경우 VPC가 네트워킹 요구 사항을 충족하는지 확인합니다.

인터넷 액세스 고려 사항

Amazon Bedrock AgentCore 런타임 또는 기본 제공 도구를 Virtual Private Cloud(VPC)에 연결하면 기본적으로 인터넷에 액세스할 수 없습니다. 기본적으로 이러한 리소스는 동일한 VPC 내의 리소스와만 통신할 수 있습니다. 런타임 또는 도구에서 VPC 리소스와 인터넷 모두에 액세스해야 하는 경우 그에 따라 VPC를 구성해야 합니다.

인터넷 액세스 아키텍처

VPC에 연결된 Amazon Bedrock AgentCore 런타임 또는 내장 도구에 대한 인터넷 액세스를 활성화하려면 다음 구성 요소로 VPC를 구성합니다.

  • 프라이빗 서브넷 - Amazon Bedrock AgentCore 런타임 또는 도구의 네트워크 인터페이스를 프라이빗 서브넷에 배치합니다.

  • NAT 게이트웨이가 있는 퍼블릭 서브넷 - 하나 이상의 퍼블릭 서브넷에 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는 퍼블릭 엔드포인트를 호출하려고 할 때 통화 제한 시간을 호출합니다.

    • VPC가 인터넷 액세스를 위해 NAT 게이트웨이로 구성되어 있는지 확인

  • 프라이빗 VPC 엔드포인트가 있는 코드 해석기에 대한 호출을 호출하면 "AccessDenied" 오류가 발생합니다.

    • Code Interpreter 생성 중에 전달된 실행 역할에 VPC 엔드포인트가 구성된 AWS 서비스에 대한 올바른 권한이 있는지 확인합니다.

  • 일부 프라이빗 VPC 엔드포인트가 있는 코드 해석기에 대한 호출 호출에는 "자격 증명을 찾을 수 없음" 오류가 표시됩니다.

    • 코드 인터프리터를 생성하는 동안 실행 역할이 제공되었는지 확인합니다.

브라우저 도구 문제

  • Live-View/Connection Stream이 웹 페이지를 로드할 수 없으며 연결 시간 초과와 함께 실패합니다.

    • 브라우저가 NAT 게이트웨이가 있는 프라이빗 서브넷으로 생성되었는지 확인

VPC 연결 테스트

AgentCore 런타임 및 도구에 적절한 VPC 연결이 있는지 확인하기 위해 프라이빗 리소스에 대한 연결을 테스트하고 지정된 서브넷에서 네트워크 인터페이스가 올바르게 생성되었는지 확인할 수 있습니다.

AgentCore 도구에 인터넷 액세스 권한이 있는지 확인하려면 VPC 구성으로 코드 인터프리터를 구성하고 curl 명령을 사용하여 퍼블릭 Invoke API 또는 웹 사이트에 연결executeCommand하려는와 함께 API를 사용하여 응답을 확인할 수 있습니다. 연결 시간이 초과되면 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" } }'

파일 시스템 연결 문제

파일 시스템 탑재가 실패하면 InvokeAgentRuntime API는 HTTP 상태 424(실패한 종속성)를 반환합니다. 다음 섹션을 사용하여 근본 원인을 진단합니다.

파일 시스템 탑재 시간 초과

증상: 파일 시스템 구성을 사용한 에이전트 호출은 장시간 지연 후 실패합니다. 오류는 탑재 작업 시간이 초과되었음을 나타냅니다.

일반적인 원인 및 해결 방법:

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.

참고

드문 경우지만 DNS 확인 타이밍으로 인해 일시적인 ResourceNotFound 오류로 인해 S3 파일 탑재가 실패할 수 있습니다. 호출을 다시 시도하면 일반적으로이 문제가 해결됩니다. 오류가 지속되면 탑재 대상이 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 함께를 사용합니다.