2014年11月12日水曜日

Route53がVPCのPrivateDNSに使えるようになったと聞いて

Route53でPrivateDNSを使ってみる


自分で内部DNSを構築したり、/etc/hostsの力業を使わない限り、今までは長い名前を頑張って入れるかIPアドレス経由でアクセスをする必要がある。
・内部DNSを利用するにはBINDの脆弱性と戦ったりせざるを得ず、毎年の恒例行事でやってられない。
・RDSやRedshiftやElasticacheを利用している方々なら分かると思うが、Endpointの名前が長すぎるので、CNAMEが使えるととても楽。
ということで、Route53 in VPCを試してみるテスト。


1,Route53の画面を眺めてみる。
いつもの設定と同じく、[Create Hosted Zone] を押す。

2,項目について

見慣れない項目が増えている…。

項目について:
Domain Name:VPC内で使うInternalのドメイン・ネームを入力
Comment    :上記ドメインの説明など
Type       :PrivateDNSかPublicDNSかを選択
VPC Id     :上記でPrivateを選択した際に、どのVPCに適用するかを選択

3,設定してみた
-- Privateを3つ作成してみた
bk.taterole.net:バックエンド用ドメイン
バックエンド用途、VPC内のInternet側に向かわない通信用のドメイン
webサーバ→DBサーバの通信や、Cacheサーバなどを用いる際にこのネットワークを利用する
fr.taterole.net:フロントエンド用ドメイン
フロントエンド用途、InternetGatewayをもったdefaultVPCと通信用のドメイン
ELB→webサーバの通信みたいな用途
gw.taterole.net:ゲートウェイ用ドメイン
追加したPrivateVPCではなく、DefaultVPC用のドメイン
踏み台サーバなどを配置する用途


4,検証用EC2インスタンス
-- DefaultVPCに配置
Hostname:shimakaze
eth0:shimakaze.gw.taterole.net
せつめい:踏み台サーバとして作成

-- PrivateVPCに配置
Hostname:sigure
eth0:kiso.bk.taterole.net
eth1:kiso.fr.taterole.net
せつめい:PrivateVPC上でWEBサーバを想定して構築したもの
RDS/Elasticache通信用のeth0とフロントからの通信を受ける用のeth1を用意 
5,Route53にそれぞれのレコードセットに、インスタンスのPrivateDNSを登録
-- gw.taterole.net.
shimakaze.gw.taterole.net. Aレコード 172.16.30.1
-- fr.taterole.net.
kiso.fr.taterole.net. Aレコード 172.16.1.1
-- bk.taterole.net.
kiso.bk.taterole.net. Aレコード 172.16.101.1
※IPはインスタンスを作成時にDHCPで割り当てられたIPです。
6,動作確認
-- PrivateVPCインスタンスから確認(kiso)
[taterole@kiso ~]$ host kiso.bk.taterole.net
;; connection timed out; trying next origin
;; connection timed out; trying next origin
;; connection timed out; trying next origin
;; connection timed out; trying next origin
;; connection timed out; no servers could be reached
[taterole@kiso ~]$ host kiso.fr.taterole.net
;; connection timed out; trying next origin
;; connection timed out; trying next origin
;; connection timed out; trying next origin
;; connection timed out; trying next origin
;; connection timed out; no servers could be reached
[taterole@kiso ~]$ host shimakaze.gw.taterole.net
;; connection timed out; trying next origin
;; connection timed out; trying next origin
;; connection timed out; trying next origin
;; connection timed out; trying next origin
;; connection timed out; no servers could be reached
→アカン
-- DefaultVPCインスタンスから確認(shimakaze)
[taterole@shimakaze ~]$ host shimakaze.gw.taterole.net
shimakaze.gw.taterole.net has address 172.16.30.1
[taterole@shimakaze ~]$ host kiso.fr.taterole.net
;; connection timed out; trying next origin
;; connection timed out; trying next origin
;; connection timed out; trying next origin
;; connection timed out; trying next origin
;; connection timed out; no servers could be reached
[taterole@shimakaze ~]$ host kiso.bk.taterole.net
;; connection timed out; trying next origin
;; connection timed out; trying next origin
;; connection timed out; trying next origin
;; connection timed out; trying next origin
;; connection timed out; no servers could be reached
→gw.tateroleだけ引ける模様
7,ドキュメントを読み解いてみる…。
ImportantTo use private hosted zones, you must set the following Amazon VPC settings to true:
・enableDnsHostnames
・enableDnsSupport
For more information, see Updating DNS Support for Your VPC in the Amazon VPC User Guide.
なるほど。

8,VPCの設定を変更
以前VPCを作成された方は、デフォルトの[DNS hostnames] が[no]になっています。
ココを[yes]に変更。
9,もっかい動作確認
-- PrivateVPCインスタンスから確認(kiso)
[taterole@kiso ~]$ host shimakaze.gw.taterole.net
shimakaze.gw.taterole.net has address 172.16.30.1
[taterole@kiso ~]$ host kiso.fr.taterole.net
shimakaze.fr.taterole.net has address 172.16.1.1
[taterole@kiso ~]$ host kiso.bk.taterole.net
shimakaze.bk.taterole.net has address 172.16.101.1
→ヤッター!
-- DefaultVPCインスタンスから確認(shimakaze)
[taterole@shimakaze ~]$ host shimakaze.gw.taterole.net
shimakaze.gw.taterole.net has address 172.16.30.1
[taterole@shimakaze ~]$ host kiso.fr.taterole.net
shimakaze.fr.taterole.net has address 172.16.1.1
[taterole@shimakaze ~]$ host kiso.bk.taterole.net
shimakaze.bk.taterole.net has address 172.16.101.1
→タツジン!
10,おまけにRDSも以下でDNS登録して名前が引けることを確認
-- bk.taterole.net.
kongo.bk.taterole.net. CNAME kongo.hogehoge.ap-northeast-1.rds.amazonaws.com.
→EndpointにCNAMEを貼る感じで、アクセス出来やすいようにします。
 IPアドレスはMultiAZなど使っている場合、一意ではないのでCNAME推奨だと思われます
[taterole@kiso ~]$ host kongo
kongo.bk.taterole.net is an alias for kongo.hogehoge.ap-northeast-1.rds.amazonaws.com.
kongo.hogehoge.ap-northeast-1.rds.amazonaws.com has address 172.16.101.225
→うむ、長い名前がすごく短くなった
---

注意点としては、VPCの設定変更を忘れないというところ

---

ということで、おわり。

0 件のコメント:

コメントを投稿