Azure ポータルで購入したマネージドドメインの DNS サーバーを Amazon Route 53 に切り替える方法
いわさです。
Azure では外部で調達したドメインを Azure DNS を使って名前解決することが多いと思いますが、Azure 上でドメインを購入することも可能です。
「App Service ドメイン」という名前なので App Service 用のようにも思えますが通常のドメインとして利用出来ます。
Azure 上で管理されるカスタムドメインで App Service については連携機能で簡単にカスタムドメインを構成出来たりします。
App Service ドメイン購入後は Azure マネージドな DNS が自動で構成されているのですが、Azure 外部の DNS サーバーを利用することも出来ると知り試してみましたのでご紹介します。
注意点
上記公式ドキュメントに記述があるのですが、App Service ドメインは以下の制限がありますので無料クレジットではなく支払いが発生します。
無料のサブスクリプション クレジットで App Service ドメインを購入することはできません。
ちなみにこの注意点は購入直後に知りました。
MSDNやSponsorshipだと、証明書やドメイン、マーケットプレイスの課金は別請求なんですよね。たまにしくじって追加請求が届きます。
— よたん (@yo_ta_n) September 21, 2022
まぁ、つまり、私もしくじったということです。
App Service ドメイン 購入
Azure ポータルで「App Service Domains」メニューから購入します。
購入したいカスタムドメインを入力します。
App Service ドメインも通常の Azure リソースと同じように、リソースグループの中に存在するリソースのひとつとして管理されます。
連絡先情報の入力が必須となっています。
Advanced タブでプライバシー保護機能の ON/OFF を選択出来ます。(デフォルト ON)
この機能を有効化すると連絡先情報が WHOIS データベースから取得できなくなります。
公式ドキュメントには「App Service ドメインは、ドメイン登録に GoDaddy を使用し、ドメインをホストするために Azure DNS を使用します。」と記述があります。
Azure DNS リソースを確認してみると以下のように作成したカスタムドメイン用の Azure DNS ホストゾーンが作成されていました。
こちらから購入したカスタムドメイン用のレコードを管理することが出来ます。
App Service ドメインリソースは以下のようになっていて、こちらから Azure DNS へ遷移したり ドメイン更新操作が可能です。
DNSサーバーを Amazon Route 53 へ移行してみる
Advanced Management Portal が見当たらない...
いくつかのドキュメントやフォーラムの情報によると App Service ドメインのメニューに「Advanced Management Portal」というメニューがあって、そこで高度な設定を行うことが出来るようなのですが、この記事の内容を試した際にはメニューが表示されませんでした。
なお Microsoft Q&A にて類似の事象が起きている方を観測しています。
以下のフォーラムスレッドではマイクロソフト従業員より GoDaddy ドメインマネージャーの直接リンクが案内されていました。
Advanced Management Portal メニューも遷移先はこの GoDaddy が管理するドメインマネージャーだったようです。
情報を登録すると以下のように購入ドメインの情報が確認出来るようになりました。
ドメインマネージャー
ドメインマネージャーは GoDaddy 側の設定コンソールなのでやはり Azure ポータル以上に設定出来る項目がたくさんありますね。
ネームサーバーは Azure のものになっています。
そのせいかドメインマネージャー内の DNS レコード画面では「ネームサーバーが弊社によって管理されていないため...」という表示がされています。ここでいう弊社というのはおそらく GoDaddy 側でしょうか。
Amazon Route 53 へ切り替え
Route 53 に Azure 側で購入したカスタムドメインのホストゾーンを作成しておきましょう。
ドメインマネージャーに戻って、先程確認したネームサーバー確認画面にてカスタムネームサーバーを変更します。
いくつかオプションがありますが、「自身のネームサーバーを入力(高度)」を選択し、作成した Route 53 ホストゾーンのネームサーバーを入力しましょう。
注意事項をよく確認し、続行します。
これで切り替えは完了です。
NS レコードを問い合わせしてみると切り替わっていることが確認出来ると思います。
% nslookup -type=NS iwasahoge.net Server: 127.0.2.2 Address: 127.0.2.2#53 Non-authoritative answer: iwasahoge.net nameserver = ns-1418.awsdns-49.org. iwasahoge.net nameserver = ns-1965.awsdns-53.co.uk. iwasahoge.net nameserver = ns-439.awsdns-54.com. iwasahoge.net nameserver = ns-661.awsdns-18.net. Authoritative answers can be found from: iwasahoge.net nameserver = ns-1418.awsdns-49.org. iwasahoge.net nameserver = ns-1965.awsdns-53.co.uk. iwasahoge.net nameserver = ns-439.awsdns-54.com. iwasahoge.net nameserver = ns-661.awsdns-18.net.
試しに ACM をドメイン検証で発行してみました。
Route 53 の自動登録機能で検証が完了しました。
App Service ドメインの Manage DNS records は Azure DNS を設定しようとする
ネームサーバーを切り替えたわけですが、App Service ドメインには Manage DNS records メニューが存在し、ホストゾーンへ遷移することが出来ます。 切り替え後はどのような動作になるでしょうか。
まず、App Service で App Service ドメインを指定してカスタムドメインを登録してみたのですが、こちらは作成が出来ました。なんと。
そして App Service ドメインのメニューからホストゾーンへ遷移してみましょう。
そうすると次のように Azure DNS ホストゾーンが表示されました。
レコードも自動登録されていますね。
しかし、このホストゾーンは参照されていないので追加したカスタムドメインの名前解決には失敗しています。
外部ドメインとして手動でレコード登録をしましょう。
% curl http://hoge1004.iwasahoge.net/ curl: (6) Could not resolve host: hoge1004.iwasahoge.net
さいごに
今回は Azure ポータルから App Service ドメインを購入し、DNS サーバーを Amazon Route 53 へ切り替えてみました。
Azure でドメインは購入したいけど、DNS は AWS で管理したいケースって無いだろう?と考えたのですが、ドメインの請求は Azure サブスクリプションに対して行わなければいけない組織的な事情がありつつ、AWS リソースへのエイリアスレコードが必要な場合だとこの構成もあり得なくはないのかなと思いました。