サブスクリプション間フロントエンドを Azure Load Balancer にアタッチする
この記事では、1 つの Azure サブスクリプションにロード バランサーを作成し、別のサブスクリプションからフロントエンド IP アドレスをアタッチする方法について説明します。 ロード バランサー用のリソース グループを作成してから、フロントエンド IP アドレスを使ってロード バランサーを作成します。 また、バックエンド アドレス プール、正常性プローブ、ロード バランサー規則も作成します。
サブスクリプション間ロード バランサーは、ロード バランサーとは別のサブスクリプションに存在する仮想ネットワークを参照できます。 この機能を使用すると、あるサブスクリプションにロード バランサーを展開し、別のサブスクリプションの仮想ネットワークを参照できます。
前提条件
- 2 つの Azure サブスクリプション。 仮想ネットワーク用の 1 つのサブスクリプションと、ロード バランサー用のもう 1 つのサブスクリプション。
- アクティブなサブスクリプションが含まれる Azure アカウント。 無料でアカウントを作成する
- いずれかのサブスクリプションにデプロイされたパブリック IP アドレス。 この例のパブリック IP アドレスは、Azure サブスクリプション A にあります。
- 既存の Virtual Network。 いずれかのサブスクリプションにデプロイされています。 この例では、仮想ネットワークは Azure サブスクリプション B にあります。
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-AzPublicIpAddress
を使ってパブリック IP アドレスの情報を取得します。 環境の Azure サブスクリプション ID、リソース グループ名、仮想ネットワーク名が必要です。
# Sign in to Azure
Connect-AzAccount
# Set the subscription context to Azure Subscription A
Set-AzContext -Subscription '<Azure Subscription A>'
# Get the Public IP address information with Get-AzPublicIpAddress
$publicIp = Get-AzPublicIpAddress @pip
リソース グループを作成する
このセクションでは、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 リージョンを使用します。
ロード バランサーを作成する
このセクションでは、Azure サブスクリプション B でロード バランサーを作成します。フロントエンド IP アドレスを使用してロード バランサーを作成します。
New-AzLoadBalancer
を使ってロード バランサーを作成し、Add-AzLoadBalancerFrontendIpConfig
を使ってフロントエンド IP 構成を追加してから、New-AzLoadBalancerBackendAddressPool
でバックエンド アドレス プールを作成します。
# Create a load balancer
$tags = @{
'IsRemoteFrontend'= 'true'
}
$loadbalancer = @{
ResourceGroupName = 'myResourceGroupLB'
Name = 'myLoadBalancer'
Location = 'westus'
Sku = 'Standard'
Tag = $tags
}
$LB = New-AzLoadBalancer @loadbalancer
$LBinfo = @{
ResourceGroupName = 'myResourceGroupLB'
Name = 'myLoadBalancer'
}
$fip = @{
Name = 'Frontend Name'
PublicIpAddress = $publicip
}
$LB = $LB | Add-AzLoadBalancerFrontendIpConfig @fip
$LB = $LB | Set-AzLoadBalancer
## Create backend address pool configuration and place in variable.
$net = @{
Name = 'vnet name'
ResourceGroupName = 'myResourceGroupLB'
}
$vnet = Get-AzVirtualNetwork @net
$be = @{
ResourceGroupName= "myResourceGroupLB"
Name= "myBackEndPool"
LoadBalancerName= "myLoadBalancer"
VirtualNetwork=$vnet.id
SyncMode= "Automatic"
}
#create the backend pool
$backend = New-AzLoadBalancerBackendAddressPool @be
$LB = Get-AzLoadBalancer @LBinfo
正常性プローブとロード バランサー規則を作成する
バックエンド VM インスタンスの正常性を判断する正常性プローブと、着信トラフィック用のフロントエンド IP 構成、トラフィックを受信するためのバックエンド IP プール、必要な発信元ポートと宛先ポートを定義するロード バランサー規則を作成します。
Azure PowerShell では、バックエンド VM インスタンスの正常性を調べる正常性プローブを Add-AzLoadBalancerProbeConfig
を使用して作成します。 次に、着信トラフィック用のフロントエンド IP 構成、トラフィックを受信するためのバックエンド IP プール、必要な発信元ポートと宛先ポートを定義するロード バランサー規則を、Add-AzLoadBalancerRuleConfig
を使用して作成します。
## Create the health probe and place in variable. ##
$probe = @{
Name = 'myHealthProbe2'
Protocol = 'tcp'
Port = '80'
IntervalInSeconds = '360'
ProbeCount = '5'
}
## Create the load balancer rule and place in variable. ##
$lbrule = @{
Name = 'myHTTPRule2'
Protocol = 'tcp'
FrontendPort = '80'
BackendPort = '80'
IdleTimeoutInMinutes = '15'
FrontendIpConfiguration = $LB.FrontendIpConfigurations[0]
BackendAddressPool = $backend
}
## Set the load balancer resource. ##
$LB | Add-AzLoadBalancerProbeConfig @probe
$LB | Add-AzLoadBalancerRuleConfig @lbrule
$LB | Set-AzLoadBalancer
リソースをクリーンアップする
必要がなくなれば、Remove-AzResourceGroup コマンドを使用して、ロード バランサーと一緒に作成したリソース グループや、その他のリソースを削除できます。
Remove-AzResourceGroup -Name 'myResourceGroupLB'