Azure CLI を使用して Standard Load Balancer の負荷分散規則とアウトバウンド規則を構成するConfigure load balancing and outbound rules in Standard Load Balancer using Azure CLI

このクイック スタートでは、Azure CLI を使用して Standard Load Balancer のアウトバウンド規則を構成する方法について説明します。This quickstart shows you how to configure outbound rules in Standard Load Balancer using Azure CLI.

作業が完了すると、Load Balancer リソースに 2 つのフロントエンドとそれらに関連付けられた規則 (1 つは受信用、もう 1 つは送信用) が含まれます。When you are done, the Load Balancer resource contains two frontends and rules associated with them: one for inbound and another for outbound. 各フロントエンドはパブリック IP アドレスへの参照を持ちます。このシナリオでは、受信と送信に異なるパブリック IP アドレスを使用します。Each frontend has a reference to a public IP address and this scenario uses a different public IP address for inbound versus outbound. 負荷分散規則では受信負荷分散のみを提供し、アウトバウンド規則では VM に提供される送信 NAT を制御します。The load balancing rule provides only inbound load balancing and the outbound rule controls the outbound NAT provided for the VM. このクイック スタートでは、受信用と送信用の 2 つの異なるバックエンド プールを使用して、機能を示し、このシナリオに柔軟性を持たせます。This quickstart uses two separate backend pools, one for inbound and one for outbound, to illustrate capability and allow for flexibility for this scenario.

Azure Cloud Shell を使用するUse Azure Cloud Shell

Azure では、ブラウザーを介して使用できる対話型のシェル環境、Azure Cloud Shell がホストされています。Azure hosts Azure Cloud Shell, an interactive shell environment that you can use through your browser. Cloud Shell で Bash または PowerShell を使用して、Azure サービスを操作できます。You can use either Bash or PowerShell with Cloud Shell to work with Azure services. ローカル環境に何もインストールしなくても、Cloud Shell にプレインストールされているコマンドを使用して、この記事のコードを実行できます。You can use the Cloud Shell preinstalled commands to run the code in this article without having to install anything on your local environment.

Azure Cloud Shell を開始するには:To start Azure Cloud Shell:

オプションOption 例とリンクExample/Link
コード ブロックの右上隅にある [使ってみる] を選択します。Select Try It in the upper-right corner of a code block. [使ってみる] を選択しても、コードは Cloud Shell に自動的にコピーされません。Selecting Try It doesn't automatically copy the code to Cloud Shell. Azure Cloud Shell の [使ってみる] の例
https://shell.azure.com に移動するか、 [Cloud Shell を起動する] ボタンを選択して、ブラウザーで Cloud Shell を開きます。Go to https://shell.azure.com, or select the Launch Cloud Shell button to open Cloud Shell in your browser. 新しいウィンドウで Cloud Shell を起動するLaunch Cloud Shell in a new window
Azure portal の右上にあるメニュー バーの [Cloud Shell] ボタンを選択します。Select the Cloud Shell button on the top-right menu bar in the Azure portal. Azure Portal の [Cloud Shell] ボタン

Azure Cloud Shell でこの記事のコードを実行するには:To run the code in this article in Azure Cloud Shell:

  1. Cloud Shell を開始します。Start Cloud Shell.

  2. [コピー] ボタンを選択して、コード ブロックをコードにコピーします。Select the Copy button on a code block to copy the code.

  3. Windows と Linux では Ctrl+Shift+V キーを選択し、macOS では Cmd+Shift+V キーを選択して、コードを Cloud Shell セッションに貼り付けます。Paste the code into the Cloud Shell session by selecting Ctrl+Shift+V on Windows and Linux or by selecting Cmd+Shift+V on macOS.

  4. Enter キーを選択して、コードを実行します。Select Enter to run the code.

CLI をローカルにインストールして使用する場合、このチュートリアルでは、Azure CLI バージョン 2.0.28 以降のバージョンを実行していることが要件です。If you choose to install and use the CLI locally, this tutorial requires that you are running a version of the Azure CLI version 2.0.28 or later. バージョンを確認するには、az --version を実行します。To find the version, run az --version. インストールまたはアップグレードする必要がある場合は、「Azure CLI 2.0 のインストール」を参照してください。If you need to install or upgrade, see Install Azure CLI 2.0.

リソース グループの作成Create resource group

az group create を使用して、リソース グループを作成します。Create a resource group with az group create. Azure リソース グループとは、Azure リソースのデプロイと管理に使用する論理コンテナーです。An Azure resource group is a logical container into which Azure resources are deployed and managed.

次の例では、myresourcegroupoutbound という名前のリソース グループを eastus2 に作成します。The following example creates a resource group named myresourcegroupoutbound in the eastus2 location:

  az group create \
    --name myresourcegroupoutbound \
    --location eastus2

Create virtual networkCreate virtual network

az network vnet create を使用して、myresourcegroupoutboundmysubnetoutbound という名前のサブネットがある myvnetoutbound という名前の仮想ネットワークを作成します。Create a virtual network named myvnetoutbound with a subnet named mysubnetoutbound in the myresourcegroupoutbound using az network vnet create.

  az network vnet create \
    --resource-group myresourcegroupoutbound \
    --name myvnetoutbound \
    --address-prefix 192.168.0.0/16 \
    --subnet-name mysubnetoutbound \
    --subnet-prefix 192.168.0.0/24

受信パブリック IP アドレスの作成Create inbound Public IP address

インターネット上の Web アプリにアクセスするには、ロード バランサーのパブリック IP アドレスが必要です。To access your web app on the Internet, you need a public IP address for the load balancer. Standard Load Balancer では、Standard パブリック IP アドレスだけがサポートされています。A Standard Load Balancer only supports Standard Public IP addresses. az network public-ip create を使用して、myresourcegroupoutboundmypublicipinbound という名前の Standard パブリック IP アドレスを作成します。Use az network public-ip create to create a Standard Public IP address named mypublicipinbound in myresourcegroupoutbound.

  az network public-ip create --resource-group myresourcegroupoutbound --name mypublicipinbound --sku standard

送信パブリック IP アドレスの作成Create outbound public IP address

az network public-ip create を使用して、Load Balancer のフロントエンド送信構成の Standard IP アドレスを作成します。Create a Standard IP address for Load Balancer's frontend outbound configuration using az network public-ip create.

  az network public-ip create --resource-group myresourcegroupoutbound --name mypublicipoutbound --sku standard

Azure Load Balancer の作成Create Azure Load Balancer

このセクションでは、ロード バランサーの以下のコンポーネントを作成および構成する方法について説明します。This section details how you can create and configure the following components of the load balancer:

  • ロード バランサーの受信ネットワーク トラフィックを受け取るフロントエンド IP。A frontend IP that receives the incoming network traffic on the load balancer.
  • フロントエンド IP から負荷分散されたネットワーク トラフィックが送信されるバックエンド プール。A backend pool where the frontend IP sends the load balanced network traffic.
  • 送信接続用のバックエンド プール。A backend pool for outbound connectivity.
  • バックエンド VM インスタンスの正常性を判断する正常性プローブ。A health probe that determines health of the backend VM instances.
  • VM へのトラフィックの分散方法を定義する、ロード バランサーの受信規則。A load balancer inbound rule that defines how traffic is distributed to the VMs.
  • VM からのトラフィックの分散方法を定義する、ロード バランサーのアウトバウンド規則。A load balancer outbound rule that defines how traffic is distributed from the VMs.

Load Balancer の作成Create Load Balancer

az network lb create を使用して、受信 IP アドレスを持つ lb という名前の Load Balancer を作成します。これには、受信フロントエンド IP 構成と、前の手順で作成したパブリック IP アドレス mypublicipinbound に関連付けられているバックエンド プール bepoolinbound を含めます。Create a Load Balancer with the inbound IP address using az network lb create named lb that includes an inbound frontend IP configuration and a backend pool bepoolinbound that is associated with the public IP address mypublicipinbound that you created in the preceding step.

  az network lb create \
    --resource-group myresourcegroupoutbound \
    --name lb \
    --sku standard \
    --backend-pool-name bepoolinbound \
    --frontend-ip-name myfrontendinbound \
    --location eastus2 \
    --public-ip-address mypublicipinbound   

送信プールを作成するCreate outbound pool

bepooloutbound という名前で、az network lb address-pool create を使用して、VM のプール用の送信接続を定義するために、追加のバックエンド アドレス プールを作成します。Create an additional backend address pool to define outbound connectivity for a pool of VMs with az network lb address-pool create with the name bepooloutbound. 送信プールを別に作成すると最大限の柔軟性が提供されますが、このステップを省略し、受信用の bepoolinbound だけを使用してもかまいません。Creating a separate outbound pool provides maximum flexibility, but you can omit this step and only use the inbound bepoolinbound as well.

  az network lb address-pool create \
    --resource-group myresourcegroupoutbound \
    --lb-name lb \
    --name bepooloutbound

送信フロントエンド IP の作成Create outbound frontend IP

az network lb frontend-ip create を使用して、Load Balancer の送信フロントエンド IP 構成を作成します。これには、パブリック IP アドレス mypublicipoutbound に関連付けられている myfrontendoutbound という名前の送信フロントエンド IP 構成を含めます。Create the outbound frontend IP configuration for the Load Balancer with az network lb frontend-ip create that includes and outbound frontend IP configuration named myfrontendoutbound that is associated to the public IP address mypublicipoutbound

  az network lb frontend-ip create \
    --resource-group myresourcegroupoutbound \
    --name myfrontendoutbound \
    --lb-name lb \
    --public-ip-address mypublicipoutbound 

正常性プローブの作成Create health probe

正常性プローブは、すべての仮想マシン インスタンスを確認し、ネットワーク トラフィックを送信できるかどうかを確認します。A health probe checks all virtual machine instances to make sure they can send network traffic. プローブのチェックで失敗した仮想マシン インスタンスは、オンラインに戻り、プローブ チェックにより正常と判定されるまで、ロード バランサーから削除されます。The virtual machine instance with failed probe checks is removed from the load balancer until it goes back online and a probe check determines that it's healthy. az network lb probe create を使用して正常性プローブを作成し、仮想マシンの正常性を監視します。Create a health probe with az network lb probe create to monitor the health of the virtual machines.

  az network lb probe create \
    --resource-group myresourcegroupoutbound \
    --lb-name lb \
    --name http \
    --protocol http \
    --port 80 \
    --path /  

負荷分散規則の作成Create load balancing rule

ロード バランサー規則では、必要な発信元ポートおよび宛先ポートと共に、受信トラフィック用のフロントエンド IP 構成と、トラフィックを受信するためのバックエンド プールを定義します。A load balancer rule defines the frontend IP configuration for the incoming traffic and the backend pool to receive the traffic, along with the required source and destination port. az network lb rule create を使用してロード バランサー規則 myinboundlbrule を作成します。この規則では、フロントエンド プール myfrontendinbound のポート 80 をリッスンし、同じポート 80 を使用して、負荷分散されたネットワーク トラフィックをバックエンド アドレス プール bepool に送信します。Create a load balancer rule myinboundlbrule with az network lb rule create for listening to port 80 in the frontend pool myfrontendinbound and sending load-balanced network traffic to the backend address pool bepool also using port 80.

注意

この負荷分散規則では、--disable-outbound-snat パラメーターを指定するため、自動送信 (S)NAT が無効になります。This load balancing rule disables automatic outbound (S)NAT as a result of this rule with the --disable-outbound-snat parameter. 送信 NAT はアウトバウンド規則によってのみ提供されます。Outbound NAT is only provided by the outbound rule.

az network lb rule create \
--resource-group myresourcegroupoutbound \
--lb-name lb \
--name inboundlbrule \
--protocol tcp \
--frontend-port 80 \
--backend-port 80 \
--probe http \
--frontend-ip-name myfrontendinbound \
--backend-pool-name bepoolinbound \
--disable-outbound-snat

アウトバウンド規則の作成Create outbound rule

アウトバウンド規則では、フロントエンド myfrontendoutbound で表されるフロントエンド パブリック IP を定義します。これは、この規則が適用されるすべての送信 NAT トラフィックとバックエンド プールに使用されます。An outbound rule defines the frontend public IP, represented by the frontend myfrontendoutbound, which will be used for all outbound NAT traffic as well as the backend pool to which this rule applies. バックエンド プール bepool 内のすべての仮想マシン (NIC IP 構成) の送信ネットワーク変換用のアウトバウンド規則 myoutboundrule を作成します。Create an outbound rule myoutboundrule for outbound network translation of all virtual machines (NIC IP configurations) in bepool backend pool. また、次のコマンドでは、送信アイドル タイムアウトを 4 分から 15 分に変更し、1024 個ではなく 10000 個の SNAT ポートを割り当てます。The command below also changes the outbound idle timeout from 4 to 15 minutes and allocates 10000 SNAT ports instead of 1024. 詳細については、アウトバウンド規則に関する記事をご覧ください。Review outbound rules for more details.

az network lb outbound-rule create \
 --resource-group myresourcegroupoutbound \
 --lb-name lb \
 --name outboundrule \
 --frontend-ip-configs myfrontendoutbound \
 --protocol All \
 --idle-timeout 15 \
 --outbound-ports 10000 \
 --address-pool bepooloutbound

送信用に別のプールを使用したくない場合は、前のコマンドのアドレス プール引数を変更して、代わりに bepoolinbound を指定してもかまいません。If you do not want to use a separate outbound pool, you can change the address pool argument in the preceding command to specify bepoolinbound instead. 結果の構成の柔軟性と読みやすさのために別のプールを使うことをお勧めします。We recommend to use separate pools for flexibility and readability of the resulting configuration.

この時点で、az network nic ip-config address-pool add を使用して、各 NIC リソースの IP 構成を更新することで、バックエンド プール bepoolinbound および bepooloutbound に VM を追加できるようになります。At this point, you can proceed with adding your VM's to the backend pool bepoolinbound and bepooloutbound by updating the IP configuration of the respective NIC resources using az network nic ip-config address-pool add.

リソースのクリーンアップClean up resources

必要がなくなったら、az group delete コマンドを使用して、リソース グループ、ロード バランサー、およびすべての関連リソースを削除できます。When no longer needed, you can use the az group delete command to remove the resource group, load balancer, and all related resources.

  az group delete --name myresourcegroupoutbound

次の手順Next steps

この記事では、Standard Load Balancer の作成、ロード バランサーの受信トラフィック規則の構成、バックエンド プール内の VM の正常性プローブの構成を行いました。In this article, you created Standard Load Balancer, configured both inbound load balancer traffic rules, configured and health probe for the VMs in the backend pool. Azure Load Balancer についてさらに学習するには、Azure Load Balancer のチュートリアルに進みます。To learn more about Azure Load Balancer, continue to the tutorials for Azure Load Balancer.