翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
付録 A — アベイラビリティーゾーン ID の取得
AWS .NET SDK (および JavaScript などの他の SDK) を使用しているか、Amazon EC2 インスタンスでシステム (Amazon ECS や EKS を含む) を実行している場合は、アベイラビリティーゾーン ID を直接取得できます。
-
AWS .NET SDK
Amazon.Util.EC2InstanceMetadata.GetData(“/placement/availability-zone-id”)
-
EC インスタンスメタデータサービス
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’
上の例で使用するアベイラビリティーゾーン名を検索する以下の例は、AWS CLI とパッケージ jq
を使用して bash で記述しています。これらは、ワークロードで使用するプログラミング言語に変換する必要があります。 -
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 エンドポイントを構築する必要があります。これにより、関数が使用している Elastic Network Interface に割り当てられたプライベート IP が識別されます。
-
Lambda
GetFunction
API を呼び出して、関数の VPC ID を見つけます。 -
API Gateway サービスを呼び出して、関数の 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’)
-
-