同一アカウント・リージョンのVPC AとBは、重複しないIPv4 CIDRを持ち、activeなVPC peeringで接続されている。両VPCのenableDnsSupportとenableDnsHostnamesは有効で、対象EC2には公開IPv4 DNS名がある。
EC2の公開IPv4 DNS名を相互にプライベートIPv4へ解決し、ピアリング経由で通信したい。SG・NACLは必要な通信を許可済みだが、ピアリングのDNS解決オプションと相手CIDRへの経路は未設定。
必要な設定を2つ選べ。
相互のピアリングDNS解決を有効にし、両側に相手CIDRへの経路を設定する。プライベートホストゾーンの共有は別の設定になる。
詳細解説
相手側にも戻りの経路が必要になる。DNS応答がプライベートIPになっても、片側の経路だけで相互通信の条件は満たさない。
プライベートIPv4の名前解決とIP通信の経路は別に設定する。往路だけでなく戻りの経路も必要で、DNS解決オプションはルートを自動追加しない。
この機能はEC2の公開IPv4 DNS名の解決先を変える。任意のプライベートホストゾーンを自動関連付けする機能ではなく、その名前空間を共有するには別途VPC関連付け等を設計する。
この相互通信では両方向のDNS解決を許可する。EC2の公開IPv4 DNS名への問い合わせが、相手VPCからプライベートIPv4を返すようになる。VPCのDNS属性を有効にするだけではピアリングのDNS解決は有効にならない。
VPCのDNS属性は前提条件だが、すでに有効である。この機能にはピアリング自体のDNS resolution設定も必要であり、属性の再確認だけでは公開名の応答先を変えられない。
公式資料で確認する
以下の項目を公式資料の記述と照合して確認します。
両方向からEC2の公開IPv4 DNS名を照会し、プライベートIPv4への解決とピアリング経由のアプリ通信を確認する。
参考にした公式資料
確認できる内容
公開IPv4 DNS名が相手側からプライベートIPv4へ解決され、設定済みの往復ルートでアプリ通信が成功する。
理解のポイント
- VPC peering DNS
- ルートテーブル
- プライベートIP
確認時の注意
- 確認環境: AWS公式SOA-C03試験ガイドとAWS公式ドキュメントの確認
- AWS公式SOA-C03試験ガイドと各サービスの公式ドキュメントを確認する。
基礎のおさらい
EC2の公開IPv4 DNS名が対象
activeなピアリングと、両VPCのenableDnsSupport・enableDnsHostnamesが前提。この相互通信ではrequester・accepterの両側でallowDnsResolutionFromRemoteVpcを有効にする。EC2の公開IPv4 DNS名が相手側からプライベートIPv4へ解決される。任意の内部DNS名を共有する一般的なDNS転送機能と混同しない。
名前解決と往復の経路を分ける
対象サブネットのルートテーブルに、相手CIDRへのpcxターゲットの経路を両側で追加する。DNS設定はルートを自動追加しない。名前が解決できても通信できるとは限らず、往復のルート・SG・NACL・アプリの待ち受けを確認する。本問ではSGとNACLは設定済み。
プライベートホストゾーンは別途関連付ける
Route 53プライベートホストゾーンの任意のレコードを別VPCで解決するには、必要なVPCとの関連付けなどを設計する。VPCピアリングDNSを有効にするだけではゾーンは自動共有されず、ピアリングも推移的な接続にはならない。