やりたいこと

  • 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解決が成功する様になりました!

 

参考資料