問題
AWS lambdaをvpc内に設置して外部通信しようとしたらタイムアウトした
public subnet (Internet GW付き)
原因
vpc lambdaにはpublic ipが割り当てられない
(public subnetがauto-assignなpublic IPでも!)
えー。
AWS Lambda は、指定された VPC 情報を使用して、Lambda 関数から VPC リソースにアクセスするための ENI をセットアップします。各 ENI には、指定されたサブネットの IP アドレス範囲からプライベート IP アドレスが割り当てられますが、パブリック IP アドレスは割り当てられません。
対策
private subnetに設置し、nat-gw経由で出て行くようにする
Lambda 関数でインターネットアクセスが必要な場合は、パブリックサブネットまたはインターネットに接続していないプライベートサブネットに添付しないでください。代わりに、NAT インスタンスまたは Amazon VPC NAT ゲートウェイを介して、インターネットにアクセスしているプライベートサブネットにのみ添付してください。