次の方法で共有


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

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

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

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 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 の作成中に、次のステップに進むことができます。

パブリック 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 についてさらに学習するには、次の記事に進んでください。