このクイック スタートでは、Web アプリケーションの高可用性を実現する Traffic Manager プロファイルの作成方法について説明します。
このクイック スタートでは、Web アプリケーションの 2 つのインスタンスを作成します。 これらは、それぞれ別の Azure リージョンで実行されています。 皆さんは、エンドポイントの優先度に基づいて Traffic Manager プロファイルを作成します。 このプロファイルにより、Web アプリケーションを実行しているプライマリ サイトにユーザー トラフィックを誘導します。 Traffic Manager では、Web アプリケーションが継続的に監視されます。 プライマリ サイトが利用できなくなった場合には、バックアップ サイトへの自動フェールオーバーが実行されます。
前提条件
Azure サブスクリプションをお持ちでない場合は、ここで無料アカウントを作成してください。
Azure Cloud Shell
Azure では、ブラウザーを介して使用できる対話型のシェル環境、Azure Cloud Shell がホストされています。 Cloud Shell で Bash または PowerShell を使用して、Azure サービスを操作できます。 ローカル環境に何もインストールしなくても、Cloud Shell にプレインストールされているコマンドを使用して、この記事のコードを実行できます。
Azure Cloud Shell を開始するには、以下のようにします。
| オプション | 例とリンク |
|---|---|
| コードまたはコマンド ブロックの右上隅にある [使ってみる] を選択します。 [使ってみる] を選択しても、コードまたはコマンドは Cloud Shell に自動的にはコピーされません。 |
|
| https://shell.azure.com に移動するか、[Cloud Shell を起動する] ボタンを選択して、ブラウザーで Cloud Shell を開きます。 |
|
| Azure portal の右上にあるメニュー バーの [Cloud Shell] ボタンを選択します。 |
|
Azure Cloud Shell を使用するには、以下のようにします。
Cloud Shell を開始します。
コード ブロック (またはコマンド ブロック) の [コピー] ボタンを選択し、コードまたはコマンドをコピーします。
Windows と Linux では Ctrl+Shift+V キーを選択し、macOS では Cmd+Shift+V キーを選択して、コードまたはコマンドを Cloud Shell セッションに貼り付けます。
Enter キーを選択して、コードまたはコマンドを実行します。
PowerShell をインストールしてローカルで使用する場合、この記事では Azure PowerShell モジュール バージョン 5.4.1 以降が必要になります。 インストールされているバージョンを確認するには、Get-Module -ListAvailable Az を実行します。 アップグレードする必要がある場合は、Azure PowerShell モジュールのインストールに関するページを参照してください。 PowerShell をローカルで実行している場合、Connect-AzAccount を実行して Azure との接続を作成することも必要です。
リソース グループを作成する
New-AzResourceGroup を使用してリソース グループを作成します。
# Variables
$Location1="EastUS"
# Create a Resource Group
New-AzResourceGroup -Name MyResourceGroup -Location $Location1
Traffic Manager プロファイルの作成
New-AzTrafficManagerProfile を使用して、エンドポイントの優先度に基づいてユーザー トラフィックを誘導する Traffic Manager プロファイルを作成します。
# Generates a random value
$Random=(New-Guid).ToString().Substring(0,8)
$mytrafficmanagerprofile="mytrafficmanagerprofile$Random"
New-AzTrafficManagerProfile `
-Name $mytrafficmanagerprofile `
-ResourceGroupName MyResourceGroup `
-TrafficRoutingMethod Priority `
-MonitorPath '/' `
-MonitorProtocol "HTTP" `
-RelativeDnsName $mytrafficmanagerprofile `
-Ttl 30 `
-MonitorPort 80
Web アプリを作成する
このクイック スタートでは、2 つの異なる Azure リージョン ("米国西部" と "米国東部") にデプロイされた、2 つの Web アプリケーション インスタンスが必要になります。 これらインスタンスは、それぞれ Traffic Manager のプライマリとフェールオーバーのエンドポイントとして機能します。
Web App Service プランを作成する
2 つの異なる Azure リージョンにデプロイする Web アプリケーションの 2 つのインスタンスに対して New-AzAppServicePlan を使用して Web App Service プランを作成します。
# Variables
$Location1="EastUS"
$Location2="WestEurope"
# Create an App service plan
New-AzAppservicePlan -Name "myAppServicePlanEastUS$Random" -ResourceGroupName MyResourceGroup -Location $Location1 -Tier Standard
New-AzAppservicePlan -Name "myAppServicePlanWestEurope$Random" -ResourceGroupName MyResourceGroup -Location $Location2 -Tier Standard
App Service プランで Web アプリを作成する
"米国東部" と "西ヨーロッパ" の Azure リージョンの App Service プランで、New-AzWebApp を使用して Web アプリケーションの 2 つのインスタンスを作成します。
$App1ResourceId=(New-AzWebApp -Name myWebAppEastUS -ResourceGroupName MyResourceGroup -Location $Location1 -AppServicePlan "myAppServicePlanEastUS").Id
$App2ResourceId=(New-AzWebApp -Name myWebAppWestEurope -ResourceGroupName MyResourceGroup -Location $Location2 -AppServicePlan "myAppServicePlanWestEurope").Id
Traffic Manager エンドポイントの追加
次のように、New-AzTrafficManagerEndpoint を使用して、Traffic Manager プロファイルに 2 つの Web アプリを Traffic Manager エンドポイントとして追加します。
- すべてのユーザー トラフィックをルーティングするプライマリ エンドポイントとして、"米国東部" Azure リージョンにある Web アプリを追加します。
- フェールオーバー エンドポイントとして "西ヨーロッパ" Azure リージョンにある Web アプリを追加します。 プライマリ エンドポイントが使用できない場合、トラフィックは自動的にフェールオーバー エンドポイントにルーティングされます。
New-AzTrafficManagerEndpoint -Name "myPrimaryEndpoint" `
-ResourceGroupName MyResourceGroup `
-ProfileName "$mytrafficmanagerprofile" `
-Type AzureEndpoints `
-TargetResourceId $App1ResourceId `
-EndpointStatus "Enabled"
New-AzTrafficManagerEndpoint -Name "myFailoverEndpoint" `
-ResourceGroupName MyResourceGroup `
-ProfileName "$mytrafficmanagerprofile" `
-Type AzureEndpoints `
-TargetResourceId $App2ResourceId `
-EndpointStatus "Enabled"
Traffic Manager プロファイルのテスト
このセクションでは、Traffic Manager プロファイルのドメイン名を確認します。 また、プライマリ エンドポイントを使用できないように構成します。 最後に、Web アプリがまだ使用できることを確認します。 これは、Traffic Manager によってトラフィックがフェールオーバー エンドポイントへと送信されるためです。
DNS 名の決定
Get-AzTrafficManagerProfile を使用して Traffic Manager プロファイルの DNS 名を決定します。
Get-AzTrafficManagerProfile -Name $mytrafficmanagerprofile `
-ResourceGroupName MyResourceGroup
RelativeDnsName 値をコピーします。 Traffic Manager プロファイルの DNS 名は、http://<relativednsname>.trafficmanager.net です。
Traffic Manager の動作確認
Web ブラウザーで、Traffic Manager プロファイルの DNS 名 (http://<relativednsname>.trafficmanager.net) を入力して、Web アプリの既定の Web サイトを表示します。
Note
このクイック スタート シナリオでは、すべての要求がプライマリ エンドポイントにルーティングされます。 これは優先度 1 に設定されています。
実際の Traffic Manager フェールオーバーを確認するには、Disable-AzTrafficManagerEndpoint を使用してプライマリ サイトを無効にします。
Disable-AzTrafficManagerEndpoint -Name "myPrimaryEndpoint" ` -Type AzureEndpoints ` -ProfileName $mytrafficmanagerprofile ` -ResourceGroupName MyResourceGroup ` -ForceTraffic Manager プロファイルの DNS 名 (http://<relativednsname>.trafficmanager.net) をコピーして、新しい Web ブラウザー セッションで Web サイトを表示します。
Web アプリがまだ使用できることを確認します。
リソースをクリーンアップする
完了したら、Remove-AzResourceGroup を使用してリソース グループ、Web アプリケーション、およびすべての関連リソースを削除します。
Remove-AzResourceGroup -Name MyResourceGroup
次のステップ
このクイック スタートでは、Web アプリケーションの高可用性を実現する Traffic Manager プロファイルを作成しました。 トラフィックのルーティングについて理解を深めるために、引き続き Traffic Manager のチュートリアルをご覧ください。