クイック スタート:Azure CLI を使用して、VM の負荷分散を行うパブリック ロード バランサーを作成する

Azure CLI を使用してパブリック ロード バランサーと 2つの仮想マシンを作成することにより、Azure Load Balancer の使用を開始します。 これらのリソースと共に、Azure Bastion、NAT Gateway、仮想ネットワーク、および必要なサブネットをデプロイします。

Standard パブリック ロード バランサー用にデプロイされたリソースの図。

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 CreatePubLBQS-rg \
    --location eastus

仮想ネットワークの作成

VM をデプロイしてロード バランサーをテストする前に、サポート用の仮想ネットワークとサブネットを作成します。

az network vnet createを使用して、仮想ネットワークを作成します。 この仮想ネットワークとサブネットには、この記事で後ほどデプロイされるリソースが含まれます。

  az network vnet create \
    --resource-group CreatePubLBQS-rg \
    --location eastus \
    --name myVNet \
    --address-prefixes 10.1.0.0/16 \
    --subnet-name myBackendSubnet \
    --subnet-prefixes 10.1.0.0/24

パブリック IP アドレスの作成

インターネット上の Web アプリにアクセスするには、ロード バランサーのパブリック IP アドレスが必要です。

Az network public-ip createを使用して、ロード バランサー フロントエンドのパブリック IP を作成します。

  az network public-ip create \
    --resource-group CreatePubLBQS-rg \
    --name myPublicIP \
    --sku Standard \
    --zone 1 2 3

代わりにゾーン 1 にゾーンパブリック IP アドレスを作成するには、次のコマンドを使用します:

  az network public-ip create \
    --resource-group CreatePubLBQS-rg \
    --name myPublicIP \
    --sku Standard \
    --zone 1

ロード バランサーの作成

このセクションでは、ロード バランサーの以下のコンポーネントを作成および構成する方法について説明します。

  • ロード バランサーの着信ネットワーク トラフィックを受け取るフロントエンド IP プール

  • フロントエンド プールから負荷分散されたネットワーク トラフィックが送信されるバックエンド IP プール

  • バックエンド VM インスタンスの正常性を判断する正常性プローブ

  • VM に対するトラフィックの均等配置を定義するロード バランサー規則

ロード バランサーのリソースを作成する

az network lb create を使用して、次のようにパブリック ロード バランサーを作成します。

  az network lb create \
    --resource-group CreatePubLBQS-rg \
    --name myLoadBalancer \
    --sku Standard \
    --public-ip-address myPublicIP \
    --frontend-ip-name myFrontEnd \
    --backend-pool-name myBackEndPool

作成したパブリック IP がゾーン ベースの場合、パブリック ロード バランサーを作成するときに、指定したゾーンを定義する必要があります。

  az network lb create \
    --resource-group CreatePubLBQS-rg \
    --name myLoadBalancer \
    --sku Standard \
    --public-ip-address myPublicIP \
    --frontend-ip-name myFrontEnd \
    --public-ip-zone 1 \
    --backend-pool-name myBackEndPool

正常性プローブを作成する

正常性プローブは、すべての仮想マシン インスタンスを調べて、ネットワーク トラ フィックを送信できるかどうかを確認します。

プローブ チェックが失敗した仮想マシンは、ロード バランサーから削除されます。 障害が解決されると、仮想マシンがロード バランサーに再び追加されます。

az network lb probe create を使用して、次のように正常性プローブを作成します。

  az network lb probe create \
    --resource-group CreatePubLBQS-rg \
    --lb-name myLoadBalancer \
    --name myHealthProbe \
    --protocol tcp \
    --port 80

ロード バランサー規則を作成する

ロード バランサー規則は、以下のものを定義します。

  • 着信トラフィック用のフロントエンド IP 構成

  • トラフィックを受信するためのバックエンド IP プール

  • 必要な発信元ポートと同期先ポート

az network lb rule create を使用して、次のようにロード バランサー規則を作成します。

  az network lb rule create \
    --resource-group CreatePubLBQS-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 \
    --disable-outbound-snat true \
    --idle-timeout 15 \
    --enable-tcp-reset true

ネットワーク セキュリティ グループの作成

Standard ロード バランサーの場合、バックエンド プールが扱う VM には、ネットワーク セキュリティ グループに属しているネットワーク インターフェイスが必要です。

ネットワーク セキュリティ グループを作成するには、az network nsg create を使用します。

  az network nsg create \
    --resource-group CreatePubLBQS-rg \
    --name myNSG

ネットワーク セキュリティ グループ規則を作成する

az network nsg rule create を使用して、次のようにネットワーク セキュリティ グループの規則を作成します。

  az network nsg rule create \
    --resource-group CreatePubLBQS-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

Bastionホストの作成

このセクションでは、Azure Bastion のリソースを作成します。 Azure Bastion は、ロード バランサーのバックエンド プール内の仮想マシンを安全に管理するために使用されます。

重要

時間単位の料金は、送信データの使用量に関係なく、Bastion がデプロイされた時点から発生します。 詳しくは、「価格」および「SKU」を参照してください。 チュートリアルまたはテストの一環として Bastion をデプロイしている場合は、使用終了後にこのリソースを削除することをお勧めします。

パブリック IP アドレスの作成

az network public-ip create を使用して、bastion ホストのパブリック IP アドレスを作成します。 パブリック IP は、bastion ホストが仮想マシンのリソースに安全にアクセスするために使用されます。

  az network public-ip create \
    --resource-group CreatePubLBQS-rg \
    --name myBastionIP \
    --sku Standard \
    --zone 1 2 3

bastion サブネットを作成する

az network vnet subnet create を使用して、bastion サブネットを作成します。 bastion サブネットは、bastion ホストが仮想ネットワークにアクセスするために使用されます。

  az network vnet subnet create \
    --resource-group CreatePubLBQS-rg \
    --name AzureBastionSubnet \
    --vnet-name myVNet \
    --address-prefixes 10.1.1.0/27

bastion ホストを作成する

az network bastion create を使用して、bastion ホストを作成します。 bastion ホストは、この記事の後半で作成した仮想マシン リソースに安全に接続するために使用されます。

  az network bastion create \
    --resource-group CreatePubLBQS-rg \
    --name myBastionHost \
    --public-ip-address myBastionIP \
    --vnet-name myVNet \
    --location eastus

Azure Bastion ホストがデプロイされるまでに数分かかる場合があります。

バックエンド サーバーの作成

このセクションでは、以下を作成します。

  • 仮想マシンに使用する 2 つのネットワーク インターフェイス

  • ロード バランサーのバックエンド サーバーとして使用する 2 つの仮想マシン

仮想マシンのネットワーク インターフェイスを作成する

az network nic create を使用して、2 つのネットワーク インターフェイスを作成します。

  array=(myNicVM1 myNicVM2)
  for vmnic in "${array[@]}"
  do
    az network nic create \
        --resource-group CreatePubLBQS-rg \
        --name $vmnic \
        --vnet-name myVNet \
        --subnet myBackEndSubnet \
        --network-security-group myNSG
  done

仮想マシンを作成する

az vm create を使用して、次のように仮想マシンを作成します。

  az vm create \
    --resource-group CreatePubLBQS-rg \
    --name myVM1 \
    --nics myNicVM1 \
    --image win2019datacenter \
    --admin-username azureuser \
    --zone 1 \
    --no-wait
  az vm create \
    --resource-group CreatePubLBQS-rg \
    --name myVM2 \
    --nics myNicVM2 \
    --image win2019datacenter \
    --admin-username azureuser \
    --zone 2 \
    --no-wait

VM がデプロイされるまでに、数分かかる場合があります。 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=(myNicVM1 myNicVM2)
  for vmnic in "${array[@]}"
  do
    az network nic ip-config address-pool add \
     --address-pool myBackendPool \
     --ip-config-name ipconfig1 \
     --nic-name $vmnic \
     --resource-group CreatePubLBQS-rg \
     --lb-name myLoadBalancer
  done

NAT ゲートウェイの作成

バックエンド プール内のリソースに送信インターネット アクセスを提供するには、NAT ゲートウェイを作成します。

パブリック IP を作成する

az network public-ip create を使用して、アウトバウンド接続用の 1 つの IP を作成します。

  az network public-ip create \
    --resource-group CreatePubLBQS-rg \
    --name myNATgatewayIP \
    --sku Standard \
    --zone 1 2 3

代わりにゾーン 1 でゾーン冗長パブリック IP アドレスを作成するには、次のコマンドを使用します:

  az network public-ip create \
    --resource-group CreatePubLBQS-rg \
    --name myNATgatewayIP \
    --sku Standard \
    --zone 1

NAT ゲートウェイ リソースの作成

az network nat gateway create を使用して、NAT ゲートウェイ リソースを作成します。 前の手順で作成したパブリック IP は、NAT ゲートウェイに関連付けられている。

  az network nat gateway create \
    --resource-group CreatePubLBQS-rg \
    --name myNATgateway \
    --public-ip-addresses myNATgatewayIP \
    --idle-timeout 10

NAT ゲートウェイをサブネットに関連付ける

az network vnet subnet update を使って、仮想ネットワーク内の送信元サブネットを、特定の NAT ゲートウェイ リソースを使うように構成します。

  az network vnet subnet update \
    --resource-group CreatePubLBQS-rg \
    --vnet-name myVNet \
    --name myBackendSubnet \
    --nat-gateway myNATgateway

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 CreatePubLBQS-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 CreatePubLBQS-rg \
    --name myPublicIP \
    --query ipAddress \
    --output tsv

ロード バランサーをテストする

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

必要がなくなったら、az group delete コマンドを使用して、リソース グループ、ロード バランサー、およびすべての関連リソースを削除します。

  az group delete \
    --name CreatePubLBQS-rg

次のステップ

このクイック スタートでは次のようにします。

  • Standard パブリック ロード バランサーを作成しました

  • 2 つの仮想マシンをアタッチしました。

  • ロード バランサーのトラフィック規則と正常性プローブを構成しました。

  • ロード バランサーをテストしました

Azure Load Balancer についてさらに学習するには、次の記事に進んでください。