Azure App Service へのアクティブな DNS 名の移行
この記事では、ダウンタイムを発生させずにアクティブな DNS 名を Azure App Service に移行する方法について説明します。
ライブ サイトとその DNS ドメイン名を App Service に移行するとき、その DNS 名は既にライブ トラフィックを配信しています。 移行中の DNS 解決のダウンタイムを回避するには、アクティブな DNS 名をプリエンプティブに App Service アプリにバインドします。
DNS 解決のダウンタイムの心配がない場合は、Azure App Service への既存のカスタム DNS 名のマッピングに関するページをご覧ください。
前提条件
これらの手順を完了するには、App Service のアプリが FREE レベルではないことを確認します。
1. ドメイン検証 ID を取得する
カスタム ドメインを事前にバインドする場合は、既存の DNS レコードに変更を加える前に、次に示す両方の作業を実行します。
- ドメイン プロバイダーにドメイン検証 ID を追加して、ドメインの所有権を確認します。
- App Service アプリでドメイン名を有効にします。
最終的に古いサイトから App Service アプリにカスタム DNS 名を移行する際、DNS 解決のダウンタイムは発生しません。
Azure portal で、App Service アプリの管理ページを開きます。
アプリ ページの左側のウィンドウで、 [カスタム ドメイン] を選択します。
次の手順のために、[カスタム ドメイン] ページの [カスタム ドメイン検証 ID] をコピーしておきます。
2. DNS レコードを作成する
ドメイン プロバイダーの Web サイトにサインインします。
Azure DNS を使用して自社のドメインの DNS レコードを管理したり、Azure App Service のカスタム DNS 名を構成したりできます。 詳細については、「チュートリアル:Azure DNS でドメインをホストする」を参照してください。
DNS レコードの管理ページを探します。
各ドメイン プロバイダーには独自の DNS レコード インターフェイスがあるので、プロバイダーのドキュメントを参照してください。 [ドメイン名] 、 [DNS] 、 [ネーム サーバー管理] というラベルが付いたサイトの領域を探します。
多くの場合、DNS レコードのページを見つけるには、アカウント情報を表示し、 [マイドメイン] などのリンクを探します。 そのページに移動し、 [ゾーン ファイル] 、 [DNS レコード] 、 [詳細構成] のような名前のリンクを探します。
以下のスクリーンショットは、DNS レコード ページの例です。
[追加] または適切なウィジェットを選択して、レコードを作成します。
Note
一部のプロバイダー (GoDaddy など) では、別の [変更を保存] リンクを選択するまで DNS レコードの変更が反映されません。
ドメイン検証用の TXT レコードを追加します。 TXT レコードのホスト名は、マップする DNS レコードの種類によって異なります。 次の表をご覧ください (通常、@
はルート ドメインを表します)。
DNS レコードの例 | TXT ホスト | TXT 値 |
---|---|---|
@ (ルート) | asuid | [カスタム ドメイン] 管理ページに表示されるドメイン検証 ID。 |
www (サブ) | asuid.www | [カスタム ドメイン] 管理ページに表示されるドメイン検証 ID。 |
* (ワイルドカード) | asuid | [カスタム ドメイン] 管理ページに表示されるドメイン検証 ID。 |
Note
ワイルドカード *
レコードでは、既存の CNAME レコードでサブドメインが検証されません。 サブドメインごとに TXT レコードを明示的に作成することが必要な場合があります。
3. アプリのドメインを有効にする
[カスタム ドメイン] ページに戻り、[カスタム ドメインの追加] を選択します。
[ドメイン プロバイダー] で、[その他のすべてのドメイン サービス] を選択してサードパーティのドメインを構成します。
[TLS/SSL 証明書] で、[後で証明書を追加する] を選択します。 ドメインの移行を完了した後、App Service マネージド証明書を追加できます。
[TLS/SSL の種類] で、目的のバインドの種類を選択します。
設定 説明 カスタム ドメイン TLS/SSL バインドを追加するドメイン名。 プライベート証明書のサムプリント バインドする証明書。 TLS/SSL の種類 - SNI SSL: 複数の SNI SSL バインディングを追加できます。 このオプションでは、複数の TLS/SSL 証明書を使用して、同一の IP アドレス上の複数のドメインを保護できます。 最新のブラウザーのほとんど (Inernet Explorer、Chrome、Firefox、Opera など) が SNI をサポートしています (詳細については、「Server Name Indication」を参照してください)。
- IP SSL: IP SSL バインディングを 1 つだけ追加できます。 このオプションでは、TLS/SSL 証明書を 1 つだけ使用して、専用のパブリック IP アドレスを保護します。 バインディングを構成した後は、「IP ベースの SSL のレコードの再マッピング」の手順に従います。
IP SSL は、Standard レベル以上でのみサポートされます。contoso.com
、www.contoso.com
、*.contoso.com
など、作成した TXT レコードに対応する、移行したい完全修飾ドメイン名を入力します。[検証] を選択します。 このダイアログには、カスタム ドメインがアプリで機能するために必要な 2 つのレコードが表示されますが、検証はドメイン検証 ID (TXT レコード) だけで通過できます。
[ドメイン検証] セクションに緑色のチェック マークが表示されている場合は、ドメイン検証 ID が正しく構成されています。 [追加] を選択します。 赤い X が表示されている場合は、ドメイン プロバイダーの Web サイトでエラーを修正します。
カスタム ドメインが一覧に追加されるはずです。 [バインドなし] の赤い X が表示される場合もあります。
[後で証明書を追加する] を選択したので、赤い X と [バインドなし] が表示されます。 ドメインのプライベート証明書を追加し、バインドを構成するまで継続します。
Note
カスタム ドメインの証明書バインドを構成しない限り、ブラウザーからドメインへのすべての HTTPS 要求では、ブラウザーに応じてエラーまたは警告を受け取ります。
4. アクティブな DNS 名の再マップ
最後の手順では、アクティブな DNS レコードが App Service をポイントするよう再マップします。 現時点では、DNS レコードはまだ古いサイトをポイントしています。
(A レコードのみ) App Service アプリの外部 IP アドレスが必要です。 [カスタム ドメイン] ページで、アプリの IP アドレスをコピーします。
ドメイン プロバイダーの DNS レコードのページに戻り、再マップする DNS レコードを選択します。
A レコードまたは CNAME レコードを、次の表の例に示すように再マップします。
FQDN の例 レコード タイプ Host 値 contoso.com (ルート) A @
「アプリの IP アドレスをコピーする」で取得した IP アドレス www.contoso.com (サブ) CNAME www
<app-name>.azurewebsites.net *.contoso.com (ワイルドカード) CNAME * <app-name>.azurewebsites.net 設定を保存します。
DNS の伝播が始まるとすぐに、DNS クエリが App Service アプリの解決を開始します。
よく寄せられる質問
ライブ ドメインを移行するときに、App Service マネージド証明書を追加できますか?
App Service マネージド証明書は、移行されたライブ ドメインに追加できますが、アクティブな DNS 名を再マップした後に限られます。 App Service マネージド証明書を追加するには、「無料のマネージド証明書を作成する」を参照してください。
別のアプリからドメインを移行する方法は?
Azure でのアクティブなカスタム ドメインは、サブスクリプション間または同じサブスクリプション内で移行できます。 ただし、ダウンタイムを伴わない移行にはソース アプリが必要であり、特定の時点で同じカスタム ドメインにターゲット アプリが割り当てられます。 そのため、2 つのアプリが同じ展開単位 (内部的には、Web スペースとして知られています) には展開されないようにする必要があります。 1 つのドメイン名は、展開単位ごとに 1 つのアプリにのみ割り当てできます。
FTP/S URL <deployment-unit>.ftp.azurewebsites.windows.net
のドメイン名を確認することで、アプリの展開単位がわかります。 ソース アプリとターゲット アプリ間で展開単位が必ず異なることを確認してください。 アプリの展開単位は、それ自体が含まれている App Service プランによって決まります。 プランを作成するときに Azure によってランダムに選択され、変更することはできません。 同じリソース グループと同じリージョンに 2 つのアプリを作成すると、Azure によって同じデプロイ ユニットに配置されます。 ただし、その逆がそうであることを確認する方法はありません。 つまり、異なる展開単位にプランを作成する唯一の方法は、別の展開単位を取得するまで、新しいリソース グループまたはリージョン内にプランを作成し続けることです。
次のステップ
カスタム TLS/SSL 証明書を App Service にバインドする方法を確認します。