カスタムドメイン 構成時に どこからドメインを手配するか？

# はじめに
"Azure App Service" や "Microsoft Entra テナント" に対して、カスタムドメイン を構成する場合、ドメインの利用状況（既に企業で使っている or これから取得する）によって、対応が異なってきます。
その判断について 説明するとともに、それぞれの作業手順についても紹介したいと思います。

# カスタムドメイン とは？
Azure App Service をデプロイすると、既定では [xxx].azurewebsites.com という URL が発行されます。
そして、Microsoft Entra テナント を利用しようとすると、既定では [xxx].onmicrosoft.com というドメイン名が発行されます。
[xxx] の箇所は、ユニークである名前を任意に決められますが、"azurewebsites.com" や "onmicrosoft.com" の部分は 変える事はできません。
企業のブランディングや 社員のメールアドレスとして使うには、あまり適切な状態とは言えません。
そのため、各企業が独自に取得したドメインを App Service や テナント に割り当てて使う事が可能です。<br>その機能が "カスタムドメイン" というサービスとなっています。

https://learn.microsoft.com/ja-jp/entra/fundamentals/add-custom-domain

# ドメインの状況と 利用目的を確認する
カスタムドメイン を構成する前に、ドメイン の運用形態や 目的を明確にしておきましょう。
なお、私が解説で用意している本命は ③ と ④ の場合です。① と ② は比較のために記載しているため、内容は簡潔な説明にとどめています。ご承知おきください。

|   |状況|目的|ドメインの取得|外部DNSの運用|利用可能なドメイン|
|:-:|:-:|:-:|:-:|:-:|:-:|
| ① |既存|本運用|取得済みの<br>ドメイン名を利用|アウトソース<br> or 自社サーバ|現在利用中のドメイン|
| ② |新規|本運用|外部レジストラで<br>新規ドメインを取得|アウトソース<br> or 自社サーバ or<br> Azure DNSゾーン|全世界のドメイン<br>"co.jp" も利用可|
| ③ |新規|本運用<br>or<br>検証|Azure App Service ドメイン で<br>新規ドメインを取得|Azure DNSゾーン|以下のみ<br>com、net、co.uk、org、nl、in、biz、org.uk、co.in
| ④ |新規|検証|MyDNS で<br>サブドメインを取得|MyDNS|以下のみ<br>?.mydns.jp、?.mydns.bz、?.mydns.vc、?.mydns.tw、?.0am.jp、?.0g0.jp、?.0j0.jp、?.0t0.jp、<br>?.pgw.jp、?.wjg.jp、?.dix.asia、<br>?.daemon.asia、?.live-on.net、<br>?.keyword-on.net、?.server-on.net|

① 独自ドメイン運用中。外部DNS運用中。
　独自ドメインを購入して、レジストラに登録済み。自社にて 外部DNSサーバーを運用中
　既に、ドメインを所持して 利用中の場合には、この選択肢になります。
② 外部レジストラでドメインを新規取得。外部DNSを運用する
　".jp" , ".co.jp" , ".ne.jp" などの JPドメインを使いたい場合は、この選択肢になります。
③ Azure のサービスを使って 独自ドメインの取得と 外部DNSを運用する。
　この方法は、私の記事で Step by Step で手順を紹介しています。
④ 無料サービスを用いて コストを掛けずに カスタムドメインの機能を検証したい
　この方法は、私の記事で Step by Step で手順を紹介しています。

## ① 独自ドメイン運用中。外部DNS運用中。
この場合は、以下の URL を参考に 外部DNSサーバーに CNAMEレコード (App Serviceの場合）、TXTレコード (テナントの場合) を追加するだけで OK です。

テナントの場合は、Azure Portal か Microsoft 365 管理センター のいずれかから実施すれば OK です。
（Azure Portal での操作）
https://learn.microsoft.com/ja-jp/entra/fundamentals/add-custom-domain#add-your-custom-domain-name
（Microsoft 365 管理センター での操作）
https://learn.microsoft.com/ja-jp/microsoft-365/admin/get-help-with-domains/create-dns-records-at-any-dns-hosting-provider?view=o365-worldwide#step-1-add-a-txt-or-mx-record-to-verify-you-own-the-domain

:::note info
以下のように、Azure Portal に表示された TXTレコード の情報を 外部DNSサーバー に登録します。DNSに登録してから、「確認」のボタンを押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/d0f2642c-19ed-f0cf-b3d4-aba7daa77d3d.png)
:::

## ② 外部レジストラでドメインを新規取得。外部DNSを運用する。
Azureに依存せず、ドメインを維持管理したい場合は、この選択肢になると思います。
ドメインに関する知識は、持ち合わせている必要があり、この記事での詳細な説明は割愛します。
以降は、簡単な流れのみを紹介しています。

まず、以下のような、外部レジストラから 独自ドメイン の購入を行って下さい。
https://jprs.co.jp/
https://www.onamae.com/

続いて、外部DNSサーバーの手配は、いくつかの選択肢があります。
a. レジストラや プロバイダー が提供する DNSのサービスを利用する
b. 自社のデータセンターで DNSサーバーを構築して、外部公開する
c. Azure DNS ゾーン のサービスを利用する

a.と b. の場合は、一般的なドメイン取得と 外部DNSサーバーの運用の手続きに基づいて手配を行ってください。それ以後は「① 独自ドメイン運用中。外部DNS運用中。」で紹介した流れと同じになります。

c. を使う場合は、Azure上に DNSサーバーの機能を稼働させることもできます。
レジストラーに、Azure の DNSゾーン に表示された NSレコードを登録して 委任することで、自社ドメインの DNS を Azure DNSゾーンのサービスを使って運用する事が出来るようになります。

https://learn.microsoft.com/ja-jp/azure/dns/dns-delegate-domain-azure-dns#delegate-the-domain

外部レジストラーのドメインを Azure DNS に登録する 具体的な構成手順は、私の知り合いの @nobtak さんが記載された 以下の記事に掲載されていますので、こちらも参考になります（お名前ドットコムを利用するパターン）

https://qiita.com/nobtak/items/00e4ee88cfc166a441e8

## ③ Azure のサービスを使って 独自ドメインの取得と 外部DNS を運用する。
この方法は、"App Service ドメイン" でドメインを購入して、"Azure DNS ゾーン" で外部DNS を運用する方法です。
有料ですが、すべての要素を Microsoft に 1 本化できます。
手順については、以下の記事で説明しています。参照ください。

（Microsoft Entra テナント + App Service ドメイン + カスタムドメインの構築手順）
　https://qiita.com/carol0226/items/5e01ea76a2581c6810b4

（App Service + カスタムドメインの構築手順）※MyDNS と AppServiceドメイン共通
　https://qiita.com/carol0226/items/9fb73fbbbd196fbec19e

コストも非常に安価です（年間で 1,800円弱）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/e121d2b9-d533-09c1-1973-ea2aae1d088f.png)
（上記画面は、以下の URL「App Service ドメイン の価格」より抜粋）
https://azure.microsoft.com/ja-jp/pricing/details/app-service/windows/

:::note alert
なお、Azure のサービスを利用するため、事前に Azure のサインアップが必要です。
※ 初めての人は US$200クレジット分が無料（約3万円分）が付与されますが、このクレジットで App Service ドメイン の費用に充てる事はできません。ご注意ください。
（参考URL）
https://qiita.com/carol0226/items/066c06d95cb68427f1d0
:::

:::note warn
この方法のデメリットは 2 つ あります。
以下のような場合は、前章（② 外部レジストラでドメイン取得）の方法を使ってください。
- ".jp" , ".co.jp" などの JPドメインは利用できません。
- ドメインを取得したあと、将来的に Azure をすべて解約して、他社サービスで 引き続き同じドメインを継続利用するような可能性が高い場合は、その際に手間が掛かります。
:::

## ④ 無料サービスを用いて コストを掛けずに カスタムドメインの機能を検証したい
この方法は、無料で利用できるため、検証目的で カスタムドメインの機能を試したい場合などに適しています。

以下の私の記事で紹介していますので、参照してみてください。

（Microsoft Entra テナント + MyDNS + カスタムドメインの構築手順）
　https://qiita.com/carol0226/items/cbbe32006d26080847f7

（App Service + カスタムドメインの構築手順）※MyDNS と AppServiceドメイン共通
　https://qiita.com/carol0226/items/9fb73fbbbd196fbec19e