Azure Traffic Managerを使用することで、クライアントからの要求を 「優先順位」,「重み付け」,「パフォーマンス」などを加味して、トラフィックの振り先を制御することが可能です。
また、トラフィックの振り先 (エンドポイント) には、「App Server」, 「パブリック IP アドレス (Azure Load Balancer)」,「PaaS クラウド サービス」などを指定できます。
例えば、Azure Traffic Managerを使用することで、Azure 東日本 リージョン、Azure 西日本 リージョンの各リージョンに Azure App Service がデプロイされていて、通常は Azure 東日本 リージョン上のAzure App Serviceにアクセスさせるように設定し、何か問題が発生した場合に、Azure 西日本 リージョン上のAzure App Serviceにアクセスさせたり、クライアントから地理的に近いリージョンにアクセスさせるように制御することが可能です。
今回は、Azure Traffic Managerを使用して、「優先順位」でトラフィックの振り先を制御する、以下の構成をデプロイしてみたいと思います。
1) Azure 東日本、西日本で App Serviceを使用し、サンプル アプリケーションをデプロイします。
※ Traffic Managerが使用できる Azure App Service の価格レベルは 「S1」以上であるため、「S1」以上の価格レベルを選択してデプロイします。
2) Traffic Manager プロファイル - 「+ 作成」 を押下します。
3) 「ルーティング方法」:「優先度」を選択後、「作成」を押下します。
4) 「エンドポイント」-「+ 追加」を押下します。
5) 「ターゲット リソースの種類」:「App Service」, 「ターゲット リソース」:「東日本リージョンにデプロイした Azure App Service」, 「優先度」:「1」を入力し、「OK」を押下します。
6) 「ターゲット リソースの種類」:「App Service」, 「ターゲット リソース」:「西日本リージョンにデプロイした Azure App Service」, 「優先度」:「100」を入力し、「OK」を押下します。
7) Azure エンドポイントのモニターの状態が「オンライン」になっていることを確認します。
8) Traffic Manager プロファイルのDNS名 (今回は 「h t t p://traffic****.trafficmanager.net」) にアクセスします。
※ 優先度を「1」に設定した 東日本リージョンにデプロイした Azure App Service にアクセスが行われます。
9) 東日本リージョンにデプロイした Azure App Serviceに紐づけた Azure エンドポイントの優先度を「200」に変更します。
10) 再度 Traffic Manager プロファイルのDNS名 (「h t t p://traffic****.trafficmanager.net」) にアクセスします。
※ 優先度が「100」と、西日本リージョンにデプロイした Azure App Serviceの優先度のほうが高くなり、西日本リージョンにデプロイした Azure App Serviceにアクセスが行われます。なお、優先度の高い Azure App Service への正常性チェックで正常性が確認できない場合は、フェールオーバーが発生し、優先度の低い Azure App Service へのアクセスが行われます。
※ フェールオーバーの時間は,「TTL + 再試行回数 * プローブの間隔」で求めることができます。
Traffic Manager 正常性チェック、フェールオーバー構成の詳細については Azure DNS と Traffic Manager を使用したディザスター リカバリー | Microsoft Docs を参照
今回は、Traffic Manager プロファイルのDNS名 「h t t p://traffic***.trafficmanager.net」と 「http」を使用していますが、「https」通信をするためには、Azure App Service側でカスタム ドメイン設定、SSL 設定を実施する必要があります。
カスタム ドメイン、SSL証明書 共に、Azure App Serviceで購入可能ですが、購入できるドメインが「com、net、co.uk、org、nl、in、biz、org.uk、co.in」に限定されているため、「co.jp」などのドメインを購入したい場合は、別途「お名前.com」などから購入することになるかと思います。
Azure App Service でカスタムドメインの購入、設定については カスタムドメイン名を購入する | Microsoft Docs を参照