チュートリアル:Azure PowerShell を使用してリージョン間 Azure ロード バランサーを作成する
リージョン間ロード バランサーを使うと、サービスが複数の Azure リージョンにわたってグローバルに利用可能になります。 1 つのリージョンで障害が発生した場合、トラフィックは次の最も近い正常なリージョンのロード バランサーにルーティングされます。
このチュートリアルでは、以下の内容を学習します。
- リージョン間ロード バランサーを作成します。
- ロード バランサー規則を作成します。
- 2 つのリージョン ロード バランサーを含むバックエンド プールを作成します。
- ロード バランサーをテストします。
Azure サブスクリプションがない場合は、開始する前に無料アカウントを作成してください。
前提条件
- Azure サブスクリプション。
- 2 つの異なる Azure リージョンにデプロイされたバックエンド プールを備えた 2 つの Standard SKU Azure ロード バランサー。
- バックエンド プール用にリージョンの Standard ロード バランサーと仮想マシンを作成する方法については、「クイックスタート: Azure PowerShell を使用して VM の負荷を分散するパブリック ロード バランサーを作成する」をご覧ください。
- 各リージョンのロード バランサーと仮想マシンの名前の末尾に、 -R1 と -R2 を追加します。
- バックエンド プール用にリージョンの Standard ロード バランサーと仮想マシンを作成する方法については、「クイックスタート: Azure PowerShell を使用して VM の負荷を分散するパブリック ロード バランサーを作成する」をご覧ください。
- ローカルにインストールされた Azure PowerShell または Azure Cloud Shell。
PowerShell をインストールしてローカルで使用する場合、この記事では Azure PowerShell モジュール バージョン 5.4.1 以降が必要になります。 インストールされているバージョンを確認するには、Get-Module -ListAvailable Az
を実行します。 アップグレードする必要がある場合は、Azure PowerShell モジュールのインストールに関するページを参照してください。 PowerShell をローカルで実行している場合、Connect-AzAccount
を実行して Azure との接続を作成することも必要です。
リージョン間ロード バランサーを作成する
リソース グループを作成する
Azure リソース グループとは、Azure リソースのデプロイと管理に使用する論理コンテナーです。
New-AzResourceGroup を使用して Azure リソース グループを作成します。
$rg = @{
Name = 'MyResourceGroupLB-CR'
Location = 'westus'
}
New-AzResourceGroup @rg
リージョン間ロード バランサーのリソースを作成する
このセクションでは、リージョン間ロード バランサーに必要なリソースを作成します。
グローバル Standard SKU パブリック IP は、リージョン間ロード バランサーのフロントエンドに使用されます。
New-AzPublicIpAddress を使用して、パブリック IP アドレスを作成します。
New-AzLoadBalancerFrontendIpConfig を使用して、フロントエンド IP 構成を作成します。
New-AzLoadBalancerBackendAddressPoolConfig を使用して、バックエンド アドレス プールを作成します。
Add-AzLoadBalancerRuleConfig を使用して、ロード バランサー規則を作成します。
New-AzLoadBalancer を使用して、リージョン間ロード バランサーを作成します。
`## Create global IP address for load balancer ##
$ip = @{
Name = 'myPublicIP-CR'
ResourceGroupName = 'MyResourceGroupLB-CR'
Location = 'westus'
Sku = 'Standard'
Tier = 'Global'
AllocationMethod = 'Static'
}
$publicIP = New-AzPublicIpAddress @ip
## Create frontend configuration ##
$fe = @{
Name = 'myFrontEnd-CR'
PublicIpAddress = $publicIP
}
$feip = New-AzLoadBalancerFrontendIpConfig @fe
## Create back-end address pool ##
$be = @{
Name = 'myBackEndPool-CR'
}
$bepool = New-AzLoadBalancerBackendAddressPoolConfig @be
## Create the load balancer rule ##
$rul = @{
Name = 'myHTTPRule-CR'
Protocol = 'tcp'
FrontendPort = '80'
BackendPort = '80'
FrontendIpConfiguration = $feip
BackendAddressPool = $bepool
}
$rule = New-AzLoadBalancerRuleConfig @rul
## Create cross-region load balancer resource ##
$lbp = @{
ResourceGroupName = 'myResourceGroupLB-CR'
Name = 'myLoadBalancer-CR'
Location = 'westus'
Sku = 'Standard'
Tier = 'Global'
FrontendIpConfiguration = $feip
BackendAddressPool = $bepool
LoadBalancingRule = $rule
}
$lb = New-AzLoadBalancer @lbp`
バックエンド プールを構成する
このセクションでは、リージョン間ロード バランサーのバックエンド プールに 2 つのリージョン Standard ロード バランサーを追加します。
重要
これらの手順を完了するには、2 つのリージョン ロード バランサーとバックエンド プールを自分のサブスクリプションにデプロイしておく必要があります。 詳細については、「 クイックスタート: Azure PowerShell を使用して VM の負荷を分散するパブリック ロード バランサーを作成する 」をご覧ください。
Get-AzLoadBalancer と Get-AzLoadBalancerFrontendIpConfig を使用して、リージョン ロード バランサーの情報を変数に格納します。
New-AzLoadBalancerBackendAddressConfig を使用して、ロード バランサーのバックエンド アドレス プール構成を作成します。
Set-AzLoadBalancerBackendAddressPool を使用して、リージョン ロード バランサーのフロントエンドをリージョン間バックエンド プールに追加します。
## Place the region one load balancer configuration in a variable ##
$region1 = @{
Name = 'myLoadBalancer-R1'
ResourceGroupName = 'CreatePubLBQS-rg-r1'
}
$R1 = Get-AzLoadBalancer @region1
## Place the region two load balancer configuration in a variable ##
$region2 = @{
Name = 'myLoadBalancer-R2'
ResourceGroupName = 'CreatePubLBQS-rg-r2'
}
$R2 = Get-AzLoadBalancer @region2
## Place the region one load balancer front-end configuration in a variable ##
$region1fe = @{
Name = 'MyFrontEnd-R1'
LoadBalancer = $R1
}
$R1FE = Get-AzLoadBalancerFrontendIpConfig @region1fe
## Place the region two load balancer front-end configuration in a variable ##
$region2fe = @{
Name = 'MyFrontEnd-R2'
LoadBalancer = $R2
}
$R2FE = Get-AzLoadBalancerFrontendIpConfig @region2fe
## Create the cross-region backend address pool configuration for region 1 ##
$region1ap = @{
Name = 'MyBackendPoolConfig-R1'
LoadBalancerFrontendIPConfigurationId = $R1FE.Id
}
$beaddressconfigR1 = New-AzLoadBalancerBackendAddressConfig @region1ap
## Create the cross-region backend address pool configuration for region 2 ##
$region2ap = @{
Name = 'MyBackendPoolConfig-R2'
LoadBalancerFrontendIPConfigurationId = $R2FE.Id
}
$beaddressconfigR2 = New-AzLoadBalancerBackendAddressConfig @region2ap
## Apply the backend address pool configuration for the cross-region load balancer ##
$bepoolcr = @{
ResourceGroupName = 'myResourceGroupLB-CR'
LoadBalancerName = 'myLoadBalancer-CR'
Name = 'myBackEndPool-CR'
LoadBalancerBackendAddress = $beaddressconfigR1,$beaddressconfigR2
}
Set-AzLoadBalancerBackendAddressPool @bepoolcr
ロード バランサーをテストする
このセクションでは、リージョン間ロード バランサーをテストします。 Web ブラウザーで、パブリック IP アドレスに接続します。 いずれかのリージョン ロード バランサーのバックエンド プールにある仮想マシンを停止し、フェールオーバーを観察します。
- Get-AzPublicIpAddress を使用して、ロード バランサーのパブリック IP アドレスを取得します。
$ip = @{
Name = 'myPublicIP-CR'
ResourceGroupName = 'myResourceGroupLB-CR'
}
Get-AzPublicIPAddress @ip | select IpAddress
そのパブリック IP アドレスをコピーし、ブラウザーのアドレス バーに貼り付けます。 IIS Web サーバーの既定のページがブラウザーに表示されます。
いずれかのリージョン ロード バランサーのバックエンド プールにある仮想マシンを停止します。
Web ブラウザーを最新の状態に更新し、別のリージョン ロード バランサーへの接続のフェールオーバーを観察します。
リソースをクリーンアップする
必要がなくなれば、Remove-AzResourceGroup コマンドを使用して、リソース グループやロード バランサー、その他のリソースを削除できます。
Remove-AzResourceGroup -Name 'myResourceGroupLB-CR'
次のステップ
このチュートリアルでは、次の作業を行いました。
- グローバル IP アドレスを作成しました。
- リージョン間ロード バランサーを作成しました。
- 負荷分散規則を作成しました。
- リージョン間ロード バランサーのバックエンド プールにリージョン ロード バランサーを追加しました。
- ロード バランサーをテストしました。
次の記事に進み、以下の方法を学習してください。