しばやん雑記

ASP.NET Core とメイドさんが大好きなフリーランスのプログラマーのブログ

Azure DNS の Alias record set を CLI で管理する

色々調べても Azure CLI を使って Alias record set を作成する方法が見当たらなかったので、リファレンスを読んで実際に試しました。普段なら Azure Portal での方法と CLI でのサンプルコマンドが載ってるはずですが、ドキュメントは何故か Azure Portal のみでした。

使うコマンドは record-set a createrecord-set a updateです。aaaa と cname も使えるはず。

普通に record set を作成する時と同じですが、パラメータとして --target-resource を与えると Alias record set となります。渡す値は ARM 上のリソース ID です。

新しく Alias record set を作成する場合には、以下のようなコマンドを叩きます。

az network dns record-set a create -g TestRG -n @ -z example.com --target-resource /subscription/***/

リソース ID は Azure Portal ならプロパティからコピーできます。ARM Explorer を使っても良いですが、少し手間がかかるので Azure Portal 手軽で良いです。

実際に Cloud Shell を使って Traffic Manager に対する Alias record set を作成してみました。対応していないリソース ID を渡すとエラーになるので、バリデーションという意味で安心です。

f:id:shiba-yan:20190416143925p:plain

ちなみに Azure CDN への Alias record set を作成する時は Endpoint のリソース ID が必要なので、CDN Profile と間違えないようにしましょう。Public IP Address は試してないですが多分同じでしょう。

作成後に Azure Portal から DNS レコードを確認すると、ちゃんと Alias record set になっています。

f:id:shiba-yan:20190416143942p:plain

使っている API バージョンが 2018-05-01 より古い場合は、確認しようとしても IP アドレスしか返ってこないので悩むことになります。新しい CLI とクライアントを使えば大丈夫です。

Front Door でも試してみた

昨日に Front Door チームの方から、既に Front Door も Alias record set に対応していると教えてもらっていたので、実際に CLI を使って試しておきました。

既に A レコードを作っていたので、update を使って --target-resource を Front Door に切り替えます。Front Door のリソース ID は Azure Portal から確認出来ないので ARM Explorer を使いました。

az network dns record-set a update -g TestRG -n @ -z example.com --target-resource /subscription/***/

これも Cloud Shell から実行しました。エラーが出ないので Front Door に対応してることが分かります。

f:id:shiba-yan:20190416143953p:plain

Azure Portal から確認してみると、一覧ではちゃんと Front Door と表示されていました。あとは追加ダイアログでの対応が終われば、サクッと使えるようになるはずです。

f:id:shiba-yan:20190416144002p:plain

Front Door も CDN と同様にカスタムドメインを割り当てるには afdverify という CNAME が必要なので、別途作成しておきます。将来的には CDN の時のように自動で作ってくれるようになるでしょう。

これで Front Door Designer からカスタムドメインを追加できるようになります。実際に追加しました。

f:id:shiba-yan:20190416144358p:plain

これもまた CDN と同じように Key Vault から証明書をインポート出来るので、せっかくなので設定して https を有効化まで行ってみました。

全ての設定完了後にアクセスすると x-azure-ref ヘッダーが返ってきているので Front Door を通っていることが確認できます。

f:id:shiba-yan:20190416150143p:plain

少しはまったポイントとしては Azure CDN Standard Microsoft と Front Door は同じ Microsoft の CDN Edge を使っているので、Alias 先を切り替えても同じ IP が返って来ますし、どちらかのカスタムドメインを予め削除しておかないと謎のエラーが出続けて悩むことになります。

同じドメインでの CDN Standard Microsoft から Front Door への移行は避けた方が無難かもしれません。

ARM Template でも作れる

Azure DNS REST API のバージョン 2018-05-01 から targetResource が追加されているので、ARM Template で Traffic Manager や CDN を作成する場合は同じテンプレートで Alias record set を作れます。

ARM Template の場合は [resourceId] を使えば簡単にリソース ID を取れるので、CLI より楽です。