AWSでRoute 53をPrivate DNSとしてVPC内で使ってみた

公開日: : AWS, DHCP, DNS, EC2, Route 53, サーバ, 手順

Amazon Web Services(AWS)のRoute 53がVPC内でのPrivate Hosted Zoneに11/5から対応しました。

Amazon Route 53 Announces Private DNS within Amazon VPC
http://aws.amazon.com/jp/about-aws/whats-new/2014/11/05/amazon-route-53-now-supports-private-dns-with-amazon-vpc/

今回は、このあたりの設定について手順を。

Amazon Route 53 Announces Private DNS within Amazon VPC

英文読むのが面倒な人には、、、簡単に言うとVPC内でのInternal DNSが設定可能になったということ。
VPC設定して、EC2のサーバインスタンスをVPC内に立ち上げると、Internal IPを文字列化した

のようなホスト名が振られるのですが、これ、めっちゃ長くて使いづらい・・・
さらに何のサーバだか、これだけだとわからん!!
ということで、今回対応されたPrivate Hosted Zoneで、もっとわかり易い名前を振って使いましょう!ということ。

今回の手順は、すでにVPCの設定はされている前提。
なので、そのあたり設定していない人は事前に設定しといて下さい。

内部用DNSレコードの作成

さて、まずはRoute 53にアクセスして、Internet Domainとは別にHosted Zoneを作成。
以下図の赤枠内のようなリンクをクリックしてから・・・
画像1
次に下図の赤枠部分のように「Create Hosted Zone」をクリック。
画像2
すると下図のような表示が画面右側に出てくるので、
画像3
上記、赤枠部分の
・Domain Name:適当に(例えば「hogehoge.internal」)
・Type(「Private Hosted Zone for Amazon VPC」を選択)
・VPC Id(Region内のVPC IDが表示されるので、設定対象を選択)
を、それぞれ入力&選択する。
で、一番下の「Create」ボタンをクリックし、Zoneを作成する。

すると下図のようにZoneが作成されるので、今度は「Go to Record Sets」をクリックする。
画像4
レコードの作成は以下ような表示がされたら「Create Record Set」をクリック。
画像5
すると、下図のようなレコードの設定画面が右側に表示されるので、NameやValueを設定して一番下の「Create」をクリックしレコードを作成。
画像6
これを何度か繰り返して、Zone内のレコードを一通り作成する。
Route 53での作業は以上。

基本的にEC2の場合はDHCPでIPが振られ、resolverが設定される。
なので、次にDHCPの設定を変更して、今回のInternal Zoneを検索対象にするようにする必要がある。

ちなみに、
Externalで使っているインターネットドメインと同じドメイン名を指定して内部用のZoneやRecordを作成することも出来る。
ただ個人的には、経路は意識して使い分けたいこともあり、見た目でわかるようにインターネットドメインでは無いドメイン名を設定することをオススメする。
インターネットドメインと同じドメイン名を利用して、Internal用のZoneを作成しRecordを作成した場合は、次のDHCPオプションの変更作業は必要ない。

VPCのDHCPオプションの変更

EC2のサーバにTerminalでログインしてresolverの設定を確認すると・・・

となっていることが確認できる。
今回のInternal Zoneを検索対象にするには、search行を

と書き換えたいのだが、サーバ上で手動で書き換えても、自動的にGenerateされているので数時間内に元に戻されてしまう。
マニュアルを確認すると、、、
http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_DHCP_Options.html
コマンドラインで作業出来る模様。
スクショ撮って、編集するのが面倒臭くなってきたので、ここからはコマンドラインで作業するw
※ awsコマンドを利用するので、Regionとか諸々の設定は事前に行っておくこと。

まずは、現状のオプション設定を確認し、これを基本に変更した新しいオプション設定を作成する。
現状のオプション設定の確認は以下のようにする。

上記の結果の中で変更したいのは、”domain-name”のValues値。
これを、

にしたい。
なので、変更用のjson形式の定義ファイルを以下のような内容で作成する。

これを以下のようにawsコマンドで指定して、新規オプション設定を作成する。

上記の場合、DHCP Option IDが「dopt-1123xxxx」として新規にオプション設定が追加された。

VPCへのアタッチ

上記までで作成したDHCPオプション設定を今度はVPCの設定に適用する。
これも慣れ親しんだawsコマンドで。
まずは、以下のように現状の確認をする。

コマンドで指定するVPC IDは、自身の環境で事前に調べておくこと。
上記の場合、表示からわかるように、現在はDhcpOptionIdに「dopt-791dxxxx」が指定されているので、これを新規に作成した「dopt-1123xxxx」に変更する。
変更は以下のように。

returnとして「true」となっているので、成功した模様。
再度確認してみる。

確認出来た。

これで1時間ほど待てば、VPC内のサーバのresolverの設定は変更される。

即時に変更したい!って場合は、以下の様なコマンドを実行する。

DHCP Clientで一旦リリースして、再度設定を読み直す…ということを上のコマンドでは行っている。

EC2インスタンス上での確認

反映を待つか、上記までの手順で即時変更するかして、変更後の状態を確認してみる。

設定は変わっているようだ。
今度は、レコードセットで設定した適当な名前でnslookupしてみる。

無事に利用することが出来ました。

ってことで、あとはアプリやら何やら諸々の設定箇所があればこれで設定してく。

ちなみに、上記手順でInternal向けのELBを指定することも出来る。
その場合はInternal向けのELBを作成し、Route 53でRecord Set作るときのオプションを変えて作成したELBを指定すればOK!

Adレクタングル[忍者ADMAX]

関連記事

RabbitMQ.sh-600x600

EC2上のRabbitMQをMulti-AZで冗長化

うーん。。。ハマった。 多分、もっとErlangのこと把握できていればよかったのだろうけど。

記事を読む

nginx_logo

NginxでのSSL設定(もうちょっと詳しく)

単に、 とするだけではなくて…というエントリ。 ちなみにRHEL系を想定して書いている。 ngin

記事を読む

nginx_logo

ngx_pagespeed対応版nginxパッケージの作成(RHEL系)

インストールされているミドルウェアやアプリケーションはパッケージ化されていると、管理上において非常に

記事を読む

nginx_logo

NginxでのOCSP Stapling対応設定

意外にハマったのでメモ。 OCSPとは OCSP(Online Certificate Stat

記事を読む

no image

dstat+td-agent+ElasticSearch+Graphite+Grafana on Amazon Linux

タイトルが異様に長いけど、業務でタイトルのようなパフォーマンス監視環境を作った。 難易度はそんなに

記事を読む

コメントを残す

Adレクタングル[忍者ADMAX]

RabbitMQ.sh-600x600
EC2上のRabbitMQをMulti-AZで冗長化

うーん。。。ハマった。 多分、もっとErlangのこと把握できていれ

aws_logo._V400518270_
AWSでRoute 53をPrivate DNSとしてVPC内で使ってみた

Amazon Web Services(AWS)のRoute 53がV

nginx_logo
NginxでのSSL設定(もうちょっと詳しく)

単に、 とするだけではなくて…というエントリ。 ちなみにRHEL系を

→もっと見る

  • Author:
    hiro
    Work:
    インフラエンジニア
    Brief History:
    新卒後、ソフトハウスにて受託開発を中心に開発エンジニアを始める。
    数年前から現在はITインフラが専門。
PAGE TOP ↑