Route53 のプライベートホストゾーンを使って同一アカウント内の別VPCのサーバーを名前解決してみた

夏なので さらに検証 してみたよ
2020.08.05

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

コンサル部@大阪オフィスのYui(@MayForBlue)です。

昨日、Route53のプライベートホストゾーンを初めて使ってみたという記事を投稿しました。

今回は同一アカウント内の別VPCのインスタンスから名前解決できるように設定してみます。

構成

同一アカウント内にVPCを2つ用意して、VPCピアリングで接続します。
プライベートサブネットに配置したEC2を任意のドメイン名で名前解決できるようにプライベートホストゾーンを設定します。
ひとつめのVPCのパブリックサブネットに配置したEC2から、ふたつめのVPCのプライベートサブネットに配置したEC2の名前解決ができることを確認します。

前提条件

検証に使用するVPC/サブネット/EC2は作成済みとします。

やってみる

VPCピアリングの設定をする

まずは使用するVPCのピアリング接続を設定します。

VPCのダッシュボードの左側メニューから「ピアリング接続」を選択し、「ピアリング接続の作成」をクリックします。

以下を入力し、「ピアリング接続の作成」をクリックします。

  • ピアリング接続ネームタグ
  • VPC(リクエスタ)
  • VPC(アクセプタ)

ピアリング接続が作成できたら、接続リクエストの承諾をします。
今回はアクセプタ(承認側)が同一アカウントのVPCなので、そのまま作成したVPCピアリングを選択し、「リクエストの承諾」をクリックして承諾します。

プライベートホストゾーンを設定する

次にプライベートホストゾーンを設定します。

Route53のダッシュボードの左側メニューより「ホストゾーン」を選択し、「ホストゾーンの作成」をクリックします。

以下を設定してホストゾーンを作成します。

  • ドメイン名
  • タイプ:プライベートホストゾーン
  • ホストゾーンに関連づけるVPC
    • ここで対象の2つのVPCを選択します

ホストゾーンが作成できたら、レコードを追加します。
ホストゾーンの詳細画面から「レコードを作成」をクリックします。

ルーティングポリシーを選択して「次へ」をクリックします。

レコードの設定画面で「シンプルなレコードを定義」をクリックします。

以下を設定して「シンプルなレコードを定義」をクリックします。

  • レコード名
  • ルーティング先
    • レコードタイプに応じたIPアドレスまたは別の値
    • IPアドレス(ここにプライベートサブネットのEC2のプライベートIPアドレスを入力します)
  • レコードタイプ:A

レコードを追加できたら「レコードを作成」をクリックします。

動作確認する

ひとつめのVPCのパブリックサブネットのインスタンスにSSH接続して、ふたつめのVPCのプライベートサブネットのインスタンスの名前解決ができることを確認します。

$ nslookup 【ドメイン名】

実際にやってみて、動作確認できました!

[ec2-user@ip-10-0-1-9 ~]$ nslookup test-record.domain.test
Server:		10.0.0.2
Address:	10.0.0.2#53

Non-authoritative answer:
Name:	test-record.domain.test
Address: 192.168.11.146

あわせて読みたい

プライベートホストゾーンについての公式ドキュメントは以下です。
プライベートホストゾーンの使用

アカウントをまたいだVPC間でプライベートホストゾーンを使用したい場合は以下のブログをご覧ください。

Route53 のプライベートホストゾーンについては以下のブログもご参考にしてみてください。

さいごに

複数のVPCでのプライベートホストゾーンの設定って難しいのかな?と思いましたが意外とカンタンにできました!やったぜ。
この記事がどなたかのお役に立てば幸いです。

以上、コンサル部@大阪オフィスのYui(@MayForBlue)でしたっ(`・ω・´)