やりたいこと
- Transit Gateway接続のVPCからDNS解決を設定する方法を記載します。
- 今回の検証は、以下の構成で行っています。テストのため、同一AWS アカウント内に、2つのVPC を作成。各VPC/Subnet に、EC2(Linux) を配置しています。
- Route53のプライベートホストゾーンを作成し、一方のVPC のみ関連付けます。Route 53 Resolver を作成し、Transit Gatewayで接続された他方のVPC からDNS解決を行います。
検証の構成図
Transit Gateway接続のVPCからDNS解決を設定する方法
前提条件
- 前提として、同一AWS アカウント内に、2つのVPC が作成済みです。各VPCの Subnet にEC2(Linux) を配置しており、通信が可能な構成となっています。
Route53のプライベートホストゾーン・レコード作成
- プライベートホストゾーンを作成します。
- 一方のVPC (niikawa-testvpc-1) にホストゾーンを関連付けます。
- プライベートホストゾーン内に、DNSレコードを登録します。
EC2 からDNS解決を確認する (設定前)
- ホストゾーンが関連付けられたVPC (niikawa-testvpc-1) 内のリソースからはDNS解決が成功します。
- ホストゾーンが関連付けられていないVPC (niikawa-testvpc-2) 内のリソースからはDNS解決は出来ません。
Route 53 resolver を設定する
- Route 53 resolver のインバウンドエンドポイントを作成します。
- インバウンドエンドポイントの設定を行います。エンドポイントは、VPC (niikawa-testvpc-1) に作成します。
- インバウンドエンドポイントが作成されました。エンドポイントのIPアドレスを確認します。
VPC のDNS設定を変更する
- DNSクエリを行うEC2 が配置されているVPC (niikawa-testvpc-2) の設定を変更します。
- 先ず、VPC のDHCP オプションセットを作成します。ドメインネームサーバーに、先ほど作成したインバウンドエンドポイントのIPアドレスを指定します。
- 次に、DNS の設定を編集します。
- DNS 解決、DNS ホスト名の設定が有効化になっていることを確認します。
- DHCP オプションセットに、先ほど作成したDHCP オプションセットを選択します。
EC2 からDNS解決を確認する (設定後)
- EC2 のLinux において、systemd-networkd サービスを再起動します。
- /etc/resolv.conf の nameserver にRoute 53 resolver のインバウンドエンドポイントのIPアドレスが設定されたことを確認します。
sudo systemctl restart systemd-networkd
cat /etc/resolv.conf
- Route 53 resolver、DHCP オプションセットを設定後、ホストゾーンが関連付けられていないVPC (niikawa-testvpc-2) 内のリソースからはDNS解決が成功する様になりました!
参考資料
- Route 53 ResolverによるDX環境の名前解決
- やさしい Transit Gateway の構築手順