8
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Route53を利用してVPCの中と外で名前解決の結果を変える

Last updated at Posted at 2019-09-26

前提

 この記事はDNSって何かをわかっている程度の方を対象にしています。
 またRoute53にドメインをすでに登録している方が対象です。

 それ以外の方は以下を参考に、ドメイン登録を行ってみてください。
 パブリックホストゾーンもプライベートホストゾーンも、やり方は変わりません。

 ■ AWS公式マニュアル
 https://docs.aws.amazon.com/ja_jp/Route53/latest/DeveloperGuide/registrar.html

 ■ AWS Route53を使ってみよう!ドメイン登録および設定方法
 http://exrecord.net/how-to-register-aws-route53

概要

 AWSってVPCの外と通信するとデータ転送料金がかかっちゃうから、VPCの中のホスト同士はプライベートIPでやりとりしますよね。
 で、私の場合、いちいちIPアドレスで管理するのは面倒くさいから、プライベートホストゾーンを使って内部DNSを構築して使っています。

【注釈】プライベートホストゾーン↓
https://docs.aws.amazon.com/ja_jp/Route53/latest/DeveloperGuide/hosted-zones-private.html

 でも、社内と社外で別々のホスト名やドメインを管理するのは面倒だし、VPC外のPCからつなぎに行くときも、同じホスト名を使いたくないですか?
 そんな時、Route53のパブリックホストゾーンとプライベートホストゾーンに同じドメイン、同じホストを登録しておくと、
 ・VPC内部で名前解決すると「プライベートIPアドレス」
 ・VPCの外で名前解決すると「パブリックIPアドレス」
 を返してくれるように設定できます。

結果

 設定したらどうなるか、先に結果を書きます。
 同じFQDN(ホスト名)を名前解決しているのに、VPC内のホストと、外とでは違う結果が返っているのがわかると思います。

VPC内部のEC2ホストからdigコマンドを実行

$ dig test.dancing-robot.club a

; <<>> DiG 9.11.3-1ubuntu1.9-Ubuntu <<>> test.dancing-robot.club a
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 54128
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;test.dancing-robot.club.       IN      A

;; ANSWER SECTION:
test.dancing-robot.club. 295    IN      A       172.30.100.42

;; Query time: 0 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Thu Sep 26 17:23:01 UTC 2019
;; MSG SIZE  rcvd: 68

VPCの外からdigコマンドを実行

WS000007.JPG

【注釈】外部からの名前解決には以下のサービスを利用させて頂きました。
https://www.cman.jp/network/support/nslookup.html

設定方法

パブリックホストゾーン

まず、私のRoute53は以下のようになっています。

 パブリックホストゾーンとプライベートホストゾーンが同じドメインになっているのが見てわかると思います。
WS000000.JPG

パブリックホストゾーンのドメインをクリックして設定画面に移行し、「レコードセットの作成」をクリックして、「名前」と「値」を入れてホスト名を登録します。

WS000001.JPG

登録できました。

WS000002.JPG

プライベートホストゾーン

「ホストゾーン」の選択画面に戻って、今度はプライベートホストゾーンを選択します。

WS000003.JPG

【注釈】プライベートホストゾーンを作っていない方は以下を参考に作ってみてください。
 ■ AWS VPCでRoute53のプライベートホストゾーンを使う
 https://qiita.com/kter/items/d92d6e361a718a23c0bd

プライベートホストゾーンのドメインをクリックして設定画面に移行し、「レコードセットの作成」をクリックして、「名前」と「値」を入れてホスト名を登録します。

WS000004.JPG

登録できました。

WS000005.JPG

後記

 中と外で同じホスト名を使いたい、というニーズの際に便利です。
 まぁ、DNSサーバを立てたことがあれば、別にAWSでなくても同じことができるのはわかると思いますが、AWSのVPCの特性上、オンプレミスよりもコスト面でもメリットがあるので、活用してみてください。

例として私の使い方

 私はパブリックサブネットにVPNサーバを置いて、NATインスタンス代わりとして使っています。
 そこでVPNサーバにつなぐ場合にVPCの中と外で繋ぐIPを使い分けしています。
 ・プライベートサブネットからはプライベートIPで接続して、NATインスタンス代わりに
 ・VPC外からはパブリックIPで接続して、踏み台兼、拠点間VPN-GW
 として使っています。

 同じホスト名が使えるので、近内と外でコンフィグを使い分け内で使えるので、楽になりました。

以上です。

8
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?