質問: AWS において、 デフォルトVPCの中のec2のインスタンスからは、普通にインターネットにアクセスできます。 一方、そのような ec2 インスタンスと同じサブネットに対して、 VPC 内 lambda を実行しても、インターネットにアクセスできない様子です。 どうして、同じサブネットなのに、ec2 ではインターネットにアクセスできるのに、 lambda ではアクセスできないのでしょうか。
回答: * * 上記ドキュメントより: 1. 普通の ec2 インスタンスが、 InternetGateway で直にインターネットに接続できるのは、以下の条件を見たすとき。 * EIP を持っている。 * (Private IP <-> EIP の NAT 変換を行うのは Internet Gateway.) 2. VPC の Lambda は、対象のサブネットに ENI を作って、 Private IP アドレスのみを持つ。 * なので、 EIP を持たず、 Internet Gateway を経由できない。 対応策は: 1. NAT gateway をパブリックサブネットに設置する。パブリックサブネットとは、 デフォルトの routing が InternetGateway につながっているサブネット。 2. ひとつサブネット(プライベートサブネットと呼ばれたりする)を作って、ルーティングのデフォルトを 1 の NAT gateway に設定する。 3. 2 のサブネットで lambda を動かす。