サブスクリプション間バックエンドを使用してグローバル ロード バランサーを作成する
この記事では、サブスクリプション間バックエンドを使用してグローバル ロード バランサーを作成する方法について説明します。
サブスクリプション間ロード バランサーは、ロード バランサーとは別のサブスクリプションに存在する仮想ネットワークを参照できます。 この機能を使用すると、あるサブスクリプションにロード バランサーを展開し、別のサブスクリプションの仮想ネットワークを参照できます。
前提条件
- 2 つの Azure サブスクリプション。
- アクティブなサブスクリプションが含まれる Azure アカウント。 無料でアカウントを作成する
- Azure サブスクリプション A にデプロイされたグローバル パブリック IP アドレス。
- Azure サブスクリプション B にデプロイされたリージョン ロード バランサー。
- ローカルにインストールされた Azure PowerShell または Azure Cloud Shell。
PowerShell をインストールしてローカルで使用する場合、この記事では Azure PowerShell モジュール バージョン 5.4.1 以降が必要になります。 インストールされているバージョンを確認するには、Get-Module -ListAvailable Az
を実行します。 アップグレードする必要がある場合は、Azure PowerShell モジュールのインストールに関するページを参照してください。 PowerShell をローカルで実行している場合、Connect-AzAccount
を実行して Azure との接続を作成することも必要です。
重要
すべてのコード サンプルでは、例の名前とプレースホルダーが使用されます。 これらは必ず、ご使用の環境の値に置き換えてください。
置換が必要な値は、<example value>
のように山かっこで囲まれています。
Azure へのサインイン
Azure PowerShell では、Connect-AzAccount
を使用して Azure にサインインし、Set-AzContext
を使用してサブスクリプション コンテキストを Azure サブスクリプション A に変更します。次に、Get-AzLoadBalancer
と `Get-AzLoadBalancerFrontendIpConfig を使用して、リージョン ロード バランサーの情報を取得します。 ご使用の環境の Azure サブスクリプション ID、リソース グループ名および仮想ネットワーク名が必要です。
# Sign in to Azure
Connect-AzAccount
# Set the subscription context to Azure Subscription A
Set-AzContext -Subscription '<Azure Subscription A>'
# Get the Virtual Network information with Get-AzVirtualNetwork
$rlb= @{
Name = '<regional load balancer name>'
ResourceGroupName = '<Resource Group Subscription A>'
}
$RLB-info = Get-AzLoadBalancer @rlb
$RLBFE = Get-AzLoadBalancerFrontendIpConfig @ RLB-info
リソース グループを作成する
このセクションでは、Azure サブスクリプション B 内にリソース グループを作成します。このリソース グループは、ロード バランサーに関連付けられているすべてのリソース用です。
Azure PowerShell では、Set-AzContext
を使用してサブスクリプション コンテキストを切り替え、New-AzResourceGroup
を使用してリソース グループを作成します。
# Set the subscription context to Azure Subscription B
Set-AzContext -Subscription '<Azure Subscription B>'
# Create a resource group
$rg = @{
Name = 'myResourceGroupLB'
Location = 'westus'
}
New-AzResourceGroup @rg
Note
ロード バランサー用のリソース グループを作成するときは、Azure サブスクリプション A 内の仮想ネットワークと同じ Azure リージョンを使用します。
グローバル ロード バランサーの作成
このセクションでは、リージョン間ロード バランサーに必要なリソースを作成します。 グローバル Standard SKU パブリック IP は、リージョン間ロード バランサーのフロントエンドに使用されます。
Azure PowerShell では次のことを行います。
New-AzPublicIpAddress
を使用してパブリック IP アドレスを作成する。New-AzLoadBalancerFrontendIpConfig
を使用してフロントエンド IP 構成を作成する。New-AzLoadBalancerBackendAddressPoolConfig
を使用してバックエンド アドレス プールを作成する。Add-AzLoadBalancerRuleConfig
を使用してロード バランサー規則を作成する。New-AzLoadBalancer
を使用してグローバル ロード バランサーを作成する。
# Create global IP address for load balancer
$ip = @{
Name = 'myPublicIP-CR'
ResourceGroupName = ‘ Resource Group B’
Location = 'eastus2'
Sku = 'Standard'
Tier = 'Global'
AllocationMethod = 'Static'
}
$publicIP = New-AzPublicIpAddress @ip
# Create frontend configuration
$fe = @{
Name = 'myFrontEnd-CR'
PublicIpAddress = $publicIP
}
$feip = New-AzLoadBalancerFrontendIpConfig @fe
# Create backend 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 = ‘ Resource Group B’
Name = 'myLoadBalancer-CR'
Location = ‘eastus2’
Sku = 'Standard'
Tier = 'Global'
FrontendIpConfiguration = $feip
BackendAddressPool = $bepool
LoadBalancingRule = $rule
}
$lb = New-AzLoadBalancer @lbp
リージョン間ロード バランサーにロード バランサー フロントエンドを追加する
このセクションでは、リージョン間ロード バランサーにフロントエンド IP 構成を追加します。
Azure PowerShell では次のことを行います。
Set-AzLoadBalancerFrontendIpConfig
を使用して、リージョン間バックエンド プールにリージョン ロード バランサー フロントエンドを追加する。New-AzLoadBalancerBackendAddressConfig
を使用して、ロード バランサーのバックエンド アドレス プール構成を作成する。
## Create the cross-region backend address pool configuration for region 2 ##
$RLB-BAF = @{
Name = 'MyBackendPoolConfig-RLB'
LoadBalancerFrontendIPConfigurationId = $RLBFE.Id
}
$beaddressconfigRLB = New-AzLoadBalancerBackendAddressConfig @region2ap
## Apply the backend address pool configuration for the cross-region load balancer ##
$bepoolcr = @{
ResourceGroupName = ‘ Resource Group B’
LoadBalancerName = 'myLoadBalancer-CR'
Name = 'myBackEndPool-CR'
LoadBalancerBackendAddress = $beaddressconfigRLB
}
Set-AzLoadBalancerBackendAddressPool @bepoolcr