기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
부록 A — 가용 영역 ID 가져오기
AWS .NET SDK(JavaScript와 같은 다른 SDK 포함)를 사용하거나 EC2 인스턴스(Amazon ECS 및 Amazon EKS 포함)에서 시스템을 실행하는 경우 가용 영역 ID를 직접 가져올 수 있습니다.
-
AWS .NET SDK
Amazon.Util.EC2InstanceMetadata.GetData(“/placement/availability-zone-id”)
-
EC2 인스턴스 메타데이터 서비스
curl http://169.254.169.254/latest/meta-data/placement/availability-zone-id
Lambda 및 Fargate와 같은 다른 플랫폼에서는 가용 영역 이름을 검색한 다음 가용 영역 ID에 대한 매핑을 찾아야 합니다. 가용 영역 이름을 사용하여 다음과 같이 가용 영역 ID를 찾을 수 있습니다.
aws ec2 describe-availability-zones --zone-names $AZ --output json --query ‘AvailabilityZones[0].ZoneId’
위 예제에서 사용할 가용 영역 이름을 찾기 위한 다음 예시는 bash에서 AWS CLI 및 jq
패키지를 사용하여 작성한 것입니다. 워크로드에 사용되는 프로그래밍 언어로 변환해야 합니다. -
Amazon ECS - 호스트가 인스턴스 메타데이터 서비스(IMDS)를 차단한 경우 컨테이너 메타데이터 파일을 대신 사용할 수 있습니다.
AZ=$(cat $ECS_CONTAINER_METADATA_FILE | jq –-raw-output .AvailabilityZone)
-
Fargate(플랫폼 버전 1.4 이상)
AZ=$(curl $ECS_CONTAINER_METADATA_URI_V4/task | jq --raw-output .AvailabilityZone)
-
Lambda — 가용 영역은 함수에 직접 노출되지 않습니다. 찾으려면 몇 단계를 완료해야 합니다. 이렇게 하려면 요청자의 IP 주소를 반환하는 프라이빗 API 게이트웨이 REST 엔드포인트를 구축해야 합니다. 이렇게 하면 함수에서 사용 중인 탄력적 네트워크 인터페이스에 할당된 사설 IP가 식별됩니다.
-
Lambda
GetFunction
API를 직접적으로 호출하여 함수의 VPC ID를 찾습니다. -
API 게이트웨이 서비스를 직접적으로 호출하여 함수의 IP를 가져옵니다.
-
IP 및 VPC ID를 사용하여 연결된 네트워크 인터페이스를 찾고 가용 영역을 추출합니다.
VPC_ID=$(aws lambda get-function --function-name $ AWS_LAMBDA_FUNCTION_NAME --region $AWS_REGION --output json --query ‘Configuration.VpcConfig.VpcId’) MY_IP=$(curl http://whats-my-private-ip.internal) AZ=$(aws ec2 describe-network-interfaces --filters Name=private-ip-address,Values=$MY_IP Name=vpc-id,Values=$VPC_ID --region $AWS_REGION --output json –query ‘NetworkInterfaces[0].AvailabilityZone’)
-
-