AWS認定資格 WEB問題集&徹底解説

CloudOpsエンジニア -アソシエイト

正解 D問題
要復習(もう一度解きたい問題) 1 2 3 4
合格に向けて、もっと深く学習する
豊富な問題と詳細なAWSサービス解説を、24時間無料でお試しいただけます
プレミアム会員機能を無料で試す ❯
問題文と選択肢
ある企業において、AWS Lambda 関数がこの企業のアカウントの VPC 内のリソースにアクセスできるようにする必要があります。また、この Lambda 関数は、インターネット経由でのみアクセス可能なサードパーティ製 API にアクセスする必要があります。
これらの要件を満たすには、どうすればよいですか。
  • Elastic IP アドレスを Lambda 関数にアタッチする。VPC のインターネットゲートウェイへのルートを構成する。
  • Lambda 関数を、VPC の仮想プライベートゲートウェイへのルートを持つプライベートサブネットに接続する。
  • Lambda 関数を、VPC のインターネットゲートウェイへのルートを持つパブリックサブネットに接続する。
  • Lambda 関数を、VPC のパブリックサブネット内の NAT ゲートウェイへのルートを持つプライベートサブネットに接続する。
解説 頻出度★★★★★
この問題は、「VPC 内リソースへのアクセス × インターネット上の外部 API へのアクセス」を両立させる要件で、VPC に接続した Lambda はパブリック IP を持てず、NAT ゲートウェイ経由でしか外部に出られないという原則を理解しているかがポイントです。

A. Elastic IP アドレスを Lambda 関数にアタッチする。VPC のインターネットゲートウェイへのルートを構成する。

Lambda 関数に Elastic IP アドレスを直接アタッチすることはできません。Lambda が VPC 接続時に作成する ENI は AWS が管理し、パブリック IP は割り当てられません
そもそも存在しない操作を前提とした選択肢であり、実装不可能です。

B. Lambda 関数を、VPC の仮想プライベートゲートウェイへのルートを持つプライベートサブネットに接続する。

仮想プライベートゲートウェイ(VGW)は VPN / Direct Connect でオンプレミス環境と接続するためのゲートウェイです。
VPC 内リソースへのアクセスは満たせますが、インターネットへの出口にはならないため、インターネット経由でのみ到達できるサードパーティ API を呼び出せず、要件を半分しか満たしません。

C. Lambda 関数を、VPC のインターネットゲートウェイへのルートを持つパブリックサブネットに接続する。

直感に反しますが、VPC 接続した Lambda をパブリックサブネットに置いてもインターネットには出られません。Lambda の ENI にはパブリック IP(や Elastic IP)が付与されないため、インターネットゲートウェイへのルートがあっても送信元が戻りの通信を受け取れないからです。
インターネットゲートウェイは「パブリック IP を持つリソース」のための出口であり、Lambda には NAT が必須です。この問題の最大のひっかけです。

正解

D. Lambda 関数を、VPC のパブリックサブネット内の NAT ゲートウェイへのルートを持つプライベートサブネットに接続する。

Lambda 関数をプライベートサブネットに接続すれば ENI 経由で VPC 内リソース(RDS 等)にアクセスでき、そのサブネットのルートテーブルで 0.0.0.0/0 をパブリックサブネット内の NAT ゲートウェイに向けることで、NAT のパブリック IP を使ってサードパーティ API にもアウトバウンド通信できます。
「VPC 内リソース」と「インターネット」の両方の要件を同時に満たす唯一の構成であり、これが正解です。

構成図

AWS Lambda(VPC 接続・プライベートサブネットの ENI)
   ├──────────────▶ VPC 内リソース(RDS / ElastiCache 等)
   └─ 0.0.0.0/0 ─▶ NAT ゲートウェイ(パブリックサブネット)
                      └─▶ インターネットゲートウェイ ─▶ サードパーティ API
これだけ覚える(記憶フック)
VPC Lambda は必ずプライベートサブネット + NAT。パブリックサブネットに置いてもパブリック IP は付かず、外に出られない。
正解への思考ルート 問題文から要件を抽出し、選択肢の適否を判断するのがポイントです。
要件 判断ポイント
Lambda から VPC 内のリソースにアクセスしたい Lambda を VPC のサブネットに接続(ENI 作成)する必要がある
→選択肢(B・C・D)は候補
インターネット経由でのみアクセス可能な外部 API を呼びたい VPC 接続した Lambda の ENI にはパブリック IP が付かないため、外部へ出るには NAT ゲートウェイが必須
→選択肢(C)を消す
出口が VPN / Direct Connect ではなくインターネット 仮想プライベートゲートウェイはオンプレミス接続用で、インターネットの出口にならない
→選択肢(B)を消す
Lambda 自体に IP を割り当てられるか Lambda に Elastic IP を直接アタッチする機能は存在しない
→選択肢(A)を消す
2 つの要件を同時に満たす構成 プライベートサブネットの Lambda + パブリックサブネットの NAT ゲートウェイが定石
→選択肢(D)が正解
ひっかけポイント
  • 「インターネットに出たいのだからパブリックサブネットへ」は最も引っかかりやすい誤りVPC Lambda の ENI にはパブリック IP が付かないため、IGW があっても通信は成立しない
  • 選択肢 B の仮想プライベートゲートウェイは「プライベート」の語感で安全に見えるが、用途は VPN / Direct Connect。インターネットの出口という要件に無関係
  • Elastic IP は EC2 / NAT ゲートウェイ / NLB に付けるもので、Lambda 関数にはアタッチできない。存在しない操作を選ばせる典型パターン
  • 「Lambda を VPC に入れると VPC 外の AWS サービス(S3・DynamoDB 等)にも出られなくなる」点も頻出。NAT か VPC エンドポイントのどちらかが必要になる
出題バリエーション 同じ知識が本番では条件を変えて出題されます。
問題文がこう変わったら 正解はこう変わる
「VPC 内から Amazon S3 / DynamoDB にアクセスしたい(外部 API は不要)」 NAT ではなく ゲートウェイ型 VPC エンドポイントが正解軸に(データ転送料も抑えられる)。
「NAT ゲートウェイのデータ処理料金を削減したい」 対象が AWS サービスなら VPC エンドポイント(PrivateLink)への置き換えが正解に。
「Lambda が VPC 内リソースにアクセスする必要がない そもそも VPC 接続しないのが正解。Lambda はデフォルトで AWS 管理の NW からインターネットに出られる。
「外部 API 側で送信元 IP をホワイトリスト登録したい」 NAT ゲートウェイの Elastic IP(固定 IP)を送信元として申告する構成が問われる。
関連サービスの解説 Amazon VPC
AWS Lambda
+ 質問 / コメント
解答・解説に疑問がある場合や、よりよい解説がある場合など、お気軽にコメントください。ただし、短文コメントは表示されません。また、中傷などコメントの内容によっては、会員機能を停止させて頂きます。教え学び合える場になれば嬉しいです。(コメント投稿にはログインが必要です)
正答率 70%
No.4 解説
ある企業において、AWS Lambda 関数がこの企業のアカウントの VPC 内のリソースにアクセスできるようにする必要があります。また、この Lambda 関数は、インターネット経由でのみアクセス可能なサードパーティ製 API にアクセスする必要があります。
これらの要件を満たすには、どうすればよいですか。
  • Elastic IP アドレスを Lambda 関数にアタッチする。VPC のインターネットゲートウェイへのルートを構成する。
  • Lambda 関数を、VPC の仮想プライベートゲートウェイへのルートを持つプライベートサブネットに接続する。
  • Lambda 関数を、VPC のインターネットゲートウェイへのルートを持つパブリックサブネットに接続する。
  • Lambda 関数を、VPC のパブリックサブネット内の NAT ゲートウェイへのルートを持つプライベートサブネットに接続する。

(会員限定)当問題の評価をお願いします。改善に活用します。