クイック スタート:Azure CLI を使用して Web アプリケーションの高可用性を実現する Traffic Manager プロファイルを作成する

このクイック スタートでは、Web アプリケーションの高可用性を実現する Traffic Manager プロファイルの作成方法について説明します。

このクイック スタートでは、Web アプリケーションの 2 つのインスタンスを作成します。 これらは、それぞれ別の Azure リージョンで実行されています。 皆さんは、エンドポイントの優先度に基づいて Traffic Manager プロファイルを作成します。 このプロファイルにより、Web アプリケーションを実行しているプライマリ サイトにユーザー トラフィックを誘導します。 Traffic Manager では、Web アプリケーションが継続的に監視されます。 プライマリ サイトが利用できなくなった場合には、バックアップ サイトへの自動フェールオーバーが実行されます。

Traffic Manager デプロイ環境の図。

Azure サブスクリプションをお持ちでない場合は、開始する前に Azure 無料アカウントを作成してください。

前提条件

  • Azure Cloud Shell で Bash 環境を使用します。 詳細については、「Azure Cloud Shell の Bash のクイックスタート」を参照してください。

  • CLI リファレンス コマンドをローカルで実行する場合、Azure CLI をインストールします。 Windows または macOS で実行している場合は、Docker コンテナーで Azure CLI を実行することを検討してください。 詳細については、「Docker コンテナーで Azure CLI を実行する方法」を参照してください。

    • ローカル インストールを使用する場合は、az login コマンドを使用して Azure CLI にサインインします。 認証プロセスを完了するには、ターミナルに表示される手順に従います。 その他のサインイン オプションについては、Azure CLI でのサインインに関するページを参照してください。

    • 初回使用時にインストールを求められたら、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 リージョン ("米国東部" と "西ヨーロッパ") にデプロイされた、2 つの Web アプリケーション インスタンスが必要になります。 これらインスタンスは、それぞれ 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 アプリを作成する

"米国東部" と "西ヨーロッパ" の Azure リージョンの App Service プランで、az webapp create を使用して 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 を使用して、Traffic Manager プロファイルに 2 つの Web アプリを 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 の動作確認

  1. Web ブラウザーで、Traffic Manager プロファイルの DNS 名 (http://<relativednsname>.trafficmanager.net) を入力して、Web アプリの既定の Web サイトを表示します。

    Note

    このクイック スタート シナリオでは、すべての要求がプライマリ エンドポイントにルーティングされます。 これは優先度 1 に設定されています。

  2. 実際の Traffic Manager フェールオーバーを確認するには、az network traffic-manager endpoint update を使用してプライマリ サイトを無効にします。

    
     az network traffic-manager endpoint update \
         --name $mywebappeastus \
         --resource-group myResourceGroup \
         --profile-name $mytrafficmanagerprofile \
         --type azureEndpoints \
         --endpoint-status Disabled
    
    
  3. Traffic Manager プロファイルの DNS 名 (http://<relativednsname>.trafficmanager.net) をコピーして、新しい Web ブラウザー セッションで Web サイトを表示します。

  4. Web アプリがまだ使用できることを確認します。

リソースをクリーンアップする

完了したら、az group delete を使用してリソース グループ、Web アプリケーション、およびすべての関連リソースを削除します。


az group delete \
    --resource-group myResourceGroup

次のステップ

このクイック スタートでは、Web アプリケーションの高可用性を実現する Traffic Manager プロファイルを作成しました。 トラフィックのルーティングについて理解を深めるために、引き続き Traffic Manager のチュートリアルをご覧ください。