月別アーカイブ: 2016年1月

Route53でサブドメインに権限を委譲する

こんちには。船田です。
弊社では、開発チームごとにAWSアカウントを持っており、それぞれ自由に開発・検証などに利用できるようにしています。
その際、各チームにて、検証用に実ドメインをRoute53で使用したいという要望が上がったのですが、各部署ごとにドメインを取得するとコストや管理の負担が増えてしまいます。

そのため、検証用のドメインをひとつ取得し、サブドメインを各チーム用AWSアカウント上のRoute53に委譲して、利用できるようにしてみました。

サブドメインの委譲

以下のように、委譲元のドメインとして「example.jp」があるとします。
まずこのドメインのサブドメインをRoute53上に作成していきます。
route53-subodmain-migrate_01

「Hosted Zones」を選択し「Create Hosted Zone」をクリックします。
route53-subodmain-migrate_02

作成するサブドメインは「sub.example.jp」としました。
route53-subodmain-migrate_03

「sub.example.jp」が作成されました。
ここで表示されているNSレコードを「example.jp」に登録しますので、控えておきます。
route53-subodmain-migrate_04

「example.jp」を選択し「Create Record Set」をクリックします。
route53-subodmain-migrate_05

以下のように「sub.example.jp」をNSレコードとして登録します。
Valueには、先ほど控えたサブドメインのNSレコードを入力します。
route53-subodmain-migrate_06

「example.jp」に、サブドメイン「sub.example.jp」のNSレコードが登録されました。
これで委譲は完了です。
route53-subodmain-migrate_07

それでは、実際に名前解決してみます。
「sub.example.jp」を選択し「Create Record Set」をクリックします。
route53-subodmain-migrate_08

ここではサブドメイン上のAレコードとして「www.sub.example.jp」を登録しました。
route53-subodmain-migrate_09

route53-subodmain-migrate_10

サブドメイン上のAレコードの解決ができることを確認します。

$ dig -t a www.sub.example.jp

; <<>> DiG 9.8.3-P1 <<>> -t a www.sub.example.jp
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 24819
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 0
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;www.sub.example.jp.		IN	A

;; ANSWER SECTION:
www.sub.example.jp.	300	IN	A	192.168.1.100

;; AUTHORITY SECTION:
sub.example.jp.		172800	IN	NS	ns-1352.awsdns-41.org.
sub.example.jp.		172800	IN	NS	ns-1574.awsdns-04.co.uk.
sub.example.jp.		172800	IN	NS	ns-249.awsdns-31.com.
sub.example.jp.		172800	IN	NS	ns-970.awsdns-57.net.

;; Query time: 83 msec
;; SERVER: 205.251.192.249#53(205.251.192.249)
;; WHEN: Thu Nov 26 19:32:04 2015
;; MSG SIZE  rcvd: 192

名前解決できていることがわかります。

まとめ

簡単にサブドメインの委譲ができました。
ドメインは安く購入できるので気軽に新規取得してしまいがちですが、数が増えてくると漏れなく更新するための負担も大きくなります。検証用などのドメインは、サブドメイン運用がおすすめです。