AWSのインターフェース型VPCエンドポイントの注意点
注意点
インターフェース型VPCエンドポイントを作成する際に配置するサブネットを複数選択できるのですが、VPCエンドポイント経由で通信したいサブネットを全部紐付けて、
terraform apply
したら下記のようなエラーが出てしまいました。
creating EC2 VPC Endpoint (com.amazonaws.ap-northeast-1.ecr.dkr): DuplicateSubnetsInSameZone: Found another VPC endpoint subnet in the availability zone of subnet-hoge. VPC endpoint subnets should be in different availability zones supported by the VPC endpoint service.
引用元: インターフェイス VPC エンドポイント (AWS PrivateLink) - Amazon Virtual Private Cloud
1AZにつき1つのサブネットしか紐付けられないようです。
対応
各AZにつき1つのサブネットを代表として選び、制約を満たす必要があります。 エンドポイントのプライベートDNSにルーティング可能であればどこのサブネットにVPCエンドポイントを作成しても動作するようです。 実際に検証してみましたが、動作しました。
構成としては、zennで会川さんが紹介しているようなVPCエンドポイント用のサブネットを作成するのが1番シンプルだと思います。
引用元: 同じAZ内の複数subnetからECR PrivateLinkを利用する方法