NAT GatewayおよびVPCエンドポイントの判断
AWSでネットワーク構築する際、EC2やFargateなどからAWSサービスにアクセスする際の判断について。
S3, DynamoDB, ECRなどにアクセスするときは以下のいずれかが必要になる。
Public Subnetに配置(パブリックIP付与)
Private Subnet配置+Public SubnetにNATゲートウェイ
Private Subnet配置+対象サービスのVPCエンドポイントを設置
システム要件として「インターネットを介さないこと」となるとPrivate Subnet配置を考えたくなるが、以下の記事より、パブリックIPとAWSサービスの通信はインターネットを通らずAWSのプライベートNWとのこと。
そうなるとPublic Subnet配置したうえでセキュリティグループなどで守る、でも問題ない。
※同じサブネットに他にどういうインスタンスが乗っているかなど状況による
よくある質問 - Amazon VPC | AWS
そのトラフィック、NATゲートウェイを通す必要ありますか?適切な経路で不要なデータ処理料金は削減しましょう | DevelopersIO
AWS内の通信がインターネットを経由しない今、VPC Endpointを利用する意味はあるのか? | フューチャー技術ブログ
通信コスト、構築の手間など考えると
Public配置>VPCエンドポイント>NAT Gateway
NATは可用性を考えると複数AZに配置する必要があり、その場合通信費ではなく本体のランニングコストが台数分だけかかる。
通信料によらない本体コストが約5000円/月・台
NAT ゲートウェイ冗長性に関する通知を受けたけど、どうしたら良いでしょうか? | DevelopersIO
インスタンスやコンテナ自身からのインターネットへの通信がなくAWSサービスにアクセスするだけなら
Publicサブネット配置+セキュリティグループ等が一番安価かつ構築も手軽
ついで、NATゲートウェイよりVPCエンドポイントのほうが高可用性かつ安価