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

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

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

Diagram of Traffic Manager deployment environment using CLI.

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 のチュートリアルをご覧ください。