次の方法で共有


サブスクリプション間のバックエンドを Azure Load Balancer にアタッチする

この記事では、サブスクリプション間バックエンド プールを作成し、サブスクリプション間ネットワーク インターフェイスをロード バランサーのバックエンド プールにアタッチすることで、サブスクリプション間バックエンドを Azure Load Balancer にアタッチする方法について説明します。

サブスクリプション間ロード バランサーは、ロード バランサーとは別のサブスクリプションに存在する仮想ネットワークを参照できます。 この機能を使用すると、あるサブスクリプションにロード バランサーを展開し、別のサブスクリプションの仮想ネットワークを参照できます。

前提条件

  • 2 つの Azure サブスクリプション。
  • アクティブなサブスクリプションが含まれる Azure アカウント。 無料でアカウントを作成する
  • 既存の仮想ネットワーク。 いずれかのサブスクリプションにデプロイされています。 この例では、仮想ネットワークは Azure サブスクリプション A にあります。
  • ローカルにインストールされた 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-AzVirtualNetwork を使用して仮想ネットワークの情報を取得します。 ご使用の環境の 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
$net = @{
    Name = '<vnet name>'
    ResourceGroupName = '<Resource Group Subscription A>'
}
$vnet = Get-AzVirtualNetwork @net

リソース グループを作成する

このセクションでは、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 アドレスを使用してロード バランサーを作成します。

Azure PowerShell では次のことを行います。

# Create a load balancer
$loadbalancer = @{
    ResourceGroupName = 'resource group B'
    Name = 'LB Name'
    Location = 'eastus'
    Sku = 'Standard'
}
$LB = New-AzLoadBalancer @loadbalancer

$LBinfo = @{
    ResourceGroupName = 'resource group B'
    Name = 'my-lb'
}

# Create a public IP address
$publicip = @{
    Name = 'IP Address Name'
    ResourceGroupName = 'resource group B'
    Location = 'eastus'
    Sku = 'Standard'
    AllocationMethod = 'static'
    Zone = 1,2,3
}
New-AzPublicIpAddress @publicip


# Place public IP created in previous steps into variable
$pip = @{
    Name = 'IP Address Name'
    ResourceGroupName = 'resource group B'
}
$publicIp = Get-AzPublicIpAddress @pip

## Create load balancer frontend configuration and place in variable
$fip = @{
    Name = 'Frontend Name'
    PublicIpAddress = $publicip
}
$LB = $LB | Add-AzLoadBalancerFrontendIpConfig @fip
$LB = $LB | Set-AzLoadBalancer

# Create backend address pool configuration and place in variable. ##

$be = @{
    ResourceGroupName= "resource group B"
    Name= "myBackEndPool"
    LoadBalancerName= "LB Name"
    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

ロード バランサーにネットワーク インターフェイス カードをアタッチする

このセクションでは、Azure サブスクリプション A のネットワーク インターフェイス カード (NIC) を Azure サブスクリプション B のロード バランサーにアタッチします。New-AzNetworkInterface を使用してネットワーク インターフェイスを作成し、New-AzNetworkInterfaceIpConfigを使用してネットワーク インターフェイス カードの IP 構成を作成します。

Note

ネットワーク インターフェイス カード (NIC) は、ロード バランサーのバックエンド プールと同じ VNet 内にある必要があります。


# Set the subscription context to **Azure Subscription A**
Set-AzContext -Subscription 'Sub A' 

# Create a network interface card
$IP1 = @{
    Name = 'MyIpConfig'
    subnetID= $vnet.subnets[0].Id
    PrivateIpAddressVersion = 'IPv4'
-LoadBalancerBackendAddressPool $lb-be-info
}
$IP1Config = New-AzNetworkInterfaceIpConfig @IP1 -Primary
$nic = @{
    Name = 'MyNic'
    ResourceGroupName = '<Resoure Group Subscription A>'
    Location = 'eastus'
    IpConfiguration = $IP1Config
}
New-AzNetworkInterface @nic

リソースをクリーンアップする

必要がなくなれば、Remove-AzResourceGroup コマンドを使用して、ロード バランサーと一緒に作成したリソース グループや、その他のリソースを削除できます。

Remove-AzResourceGroup -Name 'myResourceGroupLB'

次のステップ