VPCインターフェイスエンドポイントはAvailability Zoneによっては作成できない

2021.03.03

VPCインターフェイスエンドポイントはAvailability Zoneによってはサポートされておらず、作成できません。東京リージョンでcom.amazonaws.ap-northeast-1.transferを作成しようとすると、apne1-az2では「このアベイラビリティーゾーンではサポートされていないサービスです」と表示されます。

AWS CLIでcom.amazonaws.ap-northeast-1.transferを作成できるAvailability Zoneを確認します。ap-northeast-1aとap-northeast-1cで作成できることがわかります。

$ aws ec2 describe-vpc-endpoint-services  --service-names com.amazonaws.ap-northeast-1.transfer
{
    "ServiceDetails": [
        {
            "ServiceName": "com.amazonaws.ap-northeast-1.transfer",
            "ServiceId": "vpce-svc-0084280811b9bda93",
            "ServiceType": [
                {
                    "ServiceType": "Interface"
                }
            ],
            "AvailabilityZones": [
                "ap-northeast-1a",
                "ap-northeast-1c"
            ],
(略)
}

執筆時点の東京リージョンでのAvailability Zoneの対応状況は以下の通りでした。ap-northeast-1dでは作成できないエンドポイントがいくつかあることがわかります。

$ aws ec2 describe-vpc-endpoint-services \
     --query 'sort_by(ServiceDetails,&ServiceName)[*].[ServiceName,join(`, `,AvailabilityZones)]' \
     --output table
----------------------------------------------------------------------------------------------------------------------
|                                             DescribeVpcEndpointServices                                            |
+--------------------------------------------------------------+-----------------------------------------------------+
|  aws.sagemaker.ap-northeast-1.notebook                       |  ap-northeast-1a, ap-northeast-1c, ap-northeast-1d  |
|  aws.sagemaker.ap-northeast-1.studio                         |  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.airflow.api                    |  ap-northeast-1a, ap-northeast-1c, ap-northeast-1d  |
|  com.amazonaws.ap-northeast-1.airflow.env                    |  ap-northeast-1a, ap-northeast-1c, ap-northeast-1d  |
|  com.amazonaws.ap-northeast-1.airflow.ops                    |  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.auditmanager                   |  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.cassandra                      |  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.cloudhsmv2                     |  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.codeartifact.api               |  ap-northeast-1a, ap-northeast-1c, ap-northeast-1d  |
|  com.amazonaws.ap-northeast-1.codeartifact.repositories      |  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.codedeploy                     |  ap-northeast-1a, ap-northeast-1c, ap-northeast-1d  |
|  com.amazonaws.ap-northeast-1.codedeploy-commands-secure     |  ap-northeast-1a, ap-northeast-1c, ap-northeast-1d  |
|  com.amazonaws.ap-northeast-1.codeguru-profiler              |  ap-northeast-1a, ap-northeast-1c, ap-northeast-1d  |
|  com.amazonaws.ap-northeast-1.codeguru-reviewer              |  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.codestar-connections.api       |  ap-northeast-1a, ap-northeast-1c, ap-northeast-1d  |
|  com.amazonaws.ap-northeast-1.comprehend                     |  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.databrew                       |  ap-northeast-1a, ap-northeast-1c, ap-northeast-1d  |
|  com.amazonaws.ap-northeast-1.dataexchange                   |  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.dms                            |  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, ap-northeast-1d  |
|  com.amazonaws.ap-northeast-1.elasticmapreduce               |  ap-northeast-1a, ap-northeast-1c, ap-northeast-1d  |
|  com.amazonaws.ap-northeast-1.email-smtp                     |  ap-northeast-1a, ap-northeast-1c, ap-northeast-1d  |
|  com.amazonaws.ap-northeast-1.emr-containers                 |  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.imagebuilder                   |  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.lambda                         |  ap-northeast-1a, ap-northeast-1c                   |
|  com.amazonaws.ap-northeast-1.license-manager                |  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.lookoutvision                  |  ap-northeast-1a, ap-northeast-1c, ap-northeast-1d  |
|  com.amazonaws.ap-northeast-1.macie2                         |  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                            |  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.redshift                       |  ap-northeast-1a, ap-northeast-1c, ap-northeast-1d  |
|  com.amazonaws.ap-northeast-1.redshift-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.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.featurestore-runtime |  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.synthetics                     |  ap-northeast-1a, ap-northeast-1c, ap-northeast-1d  |
|  com.amazonaws.ap-northeast-1.transcribe                     |  ap-northeast-1a, ap-northeast-1c, ap-northeast-1d  |
|  com.amazonaws.ap-northeast-1.transcribestreaming            |  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  |
+--------------------------------------------------------------+-----------------------------------------------------+
(END)

ap-northeast-1aや1c,1dのマッピングはAWSアカウントごとに異なります。私のアカウントのap-northeast-1aが他のAWSアカウントのap-northeast-1aと同じ場所ではないことがあります。AZ IDは全てのAWSアカウントで同じ場所を示します。私のアカウントのap-northeast-1dはAZ ID"apne1-az2"でした。

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 \
>      --region ap-northeast-3 \
>      --query 'sort_by(ServiceDetails,&ServiceName)[*].[ServiceName,join(`, `,AvailabilityZones)]' \
>      --output table
------------------------------------------------------------------------------------------------------------------
|                                           DescribeVpcEndpointServices                                          |
+----------------------------------------------------------+-----------------------------------------------------+
|  com.amazonaws.ap-northeast-3.application-autoscaling    |  ap-northeast-3a                                    |
|  com.amazonaws.ap-northeast-3.autoscaling                |  ap-northeast-3a                                    |
|  com.amazonaws.ap-northeast-3.cloudformation             |  ap-northeast-3a                                    |
|  com.amazonaws.ap-northeast-3.cloudtrail                 |  ap-northeast-3a                                    |
|  com.amazonaws.ap-northeast-3.codedeploy-commands-secure |  ap-northeast-3a, ap-northeast-3b, ap-northeast-3c  |
|  com.amazonaws.ap-northeast-3.dms                        |  ap-northeast-3a, ap-northeast-3b, ap-northeast-3c  |
|  com.amazonaws.ap-northeast-3.dynamodb                   |  ap-northeast-3a, ap-northeast-3b, ap-northeast-3c  |
|  com.amazonaws.ap-northeast-3.ebs                        |  ap-northeast-3a, ap-northeast-3b                   |
|  com.amazonaws.ap-northeast-3.ec2messages                |  ap-northeast-3a                                    |
|  com.amazonaws.ap-northeast-3.elasticbeanstalk           |  ap-northeast-3a                                    |
|  com.amazonaws.ap-northeast-3.elasticbeanstalk-health    |  ap-northeast-3a                                    |
|  com.amazonaws.ap-northeast-3.elasticloadbalancing       |  ap-northeast-3a, ap-northeast-3b, ap-northeast-3c  |
|  com.amazonaws.ap-northeast-3.glue                       |  ap-northeast-3a, ap-northeast-3b, ap-northeast-3c  |
|  com.amazonaws.ap-northeast-3.kinesis-firehose           |  ap-northeast-3a, ap-northeast-3b, ap-northeast-3c  |
|  com.amazonaws.ap-northeast-3.kinesis-streams            |  ap-northeast-3a, ap-northeast-3b, ap-northeast-3c  |
|  com.amazonaws.ap-northeast-3.kms                        |  ap-northeast-3a, ap-northeast-3b, ap-northeast-3c  |
|  com.amazonaws.ap-northeast-3.logs                       |  ap-northeast-3a                                    |
|  com.amazonaws.ap-northeast-3.monitoring                 |  ap-northeast-3a, ap-northeast-3b, ap-northeast-3c  |
|  com.amazonaws.ap-northeast-3.s3                         |  ap-northeast-3a, ap-northeast-3b, ap-northeast-3c  |
|  com.amazonaws.ap-northeast-3.s3                         |  ap-northeast-3a, ap-northeast-3b, ap-northeast-3c  |
|  com.amazonaws.ap-northeast-3.secretsmanager             |  ap-northeast-3a, ap-northeast-3b                   |
|  com.amazonaws.ap-northeast-3.sqs                        |  ap-northeast-3a, ap-northeast-3b, ap-northeast-3c  |
|  com.amazonaws.ap-northeast-3.ssm                        |  ap-northeast-3a                                    |
|  com.amazonaws.ap-northeast-3.ssmmessages                |  ap-northeast-3a                                    |
|  com.amazonaws.ap-northeast-3.sts                        |  ap-northeast-3a                                    |
+----------------------------------------------------------+-----------------------------------------------------+

おわりに

VPCインターフェイスエンドポイントはAvailability Zoneによっては作成できないことを紹介しました。オンプレミスからDirect Connectを使ってAWSサービスに接続するケースやプライベートサブネットからエンドポイントに接続するケースでは、どのAvailability Zoneを使うのか考えたほうが良いと思います。

参考