NAT GatewayおよびVPCエンドポイントの判断
AWSでネットワーク構築する際、EC2やFargateなどからAWSサービスにアクセスする際の判断について。 S3, DynamoDB, ECRなどにアクセスするときは以下のいずれかが必要になる。
Public Subnetに配置(パブリックIP付与)
システム要件として「インターネットを介さないこと」となるとPrivate Subnet配置を考えたくなるが、以下の記事より、パブリックIPとAWSサービスの通信はインターネットを通らずAWSのプライベートNWとのこと。
そうなるとPublic Subnet配置したうえでセキュリティグループなどで守る、でも問題ない。
※同じサブネットに他にどういうインスタンスが乗っているかなど状況による
通信コスト、構築の手間など考えると
Public配置>VPCエンドポイント>NAT Gateway
NATは可用性を考えると複数AZに配置する必要があり、その場合通信費ではなく本体のランニングコストが台数分だけかかる。
通信料によらない本体コストが約5000円/月・台
インスタンスやコンテナ自身からのインターネットへの通信がなくAWSサービスにアクセスするだけなら
Publicサブネット配置+セキュリティグループ等が一番安価かつ構築も手軽
ついで、NATゲートウェイよりVPCエンドポイントのほうが高可用性かつ安価