このクイック スタートでは、Web アプリケーションの高可用性を実現する Traffic Manager プロファイルの作成方法について説明します。
このクイック スタートでは、Web アプリケーションの 2 つのインスタンスを作成します。 これらは、それぞれ別の Azure リージョンで実行されています。 皆さんは、エンドポイントの優先度に基づいて Traffic Manager プロファイルを作成します。 このプロファイルにより、Web アプリケーションを実行しているプライマリ サイトにユーザー トラフィックを誘導します。 Traffic Manager では、Web アプリケーションが継続的に監視されます。 プライマリ サイトが利用できなくなった場合には、バックアップ サイトへの自動フェールオーバーが実行されます。
Azure アカウントをお持ちでない場合は、開始する前に無料アカウントを作成してください。
[前提条件]
Azure Cloud Shell で Bash 環境を使用します。 詳細については、「Azure Cloud Shell の概要」を参照してください。
CLI 参照コマンドをローカルで実行する場合は、Azure CLI を インストール します。 Windows または macOS で実行している場合は、Docker コンテナーで Azure CLI を実行することを検討してください。 詳細については、「Docker コンテナーで Azure CLI を実行する方法」を参照してください。
ローカル インストールを使用する場合は、az login コマンドを使用して Azure CLI にサインインします。 認証プロセスを完了するには、ターミナルに表示される手順に従います。 その他のサインイン オプションについては、「 Azure CLI を使用した Azure への認証」を参照してください。
メッセージが表示されたら、最初に使用するときに Azure CLI 拡張機能をインストールします。 拡張機能の詳細については、「Azure CLI で拡張機能を使用および管理する」を参照してください。
az version を実行し、インストールされているバージョンおよび依存ライブラリを検索します。 最新バージョンにアップグレードするには、az upgrade を実行します。
- この記事では、Azure CLI のバージョン 2.0.28 以降が必要です。 Azure Cloud Shell を使用している場合は、最新バージョンが既にインストールされています。
リソース グループを作成する
az group create を使用して、リソース グループを作成します。 Azure リソース グループとは、Azure リソースのデプロイと管理に使用する論理コンテナーです。
次の例では、myResourceGroup という名前のリソース グループを eastus に作成します。
az group create \
--name myResourceGroup \
--location eastus
Traffic Manager プロファイルの作成
エンドポイントの優先度に基づいてユーザー トラフィックを誘導する az network traffic-manager profile create を使用して Traffic Manager プロファイルを作成します。
mytrafficmanagerprofile='mytrafficmanagerprofile'$RANDOM
az network traffic-manager profile create \
--name $mytrafficmanagerprofile \
--resource-group myResourceGroup \
--routing-method Priority \
--path '/' \
--protocol "HTTP" \
--unique-dns-name $mytrafficmanagerprofile \
--ttl 30 \
--port 80
Web アプリを作成する
このクイック スタートでは、2 つの異なる Azure リージョン (米国東部 と 西ヨーロッパ) にデプロイされた Web アプリケーションの 2 つのインスタンスが必要です。 これらインスタンスは、それぞれ Traffic Manager のプライマリとフェールオーバーのエンドポイントとして機能します。
Web App Service プランを作成する
2 つの異なる Azure リージョンにデプロイする Web アプリケーションの 2 つのインスタンスに対して 、az appservice plan create を使用して Web App Service プランを作成します。
az appservice plan create \
--name myAppServicePlanEastUS \
--resource-group myResourceGroup \
--location eastus \
--sku S1
az appservice plan create \
--name myAppServicePlanWestEurope \
--resource-group myResourceGroup \
--location westeurope \
--sku S1
App Service プランで Web アプリを作成する
az webapp create を使用して、米国東部と西ヨーロッパの Azure リージョンの App Service プランで Web アプリケーションに 2 つのインスタンスを作成します。
mywebappeastus='myWebAppEastUS'$RANDOM
myWebAppWestEurope='myWebAppWestEurope'$RANDOM
az webapp create \
--name $mywebappeastus \
--plan myAppServicePlanEastUS \
--resource-group myResourceGroup
az webapp create \
--name $myWebAppWestEurope \
--plan myAppServicePlanWestEurope \
--resource-group myResourceGroup
Traffic Manager エンドポイントの追加
次のように、 az network traffic-manager endpoint create を使用して 2 つの Web Apps を Traffic Manager エンドポイントとして Traffic Manager プロファイルに追加します。
- Web アプリ ID を決定し、 米国東部 Azure リージョンにある Web アプリをプライマリ エンドポイントとして追加して、すべてのユーザー トラフィックをルーティングします。
- Web アプリ ID を決定し、 西ヨーロッパ の Azure リージョンにある Web アプリをフェールオーバー エンドポイントとして追加します。
プライマリ エンドポイントが使用できない場合、トラフィックは自動的にフェールオーバー エンドポイントにルーティングされます。
米国東部エンドポイント
App1ResourceId=$(az webapp show --name $mywebappeastus --resource-group myResourceGroup --query id --output tsv)
az network traffic-manager endpoint create \
--name $mywebappeastus \
--resource-group myResourceGroup \
--profile-name $mytrafficmanagerprofile \
--type azureEndpoints \
--target-resource-id $App1ResourceId \
--priority 1 \
--endpoint-status Enabled
西ヨーロッパのエンドポイント
App2ResourceId=$(az webapp show --name $myWebAppWestEurope --resource-group myResourceGroup --query id --output tsv)
az network traffic-manager endpoint create \
--name $myWebAppWestEurope \
--resource-group myResourceGroup \
--profile-name $mytrafficmanagerprofile \
--type azureEndpoints \
--target-resource-id $App2ResourceId \
--priority 2 \
--endpoint-status Enabled
Traffic Manager プロファイルをテストする
このセクションでは、Traffic Manager プロファイルのドメイン名を確認します。 また、プライマリ エンドポイントを使用できないように構成します。 最後に、Web アプリがまだ使用できることを確認します。 これは、Traffic Manager によってトラフィックがフェールオーバー エンドポイントへと送信されるためです。
次の例では、 <app1name_eastus> と <app2name_westeurope> を、前のセクションでリージョンごとに作成したアプリ名に置き換えます。 前のセクションで使用したプロファイル名で、<profile_name>を置き換えます。
DNS 名の決定
az network traffic-manager profile show を使用して、Traffic Manager プロファイルの DNS 名を決定します。
az network traffic-manager profile show \
--name $mytrafficmanagerprofile \
--resource-group myResourceGroup \
--query dnsConfig.fqdn
RelativeDnsName 値をコピーします。 Traffic Manager プロファイルの DNS 名は、http://<relativednsname>.trafficmanager.net です。
Traffic Manager の動作確認
Web ブラウザーで、Traffic Manager プロファイルの DNS 名 (http://<relativednsname>.trafficmanager.net) を入力して、Web アプリの既定の Web サイトを表示します。
注
このクイック スタート シナリオでは、すべての要求がプライマリ エンドポイントにルーティングされます。 これは優先度 1 に設定されています。
Traffic Manager のフェールオーバーの動作を表示するには、 az network traffic-manager エンドポイントの更新を使用してプライマリ サイトを無効にします。
az network traffic-manager endpoint update \ --name $mywebappeastus \ --resource-group myResourceGroup \ --profile-name $mytrafficmanagerprofile \ --type azureEndpoints \ --endpoint-status Disabled
Traffic Manager プロファイルの DNS 名 (http://<relativednsname>.trafficmanager.net) をコピーして、新しい Web ブラウザー セッションで Web サイトを表示します。
Web アプリがまだ使用できることを確認します。
リソースをクリーンアップする
完了したら、 az group delete を使用して、リソース グループ、Web アプリケーション、およびすべての関連リソースを削除します。
az group delete \
--resource-group myResourceGroup
次のステップ
このクイック スタートでは、Web アプリケーションの高可用性を実現する Traffic Manager プロファイルを作成しました。 トラフィックのルーティングについて理解を深めるために、引き続き Traffic Manager のチュートリアルをご覧ください。