はじめに
どーも!shihopowerです!
SAP対策の模擬問題を解いていると、こんな問題に出会いました。
「VPCにアタッチされたLambda関数が外部APIにアクセスできるようにするには?」
選択肢:インターネットゲートウェイ / NATゲートウェイ / Egress-onlyゲートウェイ…
選択肢を見たとき、ふと疑問が浮かびました。
「あれ、Lambdaってパブリックサブネットにあるのかプライベートサブネットにあるのか、問題文に書いていないけど…どうやって絞るの?」
そもそもLambdaはデフォルトでどこに配置されるのか、VPCにアタッチするとどう変わるのか——そこを整理しないと選択肢の意味すら判断できないと気づきました。本記事ではその疑問を掘り下げてみます。
目次
- Lambdaのデフォルトの配置場所
- VPCにアタッチするとどうなるか
- VPCアタッチが必要なケース・不要なケース
- まとめ
1. Lambdaのデフォルトの配置場所
まず大前提として、LambdaはVPCにアタッチしなくても動きます。
デフォルトでは、LambdaはAWSが管理する共有ネットワーク環境上で実行されます。この環境はユーザーが作成したVPCとは別の場所にあり、いわば「VPCの外」にいるイメージです。
Lambda(AWS管理の共有環境)
↓
インターネット ← 直接アクセスできる ✅
↓
S3 / DynamoDB など ← 直接アクセスできる ✅
↓
RDS(VPCのプライベートサブネット内) ← アクセスできない ❌
デフォルト構成のポイント
| 接続先 | アクセス可否 |
|---|---|
| インターネット(外部API等) | ✅ 可能 |
| S3、DynamoDB(パブリックエンドポイント) | ✅ 可能 |
| RDS、ElastiCache(プライベートサブネット内) | ❌ 不可 |
ただし、送信元IPはAWSのIPプールから動的に割り当てられるため、固定することができません。これが後述の問題で重要になってきます。
2. VPCにアタッチするとどうなるか
LambdaをVPCにアタッチすると、Lambda関数はVPC内のプライベートサブネット上に配置されたENI(Elastic Network Interface)経由でトラフィックを送受信するようになります。
Lambda(プライベートサブネット内・ENI経由)
↓
RDS / ElastiCache など ← アクセスできる ✅
↓
インターネット ← 直接アクセスできない ❌
(NATゲートウェイが必要)
VPCアタッチ後のポイント
VPCにアタッチすると、LambdaはVPC内のプライベートリソースにアクセスできるようになります。一方で、インターネットへの直接の出口がなくなります。
インターネットや外部APIに接続するには、パブリックサブネットにNATゲートウェイを配置し、プライベートサブネットからのトラフィックをNATゲートウェイ経由で外に出す構成が必要です。
Lambda(プライベートサブネット)
↓
NATゲートウェイ(パブリックサブネット)← Elastic IPを付与
↓
インターネットゲートウェイ
↓
外部API / インターネット ✅
このとき外部から見た送信元IPは、NATゲートウェイに付与したElastic IP(固定) になります。
3. VPCアタッチが必要なケース・不要なケース
ここまでの内容を整理すると、VPCアタッチが必要かどうかの判断基準は明確です。
VPCアタッチが必要なとき
- RDS、ElastiCache、プライベートサブネット上のEC2など、VPC内のプライベートリソースにアクセスしたいとき
- セキュリティグループやネットワークACLによるネットワークレベルのアクセス制御が必要なとき
VPCアタッチが不要なとき(デフォルトのままでよいとき)
- S3やDynamoDBなど、パブリックエンドポイントのAWSサービスだけを使うとき
- 外部APIに接続するだけでよく、VPC内のリソースを使わないとき
VPCアタッチは便利ですが、設定が増えます。VPC内のプライベートリソースを使わないなら、シンプルなデフォルト構成のほうが管理が楽です。
4. まとめ
今回の学びをまとめます。
| 状態 | 配置場所 | インターネット | VPC内リソース | 送信元IP |
|---|---|---|---|---|
| VPCなし(デフォルト) | AWS共有環境 | ✅ 直接接続可 | ❌ 不可 | 動的(固定不可) |
| VPCあり(NATなし) | プライベートサブネット | ❌ 不可 | ✅ 可 | — |
| VPCあり+NATゲートウェイ | プライベートサブネット | ✅ 可 | ✅ 可 | 固定(Elastic IP) |
SAP対策でネットワーク系の問題を解くときのコツとして、「LambdaがVPCにアタッチされている=プライベートサブネット配置」 という前提を押さえておくと、選択肢をスッと絞れるようになります。
また、「固定IPが必要」「外部サービスへのアクセスが必要」という条件が重なったときは、NAT Gateway+Elastic IP の組み合わせを思い浮かべてください。
最後まで読んでいただきありがとうございました!