Azure CLI を使用して内部ロード バランサーと 2 つの仮想マシンを作成することにより、Azure Load Balancer の使用を開始します。 その他のリソースには、Azure Bastion、NAT Gateway、仮想ネットワーク、必要なサブネットなどがあります。
Azure アカウントをお持ちでない場合は、開始する前に無料アカウントを作成してください。
前提条件
Azure Cloud Shell で Bash 環境を使用します。 詳細については、「Azure Cloud Shell の概要」を参照してください。
CLI リファレンス コマンドをローカルで実行する場合、Azure CLI をインストールします。 Windows または macOS で実行している場合は、Docker コンテナーで Azure CLI を実行することを検討してください。 詳細については、「Docker コンテナーで Azure CLI を実行する方法」を参照してください。
ローカル インストールを使用する場合は、az login コマンドを使用して Azure CLI にサインインします。 認証プロセスを完了するには、ターミナルに表示される手順に従います。 その他のサインイン オプションについては、「 Azure CLI を使用した Azure への認証」を参照してください。
初回使用時にインストールを求められたら、Azure CLI 拡張機能をインストールします。 拡張機能の詳細については、「Azure CLI で拡張機能を使用および管理する」を参照してください。
az version を実行し、インストールされているバージョンおよび依存ライブラリを検索します。 最新バージョンにアップグレードするには、az upgrade を実行します。
- このクイックスタートには、Azure CLI のバージョン 2.0.28 以降が必要です。 Azure Cloud Shell を使用している場合は、最新バージョンが既にインストールされています。
リソース グループを作成する
Azure リソース グループとは、Azure リソースのデプロイと管理に使用する論理コンテナーです。
az group create を使用して、リソース グループを作成します。
az group create \
--name load-balancer-cli-rg \
--location westus2
内部ロード バランサーを作成すると、仮想ネットワークがロード バランサー用のネットワークとして構成されます。
仮想ネットワークの作成
VM をデプロイしてロード バランサーをテストする前に、サポート用の仮想ネットワークとサブネットを作成します。 この仮想ネットワークとサブネットには、この記事で後ほどデプロイされるリソースが含まれます。
az network vnet create を使用して、仮想ネットワークを作成します。
az network vnet create \
--resource-group load-balancer-cli-rg \
--location westus2 \
--name lb-vnet \
--address-prefixes 10.1.0.0/16 \
--subnet-name backend-subnet \
--subnet-prefixes 10.1.0.0/24
Azure Bastion ホストを作成する
この例では、Azure Bastion ホストを作成します。 Azure Bastion ホストは、仮想マシンを安全に管理し、ロード バランサーのデプロイをテストするために、この記事の後半で使用します。
重要
時間単位の料金は、送信データの使用量に関係なく、Bastion がデプロイされた時点から発生します。 詳しくは、「価格」および「SKU」を参照してください。 チュートリアルまたはテストの一環として Bastion をデプロイしている場合は、使用終了後にこのリソースを削除することをお勧めします。
bastion パブリック IP アドレスを作成する
az network public-ip create を使用して、Azure Bastion ホストのパブリック IP アドレスを作成します。
az network public-ip create \
--resource-group load-balancer-cli-rg \
--name lb-vnet-bastion-ip \
--sku Standard \
--zone 1 2 3
bastion サブネットを作成する
az network vnet subnet create を使用して、サブネットを作成します。
az network vnet subnet create \
--resource-group load-balancer-cli-rg \
--name AzureBastionSubnet \
--vnet-name lb-vnet \
--address-prefixes 10.1.1.0/27
bastion ホストを作成する
az network bastion create を使用して、ホストを作成します。
az config set extension.use_dynamic_install=yes_without_prompt
az network bastion create \
--resource-group load-balancer-cli-rg \
--name lb-vnet-bastion \
--public-ip-address lb-vnet-bastion-ip \
--vnet-name lb-vnet \
--location westus2 \
--sku Basic \
--only-show-errors \
--no-wait
Azure Bastion ホストがデプロイされるまでに数分かかる場合があります。
ロード バランサーを作成する
このセクションでは、ロード バランサーの以下のコンポーネントを作成および構成する方法について説明します。
ロード バランサーの着信ネットワーク トラフィックを受け取るフロントエンド IP プール
フロントエンド プールから負荷分散されたネットワーク トラフィックが送信されるバックエンド IP プール
バックエンド VM インスタンスの正常性を判断する正常性プローブ
VM に対するトラフィックの均等配置を定義するロード バランサー規則
ロード バランサーのリソースを作成する
az network lb create を使って、内部ロード バランサーを作成します。
az network lb create \
--resource-group load-balancer-cli-rg \
--name load-balancer \
--sku Standard \
--vnet-name lb-vnet \
--subnet backend-subnet \
--backend-pool-name lb-backend-pool \
--frontend-ip-name lb-frontend
ヘルス プローブを作成する
正常性プローブは、すべての仮想マシン インスタンスを調べて、ネットワーク トラ フィックを送信できるかどうかを確認します。
プローブ チェックが失敗した仮想マシンは、ロード バランサーから削除されます。 障害が解決されると、仮想マシンがロード バランサーに再び追加されます。
正常性プローブは、az network lb probe create で作成します。
az network lb probe create \
--resource-group load-balancer-cli-rg \
--lb-name load-balancer \
--name lb-health-probe \
--protocol tcp \
--port 80
ロード バランサー規則の作成
ロード バランサー規則は、以下のものを定義します。
着信トラフィック用のフロントエンド IP 構成
トラフィックを受信するためのバックエンド IP プール
必要な送信元ポートと宛先ポート
ロード バランサー規則は、az network lb rule create で作成します。
az network lb rule create \
--resource-group load-balancer-cli-rg \
--lb-name load-balancer \
--name lb-HTTP-rule \
--protocol tcp \
--frontend-port 80 \
--backend-port 80 \
--frontend-ip-name lb-frontend \
--backend-pool-name lb-backend-pool \
--probe-name lb-health-probe \
--idle-timeout 15 \
--enable-tcp-reset true
ネットワーク セキュリティ グループの作成
Standard ロード バランサーの場合、バックエンド プールが扱う VM には、ネットワーク セキュリティ グループに属しているネットワーク インターフェイスが必要です。
ネットワーク セキュリティ グループを作成するには、az network nsg create を使用します。
az network nsg create \
--resource-group load-balancer-cli-rg \
--name lb-NSG
ネットワーク セキュリティ グループ規則を作成する
ネットワーク セキュリティ グループの規則を作成するには、az network nsg rule create を使用します。
az network nsg rule create \
--resource-group load-balancer-cli-rg \
--nsg-name lb-NSG \
--name lb-NSG-Rule \
--protocol '*' \
--direction inbound \
--source-address-prefix '*' \
--source-port-range '*' \
--destination-address-prefix '*' \
--destination-port-range 80 \
--access allow \
--priority 200
バックエンド サーバーの作成
このセクションでは、以下を作成します。
仮想マシンに使用する 2 つのネットワーク インターフェイス
ロード バランサーのサーバーとして使用する 2 つの仮想マシン
仮想マシンのネットワーク インターフェイスを作成する
az network nic create を使用して、2 つのネットワーク インターフェイスを作成します。
array=(lb-nic-vm1 lb-nic-vm2)
for vmnic in "${array[@]}"
do
az network nic create \
--resource-group load-balancer-cli-rg \
--name $vmnic \
--vnet-name lb-vnet \
--subnet backend-subnet \
--network-security-group lb-NSG
done
仮想マシンの作成
az vm create で、仮想マシンを作成します。
array=(1 2)
for n in "${array[@]}"
do
az vm create \
--resource-group load-balancer-cli-rg \
--name lb-VM$n \
--nics lb-nic-vm$n \
--image win2022datacenter \
--admin-username azureuser \
--zone $n \
--no-wait
done
VM がデプロイされるまでに、数分かかる場合があります。
注
パブリック IP が割り当てられていない VM、または内部の Basic Azure Load Balancer のバックエンド プール内にある VM に対しては、Azure によって既定のアウトバウンド アクセス IP が提供されます。 デフォルト送信アクセス IP メカニズムは、構成できないアウトバウンド IP アドレスを提供します。
次のいずれかのイベントが発生すると、既定のアウトバウンド アクセス IP は無効になります。
- パブリック IP アドレスが VM に割り当てられます。
- アウトバウンド規則の有無にかかわらず、VM は標準ロード バランサーのバックエンド プール内に配置されます。
- Azure NAT Gateway リソースが VM のサブネットに割り当てられている。
フレキシブル オーケストレーション モードの仮想マシン スケール セットによって作成された VM には、既定のアウトバウンド アクセスがありません。
Azure のアウトバウンド接続の詳細については、「Azure での既定の送信アクセス」および「送信接続での送信元ネットワーク アドレス変換 (SNAT)を使用する」を参照してください。
仮想マシンをバックエンド プールに追加する
az network nic ip-config address-pool add を使用して、次のように仮想マシンをバックエンド プールに追加します。
array=(vm1 vm2)
for vm in "${array[@]}"
do
az network nic ip-config address-pool add \
--address-pool lb-backend-pool \
--ip-config-name ipconfig1 \
--nic-name lb-nic-$vm \
--resource-group load-balancer-cli-rg \
--lb-name load-balancer
done
NAT ゲートウェイの作成
バックエンド プール内のリソースに送信インターネット アクセスを提供するには、NAT ゲートウェイを作成します。
パブリック IP を作成する
az network public-ip create を使用して、アウトバウンド接続用の 1 つの IP を作成します。
az network public-ip create \
--resource-group load-balancer-cli-rg \
--name nat-gw-public-ip \
--sku Standard \
--zone 1 2 3
NAT ゲートウェイ リソースの作成
az network nat gateway create を使用して、NAT ゲートウェイ リソースを作成します。 前の手順で作成したパブリック IP は、NAT ゲートウェイに関連付けられている。
az network nat gateway create \
--resource-group load-balancer-cli-rg \
--name lb-nat-gateway \
--public-ip-addresses nat-gw-public-ip \
--idle-timeout 10
NAT ゲートウェイをサブネットに関連付ける
az network vnet subnet update を使って、仮想ネットワーク内の送信元サブネットを、特定の NAT ゲートウェイ リソースを使うように構成します。
az network vnet subnet update \
--resource-group load-balancer-cli-rg \
--vnet-name lb-vnet \
--name backend-subnet \
--nat-gateway lb-nat-gateway
テスト用の仮想マシンを作成する
az network nic create を使用して、ネットワーク インターフェイスを作成します。
az network nic create \
--resource-group load-balancer-cli-rg \
--name lb-nic-testvm \
--vnet-name lb-vnet \
--subnet backend-subnet \
--network-security-group lb-NSG
az vm create を使用して、仮想マシンを作成します。
az vm create \
--resource-group load-balancer-cli-rg \
--name lb-TestVM \
--nics lb-nic-testvm \
--image Win2019Datacenter \
--admin-username azureuser \
--no-wait
仮想マシンがデプロイされるまでに、数分かかる場合があります。
IIS のインストール
バックエンド仮想マシンに IIS をインストールし、既定の Web サイトをコンピューター名に設定するには、az vm extension set を使用します。
array=(lb-VM1 lb-VM2)
for vm in "${array[@]}"
do
az vm extension set \
--publisher Microsoft.Compute \
--version 1.8 \
--name CustomScriptExtension \
--vm-name $vm \
--resource-group load-balancer-cli-rg \
--settings '{"commandToExecute":"powershell Add-WindowsFeature Web-Server; powershell Add-Content -Path \"C:\\inetpub\\wwwroot\\Default.htm\" -Value $($env:computername)"}'
done
ロード バランサーをテストする
Azure portal にサインインします。
[概要] ページで、ロード バランサーのプライベート IP アドレスを見つけます。 左側のメニューで、 すべてのサービス>すべてのリソース>load-balancer を選択します。
ロード バランサーの概要で、[プライベート IP アドレス] の横にあるアドレスをコピーします。 プライベート IP アドレスが表示されない場合は、[詳細表示] を選択します。
左側のメニューで、 [すべてのサービス]>[すべてのリソース] を選択します。 リソースの一覧から、 load-balancer-cli-rg リソース グループで lb-TestVM を選択します。
[概要] ページで、 [接続]>[Bastion] を選択します。
VM の作成時に入力したユーザー名とパスワードを入力します。
lb-TestVM で、Internet Explorerを開きます。
前の手順の IP アドレスをブラウザーのアドレス バーに入力します。 IIS Web サーバーの既定のページがブラウザーに表示されます。
リソースをクリーンアップする
リソースが不要になったら、az group delete コマンドを使用して、リソース グループ、ロード バランサー、およびすべての関連リソースを削除します。
az group delete \
--name load-balancer-cli-rg
次のステップ
このクイック スタートでは次のようにします。
内部ロード バランサーを作成しました
2 つの仮想マシンをアタッチしました
ロード バランサーのトラフィック ルールと正常性プローブを設定しました。
ロード バランサーをテストしました
Azure Load Balancer についてさらに学習するには、次の記事に進んでください。