アベイラビリティーゾーン毎に使用できるVPCエンドポイントを調べてみた

2020.04.03

リージョンにはアベイラビリティーゾーン (以下 AZ)が複数ありますが、AZ毎にできることが微妙に違ったりします。VPCエンドポイントもその1つです。今回は東京リージョンの各AZで、VPCエンドポイントの対応状況を調べて見ました。

調べてみる

まず、私のアカウントのアベイラビリティーゾーンのマッピングを確認します。

$ aws ec2 describe-availability-zones --query 'AvailabilityZones[].[ZoneName,ZoneId]' --output text
ap-northeast-1a	apne1-az4
ap-northeast-1c	apne1-az1
ap-northeast-1d	apne1-az2

VPCエンドポイントを一覧表示するコマンド結果を必要な項目に絞ります。

$ aws ec2 describe-vpc-endpoint-services \
    --query 'sort_by(ServiceDetails,&ServiceName)[*].[ServiceName,join(`, `,AvailabilityZones)]' \
    --output table

ap-northeast-1dで対応していないエンドポイントがいくつかありますね。(2020/04/03現在)

-----------------------------------------------------------------------------------------------------------------
|                                          DescribeVpcEndpointServices                                          |
+---------------------------------------------------------+-----------------------------------------------------+
|  aws.sagemaker.ap-northeast-1.notebook                  |  ap-northeast-1a, ap-northeast-1c, ap-northeast-1d  |
|  com.amazonaws.ap-northeast-1.access-analyzer           |  ap-northeast-1a, ap-northeast-1c, ap-northeast-1d  |
|  com.amazonaws.ap-northeast-1.acm-pca                   |  ap-northeast-1a, ap-northeast-1c, ap-northeast-1d  |
|  com.amazonaws.ap-northeast-1.application-autoscaling   |  ap-northeast-1a, ap-northeast-1c, ap-northeast-1d  |
|  com.amazonaws.ap-northeast-1.appmesh-envoy-management  |  ap-northeast-1a, ap-northeast-1c, ap-northeast-1d  |
|  com.amazonaws.ap-northeast-1.appstream.api             |  ap-northeast-1a, ap-northeast-1c, ap-northeast-1d  |
|  com.amazonaws.ap-northeast-1.appstream.streaming       |  ap-northeast-1a, ap-northeast-1c, ap-northeast-1d  |
|  com.amazonaws.ap-northeast-1.athena                    |  ap-northeast-1a, ap-northeast-1c, ap-northeast-1d  |
|  com.amazonaws.ap-northeast-1.autoscaling               |  ap-northeast-1a, ap-northeast-1c, ap-northeast-1d  |
|  com.amazonaws.ap-northeast-1.autoscaling-plans         |  ap-northeast-1a, ap-northeast-1c, ap-northeast-1d  |
|  com.amazonaws.ap-northeast-1.awsconnector              |  ap-northeast-1a, ap-northeast-1c, ap-northeast-1d  |
|  com.amazonaws.ap-northeast-1.cloudformation            |  ap-northeast-1a, ap-northeast-1c, ap-northeast-1d  |
|  com.amazonaws.ap-northeast-1.cloudtrail                |  ap-northeast-1a, ap-northeast-1c, ap-northeast-1d  |
|  com.amazonaws.ap-northeast-1.codebuild                 |  ap-northeast-1a, ap-northeast-1c, ap-northeast-1d  |
|  com.amazonaws.ap-northeast-1.codecommit                |  ap-northeast-1a, ap-northeast-1c, ap-northeast-1d  |
|  com.amazonaws.ap-northeast-1.codepipeline              |  ap-northeast-1a, ap-northeast-1c, ap-northeast-1d  |
|  com.amazonaws.ap-northeast-1.config                    |  ap-northeast-1a, ap-northeast-1c, ap-northeast-1d  |
|  com.amazonaws.ap-northeast-1.datasync                  |  ap-northeast-1a, ap-northeast-1c, ap-northeast-1d  |
|  com.amazonaws.ap-northeast-1.dynamodb                  |  ap-northeast-1a, ap-northeast-1c, ap-northeast-1d  |
|  com.amazonaws.ap-northeast-1.ebs                       |  ap-northeast-1a, ap-northeast-1c, ap-northeast-1d  |
|  com.amazonaws.ap-northeast-1.ec2                       |  ap-northeast-1a, ap-northeast-1c, ap-northeast-1d  |
|  com.amazonaws.ap-northeast-1.ec2messages               |  ap-northeast-1a, ap-northeast-1c, ap-northeast-1d  |
|  com.amazonaws.ap-northeast-1.ecr.api                   |  ap-northeast-1a, ap-northeast-1c, ap-northeast-1d  |
|  com.amazonaws.ap-northeast-1.ecr.dkr                   |  ap-northeast-1a, ap-northeast-1c, ap-northeast-1d  |
|  com.amazonaws.ap-northeast-1.ecs                       |  ap-northeast-1a, ap-northeast-1c, ap-northeast-1d  |
|  com.amazonaws.ap-northeast-1.ecs-agent                 |  ap-northeast-1a, ap-northeast-1c, ap-northeast-1d  |
|  com.amazonaws.ap-northeast-1.ecs-telemetry             |  ap-northeast-1a, ap-northeast-1c, ap-northeast-1d  |
|  com.amazonaws.ap-northeast-1.elastic-inference.runtime |  ap-northeast-1a, ap-northeast-1c                   |
|  com.amazonaws.ap-northeast-1.elasticbeanstalk          |  ap-northeast-1a, ap-northeast-1c, ap-northeast-1d  |
|  com.amazonaws.ap-northeast-1.elasticbeanstalk-health   |  ap-northeast-1a, ap-northeast-1c, ap-northeast-1d  |
|  com.amazonaws.ap-northeast-1.elasticfilesystem         |  ap-northeast-1a, ap-northeast-1c, ap-northeast-1d  |
|  com.amazonaws.ap-northeast-1.elasticfilesystem-fips    |  ap-northeast-1a, ap-northeast-1c, ap-northeast-1d  |
|  com.amazonaws.ap-northeast-1.elasticloadbalancing      |  ap-northeast-1a, ap-northeast-1c                   |
|  com.amazonaws.ap-northeast-1.elasticmapreduce          |  ap-northeast-1a, ap-northeast-1c, ap-northeast-1d  |
|  com.amazonaws.ap-northeast-1.events                    |  ap-northeast-1a, ap-northeast-1c, ap-northeast-1d  |
|  com.amazonaws.ap-northeast-1.execute-api               |  ap-northeast-1a, ap-northeast-1c, ap-northeast-1d  |
|  com.amazonaws.ap-northeast-1.git-codecommit            |  ap-northeast-1a, ap-northeast-1c, ap-northeast-1d  |
|  com.amazonaws.ap-northeast-1.glue                      |  ap-northeast-1a, ap-northeast-1c, ap-northeast-1d  |
|  com.amazonaws.ap-northeast-1.kinesis-firehose          |  ap-northeast-1a, ap-northeast-1c, ap-northeast-1d  |
|  com.amazonaws.ap-northeast-1.kinesis-streams           |  ap-northeast-1a, ap-northeast-1c, ap-northeast-1d  |
|  com.amazonaws.ap-northeast-1.kms                       |  ap-northeast-1a, ap-northeast-1c, ap-northeast-1d  |
|  com.amazonaws.ap-northeast-1.logs                      |  ap-northeast-1a, ap-northeast-1c, ap-northeast-1d  |
|  com.amazonaws.ap-northeast-1.monitoring                |  ap-northeast-1a, ap-northeast-1c, ap-northeast-1d  |
|  com.amazonaws.ap-northeast-1.qldb.session              |  ap-northeast-1a, ap-northeast-1c, ap-northeast-1d  |
|  com.amazonaws.ap-northeast-1.rds-data                  |  ap-northeast-1a, ap-northeast-1c, ap-northeast-1d  |
|  com.amazonaws.ap-northeast-1.rekognition               |  ap-northeast-1a, ap-northeast-1c, ap-northeast-1d  |
|  com.amazonaws.ap-northeast-1.s3                        |  ap-northeast-1a, ap-northeast-1c, ap-northeast-1d  |
|  com.amazonaws.ap-northeast-1.sagemaker.api             |  ap-northeast-1a, ap-northeast-1c, ap-northeast-1d  |
|  com.amazonaws.ap-northeast-1.sagemaker.runtime         |  ap-northeast-1a, ap-northeast-1c, ap-northeast-1d  |
|  com.amazonaws.ap-northeast-1.secretsmanager            |  ap-northeast-1a, ap-northeast-1c, ap-northeast-1d  |
|  com.amazonaws.ap-northeast-1.servicecatalog            |  ap-northeast-1a, ap-northeast-1c, ap-northeast-1d  |
|  com.amazonaws.ap-northeast-1.sns                       |  ap-northeast-1a, ap-northeast-1c, ap-northeast-1d  |
|  com.amazonaws.ap-northeast-1.sqs                       |  ap-northeast-1a, ap-northeast-1c, ap-northeast-1d  |
|  com.amazonaws.ap-northeast-1.ssm                       |  ap-northeast-1a, ap-northeast-1c, ap-northeast-1d  |
|  com.amazonaws.ap-northeast-1.ssmmessages               |  ap-northeast-1a, ap-northeast-1c, ap-northeast-1d  |
|  com.amazonaws.ap-northeast-1.states                    |  ap-northeast-1a, ap-northeast-1c, ap-northeast-1d  |
|  com.amazonaws.ap-northeast-1.storagegateway            |  ap-northeast-1a, ap-northeast-1c, ap-northeast-1d  |
|  com.amazonaws.ap-northeast-1.sts                       |  ap-northeast-1a, ap-northeast-1c, ap-northeast-1d  |
|  com.amazonaws.ap-northeast-1.transfer                  |  ap-northeast-1a, ap-northeast-1c                   |
|  com.amazonaws.ap-northeast-1.transfer.server           |  ap-northeast-1a, ap-northeast-1c                   |
|  com.amazonaws.ap-northeast-1.workspaces                |  ap-northeast-1a, ap-northeast-1c, ap-northeast-1d  |
+---------------------------------------------------------+-----------------------------------------------------+

まとめ

このようにAZでの対応状況が異なるので設計する際はご注意ください。あと、そもそも対応していないVPCエンドポイントは表示されないので、他のリージョンと見比べてみてください。