クイック スタート: Azure CLI を使用して VM の負荷を分散する内部ロード バランサーを作成する
Azure CLI を使用して内部ロード バランサーと 2 つの仮想マシンを作成することにより、Azure Load Balancer の使用を開始します。 その他のリソースには、Azure Bastion、NAT Gateway、仮想ネットワーク、必要なサブネットなどがあります。
Azure サブスクリプションをお持ちでない場合は、開始する前に Azure 無料アカウントを作成してください。
前提条件
Azure Cloud Shell で Bash 環境を使用します。 詳細については、「Azure Cloud Shell の Bash のクイックスタート」を参照してください。
CLI リファレンス コマンドをローカルで実行する場合、Azure CLI をインストールします。 Windows または macOS で実行している場合は、Docker コンテナーで Azure CLI を実行することを検討してください。 詳細については、「Docker コンテナーで Azure CLI を実行する方法」を参照してください。
ローカル インストールを使用する場合は、az login コマンドを使用して Azure CLI にサインインします。 認証プロセスを完了するには、ターミナルに表示される手順に従います。 その他のサインイン オプションについては、Azure CLI でのサインインに関するページを参照してください。
初回使用時にインストールを求められたら、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 CreateIntLBQS-rg \
--location westus2
内部ロード バランサーを作成すると、仮想ネットワークがロード バランサー用のネットワークとして構成されます。
仮想ネットワークの作成
VM をデプロイしてロード バランサーをテストする前に、サポート用の仮想ネットワークとサブネットを作成します。 この仮想ネットワークとサブネットには、この記事で後ほどデプロイされるリソースが含まれます。
az network vnet create を使用して、仮想ネットワークを作成します。
az network vnet create \
--resource-group CreateIntLBQS-rg \
--location westus2 \
--name myVNet \
--address-prefixes 10.1.0.0/16 \
--subnet-name myBackendSubnet \
--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 CreateIntLBQS-rg \
--name myBastionIP \
--sku Standard \
--zone 1 2 3
bastion サブネットを作成する
az network vnet subnet create を使用して、サブネットを作成します。
az network vnet subnet create \
--resource-group CreateIntLBQS-rg \
--name AzureBastionSubnet \
--vnet-name myVNet \
--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 CreateIntLBQS-rg \
--name myBastionHost \
--public-ip-address myBastionIP \
--vnet-name myVNet \
--location westus2 \
--only-show-errors \
--no-wait
Azure Bastion ホストがデプロイされるまでに数分かかる場合があります。
ロード バランサーを作成する
このセクションでは、ロード バランサーの以下のコンポーネントを作成および構成する方法について説明します。
ロード バランサーの着信ネットワーク トラフィックを受け取るフロントエンド IP プール
フロントエンド プールから負荷分散されたネットワーク トラフィックが送信されるバックエンド IP プール
バックエンド VM インスタンスの正常性を判断する正常性プローブ
VM に対するトラフィックの均等配置を定義するロード バランサー規則
ロード バランサーのリソースを作成する
az network lb create を使って、内部ロード バランサーを作成します。
az network lb create \
--resource-group CreateIntLBQS-rg \
--name myLoadBalancer \
--sku Standard \
--vnet-name myVNet \
--subnet myBackendSubnet \
--backend-pool-name myBackEndPool \
--frontend-ip-name myFrontEnd
正常性プローブを作成する
正常性プローブは、すべての仮想マシン インスタンスを調べて、ネットワーク トラ フィックを送信できるかどうかを確認します。
プローブ チェックが失敗した仮想マシンは、ロード バランサーから削除されます。 障害が解決されると、仮想マシンがロード バランサーに再び追加されます。
正常性プローブは、az network lb probe create で作成します。
az network lb probe create \
--resource-group CreateIntLBQS-rg \
--lb-name myLoadBalancer \
--name myHealthProbe \
--protocol tcp \
--port 80
ロード バランサー規則の作成
ロード バランサー規則は、以下のものを定義します。
着信トラフィック用のフロントエンド IP 構成
トラフィックを受信するためのバックエンド IP プール
必要な発信元ポートと同期先ポート
ロード バランサー規則は、az network lb rule create で作成します。
az network lb rule create \
--resource-group CreateIntLBQS-rg \
--lb-name myLoadBalancer \
--name myHTTPRule \
--protocol tcp \
--frontend-port 80 \
--backend-port 80 \
--frontend-ip-name myFrontEnd \
--backend-pool-name myBackEndPool \
--probe-name myHealthProbe \
--idle-timeout 15 \
--enable-tcp-reset true
ネットワーク セキュリティ グループの作成
Standard ロード バランサーの場合、バックエンド プールが扱う VM には、ネットワーク セキュリティ グループに属しているネットワーク インターフェイスが必要です。
ネットワーク セキュリティ グループを作成するには、az network nsg create を使用します。
az network nsg create \
--resource-group CreateIntLBQS-rg \
--name myNSG
ネットワーク セキュリティ グループ規則を作成する
ネットワーク セキュリティ グループの規則を作成するには、az network nsg rule create を使用します。
az network nsg rule create \
--resource-group CreateIntLBQS-rg \
--nsg-name myNSG \
--name myNSGRuleHTTP \
--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=(myNicVM1 myNicVM2)
for vmnic in "${array[@]}"
do
az network nic create \
--resource-group CreateIntLBQS-rg \
--name $vmnic \
--vnet-name myVNet \
--subnet myBackEndSubnet \
--network-security-group myNSG
done
仮想マシンの作成
az vm create で、仮想マシンを作成します。
array=(1 2)
for n in "${array[@]}"
do
az vm create \
--resource-group CreateIntLBQS-rg \
--name myVM$n \
--nics myNicVM$n \
--image win2022datacenter \
--admin-username azureuser \
--zone $n \
--no-wait
done
VM がデプロイされるまでに、数分かかる場合があります。
Note
パブリック 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 myBackendPool \
--ip-config-name ipconfig1 \
--nic-name myNic$vm \
--resource-group CreateIntLBQS-rg \
--lb-name myLoadBalancer
done
NAT ゲートウェイの作成
バックエンド プール内のリソースに送信インターネット アクセスを提供するには、NAT ゲートウェイを作成します。
パブリック IP を作成する
az network public-ip create を使用して、アウトバウンド接続用の 1 つの IP を作成します。
az network public-ip create \
--resource-group CreateIntLBQS-rg \
--name myNATgatewayIP \
--sku Standard \
--zone 1 2 3
NAT ゲートウェイ リソースの作成
az network nat gateway create を使用して、NAT ゲートウェイ リソースを作成します。 前の手順で作成したパブリック IP は、NAT ゲートウェイに関連付けられている。
az network nat gateway create \
--resource-group CreateIntLBQS-rg \
--name myNATgateway \
--public-ip-addresses myNATgatewayIP \
--idle-timeout 10
NAT ゲートウェイをサブネットに関連付ける
az network vnet subnet update を使って、仮想ネットワーク内の送信元サブネットを、特定の NAT ゲートウェイ リソースを使うように構成します。
az network vnet subnet update \
--resource-group CreateIntLBQS-rg \
--vnet-name myVNet \
--name myBackendSubnet \
--nat-gateway myNATgateway
テスト用の仮想マシンを作成する
az network nic create を使用して、ネットワーク インターフェイスを作成します。
az network nic create \
--resource-group CreateIntLBQS-rg \
--name myNicTestVM \
--vnet-name myVNet \
--subnet myBackEndSubnet \
--network-security-group myNSG
az vm create を使用して、仮想マシンを作成します。
az vm create \
--resource-group CreateIntLBQS-rg \
--name myTestVM \
--nics myNicTestVM \
--image Win2019Datacenter \
--admin-username azureuser \
--no-wait
仮想マシンがデプロイされるまでに、数分かかる場合があります。
IIS のインストール
バックエンド仮想マシンに IIS をインストールし、既定の Web サイトをコンピューター名に設定するには、az vm extension set を使用します。
array=(myVM1 myVM2)
for vm in "${array[@]}"
do
az vm extension set \
--publisher Microsoft.Compute \
--version 1.8 \
--name CustomScriptExtension \
--vm-name $vm \
--resource-group CreateIntLBQS-rg \
--settings '{"commandToExecute":"powershell Add-WindowsFeature Web-Server; powershell Add-Content -Path \"C:\\inetpub\\wwwroot\\Default.htm\" -Value $($env:computername)"}'
done
ロード バランサーをテストする
Azure portal にサインインします。
[概要] ページで、ロード バランサーのプライベート IP アドレスを見つけます。 左側のメニューで、 [すべてのサービス]>[すべてのリソース]>[myLoadBalancer] を選択します。
myLoadBalancer の概要で、 [プライベート IP アドレス] の横にあるアドレスをコピーしておきます。 プライベート IP アドレスが表示されない場合は、[詳細表示] を選択します。
左側のメニューで、 [すべてのサービス]>[すべてのリソース] を選択します。 リソースの一覧の [CreateIntLBQS-rg] リソース グループで、 [myTestVM] を選択します。
[概要] ページで、 [接続]>[Bastion] を選択します。
VM の作成時に入力したユーザー名とパスワードを入力します。
myTestVM で Internet Explorer を開きます。
前の手順の IP アドレスをブラウザーのアドレス バーに入力します。 IIS Web サーバーの既定のページがブラウザーに表示されます。
リソースをクリーンアップする
リソースが不要になったら、az group delete コマンドを使用して、リソース グループ、ロード バランサー、およびすべての関連リソースを削除します。
az group delete \
--name CreateIntLBQS-rg
次のステップ
このクイック スタートでは次のようにします。
内部ロード バランサーを作成しました
2 つの仮想マシンをアタッチしました
ロード バランサーのトラフィック規則と正常性プローブを構成しました。
ロード バランサーをテストしました
Azure Load Balancer についてさらに学習するには、次の記事に進んでください。