0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【AWS Lambda】Lambdaをパブリックサブネットに配置するとインターネットと通信できるの?

0
Posted at

はじめに

AWS Lambdaを使用する際、「インターネットなどの外部と通信する」ためにどの様な設定が必要なのかをご存じでしょうか。

今回私は、Lambda関数からAmazon Location Serviceへインターネット経由でAPIコールしたい場面に遭遇し、そのネットワーク構成について調べてみました。

結果として、「プライベートサブネットにLambdaを配置し、パブリックサブネットのNAT Gateway経由でインターネットアクセスできる構成にしました。

しかし、「パブリックサブネットにLambdaを直接配置すれば、インターネットゲートウェイ(IGW)経由でアクセスできるのでは?」と疑問が残り、本記事に調べた結果をまとめました。

スクリーンショット 2026-03-05 151519.png

Lambdaのインターネットアクセスの基本

・ デフォルト設定

LambdaをVPC未指定(デフォルト設定)で作成すると、AWS管理のVPC上で実行されます。
この場合、特別な設定をすることなく、Amazon Location Serviceや外部APIとインターネット経由で通信可能です。

理由としては、AWSが管理しているネットワーク環境には、直接インターネットアクセスできるルーティングが設定されているからです。

・ 意図したVPCにアタッチ

Lambdaをユーザが作成したVPCのサブネットに配置すると、ネットワーク構成の影響を受けます。
ここで生まれる疑問としては、「パブリックサブネットにLambdaを配置すれば、インターネット通信が可能になるのでは?」という点です。

結論、パブリックサブネットにLambdaを配置しても、それだけではインターネット通信できません。

理由としては、Lambda関数のENI(Elastic Network Interface)にパブリックIPが割り当てられないためです。
インターネットゲートウェイ経由で通信するためには、リソースのENIにパブリックIPが必要ですが、LambdaはこのパブリックIPを持ちません。

したがって、パブリックサブネット + インターネットゲートウェイだけの構成では、Lambdaからインターネット通信ができません。
スクリーンショット 2026-03-05 151105.png

Lambdaからインターネット通信する方法

Lambda関数でインターネット通信が必要な場合の構成パターンは次の通りです。

● デフォルト設定(VPC未指定)
 ⇒AWS管理のVPCで自動的にインターネットアクセス
● VPC内に配置
 ⇒プライベートサブネットにLambdaを配置し、パブリックサブネットに配置したNAT Gateway経由でインターネットアクセス

・デフォルト設定でよいのでは?

ここで1つ疑問が発生します。
それは、「インターネット通信するためであればデフォルト設定でよいのでは?」という点です。

結論としては、インターネット通信だけを目的とするのであれば、デフォルト設定で十分です。

しかし、VPC内のサービス(RDSやEC2など)や、S3に対してVPCエンドポイントを利用する場合などにおいては、LambdaをVPCへアタッチする必要があります。

この場合において、プライベートサブネット + NAT Gatewayの構成にすることで、VPC内のアクセスとインターネット通信の両方を可能にします。

まとめ

今回は、Lambda関数におけるインターネット通信についてまとめてみました。

Lambdaをインターネットアクセス可能にするためにはデフォルト設定かプライベートサブネット + NAT Gatewayを使用する必要があるとわかりました。

本記事が、皆様の理解の助けになれば幸いです。

お読みいただきありがとうございました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?