本稿では、Azure ロードバランサー (Load Balancer) のバックエンド プールに仮想マシン (VM) を追加したり、バックエンド プールから切り離す Powershell コマンドを紹介します1。
事前知識
- Azure Load Balancer のバックエンド プールで管理している実体は、VM ではなく NIC の IP 構成 (ipconfig)
- 取り外しの際は気にしなくてもいいけど、どのような VM (ipconfig) が追加出来るかは Azure Load Balancer に依存してるので注意
Azure Load Balancer の概要 - Azure Load Balancer | Microsoft Docs
- サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
- 可用性セットについては次のような文献が大変参考になります
VM (ipconfig) の追加
# LB を取得
$lb = Get-AzLoadBalancer –Name "<LB 名>" -ResourceGroupName "<LB のリソース グループ名>"
# バックエンド プールを取得
$backend = Get-AzLoadBalancerBackendAddressPoolConfig -Name "<バックエンド プール名>" -LoadBalancer $lb
# 関連付ける VM の NIC を取得
$nic = Get-AzNetworkInterface -Name "<NIC 名>" -ResourceGroupName "<NIC のリソース グループ名>"
# 指定の IP 構成をバックエンド プールに配置する
($nic.IpConfigurations | where Name -eq "<IP 構成名>").LoadBalancerBackendAddressPools = $backend
# NIC を更新
Set-AzNetworkInterface -NetworkInterface $nic
VM (ipconfig) の切り離し
Azure ロードバランサーのオフライン機能について - Qiita の「2. バックエンドプールから外す」を、Powershell でやる場合の方法です。。
# NIC を取得
$nic = Get-AzNetworkInterface –Name "<NIC 名>" -ResourceGroupname "<NIC のリソースグループ名>"
# 特定の IP 構成をバックエンド プールから切り離す
($nic.IpConfigurations | where Name -eq "<IP 構成名>").LoadBalancerBackendAddressPools = $Null
# NIC を更新
Set-AzNetworkInterface -NetworkInterface $nic
参考文献
- Load Balancer | Microsoft Docs
- Azure ロードバランサーのオフライン機能について - Qiita
- Azureのロードバランサ事情 - ロードバランサの中ってどうなっているの? - - Qiita
- Ananta: Azure を支えるステートフル L4 ロードバランサー - Qiita
-
ほぼ同じ内容が公式ドキュメントにかかれてますが、それを見やすくまとめました。 PowerShell を使用して Azure の内部ロード バランサーを作成する - Azure Load Balancer | Microsoft Docs ↩