EC2はプライベートIPv4だけを持ち、IPv4の外部HTTPS APIへ接続する。VPCにはIGWをアタッチ済みで、同じAZのパブリックサブネットにElastic IP付きのpublic NAT GatewayがAvailableになっている。
パブリックサブネットの0.0.0.0/0はIGWを向く。DNS、EC2のHTTPS送信許可、両サブネットのNACLと戻り通信、API側の許可は確認済みで、プライベートサブネットのデフォルトルートだけが未設定である。
EC2を直接公開せず、既存構成で外部APIへ接続するための変更はどれか。
EC2のprivate IPv4通信を既存public NATへ送り、Elastic IPとIGW経路でIPv4インターネットに接続する。
詳細解説
private NATは別VPCやオンプレミス等への用途である。private NATからIGWへ送った通信は破棄されるため、本問のインターネット接続の代わりにならない。
EC2のIPv4送信をpublic NATへ送り、そのサブネットのIGW経路とElastic IPを使ってインターネットへ到達する。EC2自身のpublic IPv4を追加せずに接続できる。
egress-only internet gatewayはIPv6用である。本問のIPv4通信に対するpublic NATの経路を置き換えない。
IPv4でIGWを直接使うEC2にはpublic IPv4またはElastic IPが必要である。本問のEC2はprivate IPv4だけなので、ルートの変更だけでは直接インターネット接続できない。
公式資料で確認する
以下の項目を公式資料の記述と照合して確認します。
承認された検証VPCでEC2サブネットのルートテーブル関連付けと0.0.0.0/0のNAT IDを確認する。NATのpublic種別・Available・Elastic IP、public側のIGWルートを確認し、EC2から指定HTTPS APIへ接続して応答とAPI側の送信元IPを照合する。
参考にした公式資料
確認できる内容
private IPv4だけのEC2からAPIの応答を受け取り、APIが観測する送信元IPv4はNATのElastic IPになる。ルート設定だけでDNSや許可まで成立したとは扱わず、NATへpingできることを成功条件にしない。
理解のポイント
- public NAT Gateway
- Elastic IP
- Internet Gateway
確認時の注意
- 確認環境: AWS公式SOA-C03試験ガイドとAWS公式ドキュメントの確認
- AWS公式SOA-C03試験ガイドと各サービスの公式ドキュメントを確認する。
基礎のおさらい
二段階のルートと変換を確認する
本問のAZ単位のpublic NATはElastic IP付きでpublicサブネットに配置されている。EC2側の0.0.0.0/0をNATへ送り、public側の0.0.0.0/0はVPCにアタッチされたIGWへ送る。インターネットでは送信元にNATのElastic IPが使われる。ルートテーブルが対象サブネットに関連付いていることも確認する。
IPv4とNATの接続種別を区別する
private IPv4だけのEC2をIGWへ直接向けても、IPv4インターネットへ直接接続するためのpublicアドレスがない。private NATからIGWへの通信は破棄され、egress-only internet gatewayはIPv6用である。本問は既存のAZ単位public NATを使うIPv4経路であり、IPv6や別のNAT配置方式の要件を混ぜない。
実応答と他の通信前提を確認する
NATは内部から開始した通信の戻りを変換するが、DNS、EC2のSG、両サブネットのNACL、外部API側の許可も必要である。本問ではそれらを確認済みとし、ルート修正後に実HTTPS応答と送信元IPを確かめる。NAT Gatewayはpingに応答しないため、NATのping結果だけを接続成功・失敗の判定に使わない。