チュートリアル:既存のカスタム DNS 名を Azure App Service にマップする

Azure App Service は、非常にスケーラブルな、自己適用型の Web ホスティング サービスを提供します。 このチュートリアルでは、既存のカスタム ドメイン ネーム システム (DNS) 名を App Service にマップする方法について説明します。 ライブ サイトとその DNS ドメイン名を App Service にダウンタイムなしで移行する方法については、「Azure App Service へのアクティブな DNS 名の移行」をご覧ください。

このチュートリアルでは、以下の内容を学習します。

1.環境を準備する

  • App Service アプリを作成するか、別のチュートリアルで作成したアプリを使用します。 Web アプリの App Service プランは、Free (F1) ではなく、有料レベルであることが必要です。 レベルを更新するには、アプリのスケールアップに関する記事を参照してください。
  • 自分のカスタム ドメインの DNS レコードを編集できることを確認します。 DNS レコードを編集するには、自分のドメイン プロバイダー (GoDaddy など) の DNS レジストリへのアクセス権が必要です。 たとえば、contoso.comwww.contoso.com の DNS エントリを追加するには、contoso.com ルート ドメインに対して DNS 設定を構成できる必要があります。 カスタム ドメインは、パブリック DNS ゾーンに存在する必要があります。プライベート DNS ゾーンは、内部ロード バランサー (ILB) App Service Environment (ASE) でのみサポートされています。
  • カスタム ドメインをまだお持ちでない場合は、App Service ドメインを購入できます。

2. ドメイン検証 ID を取得する

Azure へのサインイン

Azure Portal を開き、Azure アカウントでサインインします。

Azure portal でアプリを選択します

  1. [App Services] を検索して選択します。

    App Services の選択を示すスクリーンショット。

  2. [App Services] ページで、Azure アプリの名前を選択します。

    Azure アプリへのポータル ナビゲーションを示すスクリーンショット。

    App Service アプリの管理ページが表示されます。

    アプリにカスタム ドメインを追加するには、ドメイン プロバイダーで検証 ID を TXT レコードとして追加して、ドメインの所有権を確認する必要があります。

  3. アプリ ページの左側のウィンドウで、 [カスタム ドメイン] を選択します。

  4. 次の手順のために、 [カスタム ドメイン] ページの [カスタム ドメイン検証 ID] をコピーしておきます。

    [カスタム ドメイン検証 ID] ボックスの ID を示すスクリーンショット。

    警告

    ドメイン検証 ID をカスタム ドメインに追加すると、未解決の DNS エントリが回避され、サブドメインの乗っ取りを防ぐのに役立ちます。 前にこの検証 ID を使わずに構成したカスタム ドメインについては、DNS レコードに検証 ID を追加して、同じリスクからそれらを保護する必要があります。 この一般的な重大度の高い脅威の詳細については、サブドメインの乗っ取りに関するページを参照してください。

  1. (A レコードのみ) : A レコードをマップするには、アプリの外部 IP アドレスが必要です。 [カスタム ドメイン] ページで、 [IP アドレス] の値をコピーします。

    Azure アプリへの portal ナビゲーションを示すスクリーンショット。

3. DNS レコードを作成する

  1. ドメイン プロバイダーの Web サイトにサインインします。

    Azure DNS を使用して自社のドメインの DNS レコードを管理したり、Azure App Service のカスタム DNS 名を構成したりできます。 詳細については、「チュートリアル:Azure DNS でドメインをホストする」を参照してください。

  2. DNS レコードの管理ページを探します。

    各ドメイン プロバイダーには独自の DNS レコード インターフェイスがあるので、プロバイダーのドキュメントを参照してください。 [ドメイン名][DNS][ネーム サーバー管理] というラベルが付いたサイトの領域を探します。

    多くの場合、DNS レコードのページを見つけるには、アカウント情報を表示し、 [マイドメイン] などのリンクを探します。 そのページに移動し、 [ゾーン ファイル][DNS レコード][詳細構成] のような名前のリンクを探します。

    以下のスクリーンショットは、DNS レコード ページの例です。

    DNS レコード ページの例を示すスクリーンショット。

  3. [追加] または適切なウィジェットを選択して、レコードを作成します。

  4. 作成するレコードの種類を選択して、手順に従います。 CNAME レコードまたは A レコードのいずれかを使用して、カスタム DNS 名を App Service にマップします。

DNS レコードの種類

シナリオ 推奨される DNS レコード
ルート ドメイン contoso.com A レコード。 CNAME レコードはルート レコードには使用しないでください (詳しくは、RFC 1912 セクション 2.4 を参照してください)。
Subdomain www.contoso.com、my.contoso.com CNAME レコード。 A レコードを使用してサブドメインをアプリの IP アドレスに直接マップできますが、IP アドレスは変更される可能性があります。 代わりに、CNAME は変更の影響を受けにくいアプリの既定ホスト名にマップされます。
ワイルドカード *.contoso.com CNAME レコード
  • contoso.com のようなルート ドメインについては、次の表に従って 2 つのレコードを作成します。

    レコード タイプ Host 説明
    A @ アプリの IP アドレスをコピーする」で取得した IP アドレス ドメイン マッピング自体 (通常、@ はルート ドメインを表します)。
    TXT asuid 前に取得した検証 ID ルート ドメインの場合、App Service は、asuid TXT レコードにアクセスして、カスタム ドメインの所有権を確認します

    DNS レコード ページを示すスクリーンショット。

  • 推奨される CNAME レコードの代わりに A レコードを使用してサブドメイン (www.contoso.com など) をマップするには、A レコードと TXT レコードが次の表のようになっている必要があります。

    レコード タイプ Host 説明
    A <subdomain> (www など) アプリの IP アドレスをコピーする」で取得した IP アドレス
    TXT asuid.<subdomain> (asuid.www など) 前に取得した検証 ID

    DNS レコード サブドメイン ページを示すスクリーンショット。

Note

一部のプロバイダー (GoDaddy など) では、別の [変更を保存] リンクを選択するまで DNS レコードの変更が反映されません。

4. アプリでマッピングを有効にする

DNS レコードを作成したら、アプリでマッピングを有効にします。

  1. Azure Portal のアプリ ページの左側に表示されるウィンドウで、 [カスタム ドメイン] を選択します。

    [カスタム ドメイン] メニューを示すスクリーンショット。

  2. [カスタム ドメインの追加] を選択します。

    [ホスト名の追加] 項目を示すスクリーンショット。

  3. 先ほど A レコードを構成した完全修飾ドメイン名 (contoso.com など) を入力します。

  4. [検証] を選択します。 [カスタム ドメインの追加] ページが開きます。

  5. [ホスト名レコード タイプ][A レコード (example.com)] に設定されていることを確認します。 [カスタム ドメインの追加] を選択します。

    アプリへの DNS 名の追加を示すスクリーンショット。

    アプリの [カスタム ドメイン] ページに新しいカスタム ドメインが反映されるまで時間がかかることがあります。 ブラウザーを最新の情報に更新して、データを更新してみてください。

    A レコードの追加を示すスクリーンショット。

    Note

    カスタム ドメインの警告ラベルは、まだ TLS/SSL 証明書にバインドされていないことを意味します。 ブラウザーからカスタム ドメインへの HTTPS 要求を実行すると、ブラウザーに応じてエラーまたは警告が表示されます。 TLS バインドを追加するには、「Azure App Service で TLS/SSL バインドを使用してカスタム DNS 名をセキュリティで保護する」を参照してください。

    手順を行っていなかったり、どこかで入力ミスがあったりした場合、ページの下部に検証エラーが表示されます。

    検証エラーを示すスクリーンショット。

5. ブラウザーでテストする

先ほど構成した DNS 名を参照します。

Azure アプリへのナビゲーションを示すスクリーンショット。

カスタム ドメインの URL を参照したときに HTTP 404 (見つかりません) エラーが発生した場合、最も一般的な原因は次の 2 つになります。

  • 構成されているカスタム ドメインに A レコードまたは CNAME レコードがない。 アプリでマッピングを有効にした後に DNS レコードを削除している可能性がある。 オンライン DNS 参照ツールを使用して DNS レコードが正しく構成されていることを確認します。
  • クライアントのブラウザーが、ドメインの古い IP アドレスをキャッシュしている。 キャッシュをクリアして、DNS 解決をもう一度テストします。 Windows コンピューターでは、ipconfig /flushdns でキャッシュをクリアします。

(省略可能) スクリプトで自動化する

Azure CLI または Azure PowerShell を使用すると、カスタム ドメインの管理をスクリプトで自動化できます。

次のコマンドでは、構成済みカスタム DNS 名を App Service アプリに追加します。

az webapp config hostname add \
    --webapp-name <app-name> \
    --resource-group <resource_group_name> \
    --hostname <fully_qualified_domain_name>

詳細については、「カスタム ドメインを Web アプリにマップする」を参照してください

次のステップ