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 を実行します。
- このクイック スタートには、バージョン 2.0.28 以降のAzure CLIが必要です。 Azure Cloud Shell を使用している場合は、最新バージョンが既にインストールされています。
リソース グループを作成する
Azure リソース グループは、Azure リソースのデプロイと管理に使用する論理コンテナーです。
az group create を使用してリソース グループを作成します。
az group create \
--name load-balancer-cli-rg \
--location eastus
仮想ネットワークの作成
VM をデプロイしてロード バランサーをテストする前に、サポート用の仮想ネットワークとサブネットを作成します。
az network vnet create を使用して、仮想ネットワークを作成します。 この仮想ネットワークとサブネットには、この記事で後ほどデプロイされるリソースが含まれます。
az network vnet create \
--resource-group load-balancer-cli-rg \
--location eastus \
--name lb-vnet \
--address-prefixes 10.1.0.0/16 \
--subnet-name backend-subnet \
--subnet-prefixes 10.1.0.0/24
パブリック IP アドレスの作成
インターネット上の Web アプリにアクセスするには、ロード バランサーのパブリック IP アドレスが必要です。
Az network public-ip createを使用して、ロード バランサー フロントエンドのパブリック IP を作成します。
az network public-ip create \
--resource-group load-balancer-cli-rg \
--name lb-frontend-ip \
--sku Standard \
--zone 1 2 3
代わりにゾーン 1 にゾーンパブリック IP アドレスを作成するには、次のコマンドを使用します:
az network public-ip create \
--resource-group load-balancer-cli-rg \
--name lb-frontend-ip \
--sku Standard \
--zone 1
ロード バランサーの作成
このセクションでは、ロード バランサーの次のコンポーネントを作成して構成する方法について説明します。
ロード バランサーの着信ネットワーク トラフィックを受け取るフロントエンド IP プール
フロントエンド プールから負荷分散されたネットワーク トラフィックが送信されるバックエンド IP プール
バックエンド VM インスタンスの正常性を決定する正常性プローブ
VM に対するトラフィックの均等配置を定義するロード バランサー規則
ロード バランサーのリソースを作成する
az network lb create を使用して、次のようにパブリック ロード バランサーを作成します。
az network lb create \
--resource-group load-balancer-cli-rg \
--name load-balancer \
--sku Standard \
--public-ip-address lb-frontend-ip \
--frontend-ip-name lb-frontend \
--backend-pool-name lb-backend-pool
ゾーンパブリック IP を作成する場合は、パブリック ロード バランサーの作成時にゾーンを指定します。
az network lb create \
--resource-group load-balancer-cli-rg \
--name load-balancer \
--sku Standard \
--public-ip-address lb-frontend-ip \
--frontend-ip-name lb-frontend \
--public-ip-zone 1 \
--backend-pool-name lb-backend-pool
ヘルスプローブを作成する
正常性プローブは、すべての仮想マシン インスタンスを調べて、ネットワーク トラ フィックを送信できるかどうかを確認します。
プローブ チェックが失敗した仮想マシンは、ロード バランサーから削除されます。 障害が解決されると、仮想マシンがロード バランサーに再び追加されます。
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 \
--disable-outbound-snat true \
--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
Bastionホストの作成
このセクションでは、Azure Bastion のリソースを作成します。 Azure Bastionを使用して、ロード バランサーのバックエンド プール内の仮想マシンを安全に管理します。
重要
時間単位の料金は、送信データの使用量に関係なく、Bastion がデプロイされた時点から発生します。 詳しくは、「価格」および「SKU」を参照してください。 チュートリアルまたはテストの一環として Bastion をデプロイしている場合は、使用終了後にこのリソースを削除することをお勧めします。
パブリック IP アドレスの作成
az network public-ip create を使用して、bastion ホストのパブリック IP アドレスを作成します。 要塞ホストは、仮想マシン リソースへのセキュリティで保護されたアクセスにパブリック 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 を使用して、bastion サブネットを作成します。 要塞ホストは、要塞サブネットを使用して仮想ネットワークにアクセスします。
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 を使用して、bastion ホストを作成します。 要塞ホストは、この記事の後半で作成する仮想マシン リソースに安全に接続します。
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 \
--sku Basic \
--location eastus
Azure Bastion ホストがデプロイされるまでに数分かかる場合があります。
バックエンド サーバーの作成
このセクションでは、以下を作成します。
仮想マシンに使用する 2 つのネットワーク インターフェイス
ロード バランサーのバックエンド サーバーとして使用する 2 つの仮想マシン
仮想マシンのネットワーク インターフェイスを作成する
az network nic create を使用して 2 つのネットワーク インターフェイスを作成します。
array=(lb-VM1-nic lb-VM2-nic)
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 を使用して仮想マシンを作成します。
az vm create \
--resource-group load-balancer-cli-rg \
--name lb-VM1 \
--nics lb-VM1-nic \
--image Win2022AzureEditionCore \
--size Standard_D2s_v3 \
--admin-username azureuser \
--zone 1 \
--no-wait
az vm create \
--resource-group load-balancer-cli-rg \
--name lb-VM2 \
--nics lb-VM2-nic \
--image Win2022AzureEditionCore \
--size Standard_D2s_v3 \
--admin-username azureuser \
--zone 2 \
--no-wait
VM がデプロイされるまでに、数分かかる場合があります。 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=(lb-VM1-nic lb-VM2-nic)
for vmnic in "${array[@]}"
do
az network nic ip-config address-pool add \
--address-pool lb-backend-pool \
--ip-config-name ipconfig1 \
--nic-name $vmnic \
--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
代わりにゾーン 1 にゾーンパブリック IP アドレスを作成するには、次のコマンドを使用します:
az network public-ip create \
--resource-group load-balancer-cli-rg \
--name nat-gw-public-ip \
--sku Standard \
--zone 1
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
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
ロード バランサーをテストする
ロード バランサーのパブリック IP アドレスを取得するには、az network public-ip show を使用します。
そのパブリック IP アドレスをコピーし、ブラウザーのアドレス バーに貼り付けます。
az network public-ip show \
--resource-group load-balancer-cli-rg \
--name lb-frontend-ip \
--query ipAddress \
--output tsv
リソースをクリーンアップする
リソースが不要になったら、 az group delete コマンドを使用して、リソース グループ、ロード バランサー、およびすべての関連リソースを削除します。
az group delete \
--name load-balancer-cli-rg
次のステップ
このクイック スタートでは次のようにします。
スタンダード パブリック Load Balancer を作成しました。
2 つの仮想マシンをアタッチしました。
ロード バランサーのトラフィック ルールと正常性プローブを構成しました。
ロード バランサーをテストしました。
Azure Load Balancer についてさらに学習するには、次の記事に進んでください。