はじめに
今回は、AWSアカウントA(仮)で使用しているドメインから新たにサブドメインを作成し、AWSアカウントB(仮)で使用できるように設定してみました。
少しでも参考になれば幸いです。
DNS委任とは
DNS委任(DNS Delegation)とは、あるドメインやサブドメインのDNS管理権限を別のDNSサーバへ委譲する仕組みです。
親ドメインは「どのネームサーバがそのサブドメインを管理するか」だけを管理し、実際のDNSレコードは委任先が管理します。(委任はNSレコードによって実現されます)
会社が「example.com」を管理しているとします。
この中に「dev.example.com」というサブドメインを作り、
このサブドメインだけを開発部門が管理したい場合
↓
親ゾーン(example.com)は、
'「dev.example.com」の情報は、このネームサーバに聞いてください'
という情報(NSレコード)だけを持ちます。
実際のAレコードやCNAMEレコードなどは、委任先のDNS(例:Route 53)が管理します。
手順の流れ
※イメージしやすくするために、委任元を'親'、委任先を'子'と呼びます。
- (子アカウントにて)子ホストゾーンを作成
- (親アカウントにて)親ゾーンにNS委任レコードを追加
- (子アカウントにて)ACM証明書をus-east-1で発行
- (子アカウントにて)CloudFrontに代替ドメイン名と証明書を設定
- (子アカウントにて)子ゾーンにCloudFrontへのAliasレコードを作成
- (子アカウントにて)動作確認
1. (子)子ホストゾーンを作成
委任先のAWSコンソールにアクセスします。
Route 53 → ホストゾーン画面に遷移し、「ホストゾーンの作成」を押します。
①親のドメインから新しく作成したいサブドメインを入力します。
②「タイプ」は「パブリックホストゾーン」を選択します。
③「ホストゾーンの作成」を押します。
作成されたdev.~.jpを開き、タイプ:NSのレコードに表示される4つのネームサーバーを控えます(例:ns-xxxx.awsdns-xx.org など4行)。→[手順2]で使用。
※ここで作るdev.~.jpは「ゾーンの頂点(apex)」になります。
apexにはCNAMEを作れないため、最終的にターゲットへ向けるレコードはAレコードのエイリアスになります。[手順5]で使用
2. (親)親ゾーンにNS委任レコードを追加
委任元のAWSコンソールにアクセスします。
Route 53 → ホストゾーン画面に遷移し、元となるドメイン(ホストゾーン名) を選択し、その中に「レコードを作成」を押します。
①先ほど作成したサブドメイン部分を入力します(末尾にトップレベルドメインが自動で補完されます)
②「レコードタイプ」は「NS」を選択します。
③「値」に[1. 子ホストゾーンを作成]で控えた4つのネームサーバーを改行区切りで全部貼り付けます。
④⑤デフォルトを選択します。
⑥「レコードを作成」を押します。
これで公開DNS上、dev.~.jp配下の名前解決権限が子ホストゾーンに移ります。
※手順3~6は、以下の記事の[3. ACMでSSL/TLS証明書を発行する(必ず us-east-1)]以降と同様の手順となりますので、ぜひ合わせてご参照ください。
手順3. (子)ACM証明書をus-east-1で発行
手順4. (子)CloudFrontに代替ドメイン名と証明書を設定
手順5. (子)子ゾーンにCloudFrontへのAliasレコードを作成
手順6. (子)動作確認
今回は以上になります!
最後までお読みいただきありがとうございました。


