46690


AWS において、 デフォルトVPCの中のec2のインスタンスからは、普通にインターネットにアクセスできます。

一方、そのような ec2 インスタンスと同じサブネットに対して、 VPC 内 lambda を実行しても、インターネットにアクセスできない様子です。

どうして、同じサブネットなのに、ec2 ではインターネットにアクセスできるのに、 lambda ではアクセスできないのでしょうか。


CC BY-SA 4.0
2018-07-18T06:39:59.457
46688
2018-07-18T08:09:41.677
754
question
aws network amazon-ec2 aws-lambda
vpc の lambda からインターネットにアクセスできないのはなぜ?


  * <https://docs.aws.amazon.com/lambda/latest/dg/vpc.html>
  * <https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Internet_Gateway.html>

上記ドキュメントより:

  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 を動かす。


CC BY-SA 4.0
2018-07-18T08:09:41.677
46690
2018-07-18T08:09:41.677
754
46688
answer