次の方法で共有


Azure Load Balancer を使用して IPv6 デュアル スタック アプリケーションをデプロイする

この記事では、Azure で Standard Load Balancer を使用してデュアル スタック (IPv4 + IPv6) アプリケーションをデプロイする方法について説明します。 このシナリオには、デュアル スタック サブネットを備えたデュアル スタック仮想ネットワーク、デュアル (IPv4 + IPv6) フロントエンド構成を備えた Standard Load Balancer、デュアル IP 構成を持つ NIC を備えた VM、デュアル ネットワーク セキュリティ グループ規則、デュアル パブリック IP が含まれます。

前提条件

  • 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 を実行します。

デュアル スタック (IPv4 + IPv6) アプリケーションをデプロイする

Azure CLI で次の手順に従って、Azure で Standard Load Balancer を使用してデュアル スタック (IPv4 + IPv6) アプリケーションをデプロイします。

リソース グループを作成する

デュアルスタック仮想ネットワークを作成する前に、 az group create を使用してリソース グループを作成する必要があります。 次の例では、 DsResourceGroup01 という名前のリソース グループを eastus の場所に作成します。

az group create \
--name DsResourceGroup01 \
--location eastus

ロード バランサーの IPv4 および IPv6 パブリック IP アドレスを作成する

インターネット上の IPv4 および IPv6 エンドポイントにアクセスするには、ロード バランサーの IPv4 および IPv6 パブリック IP アドレスが必要です。 az network public-ip create を使用してパブリック IP アドレスを作成します。 次の例では、dsResourceGroup01 リソース グループに dsPublicIP_v4 および dsPublicIP_v6 という名前の IPv4 および IPv6 パブリック IP アドレスを作成します。

# Create an IPV4 IP address
az network public-ip create \
--name dsPublicIP_v4  \
--resource-group DsResourceGroup01  \
--location eastus  \
--sku STANDARD  \
--allocation-method static  \
--version IPv4

# Create an IPV6 IP address
az network public-ip create \
--name dsPublicIP_v6  \
--resource-group DsResourceGroup01  \
--location eastus \
--sku STANDARD  \
--allocation-method static  \
--version IPv6

VM のパブリック IP アドレスを作成する

インターネット上の VM にリモートでアクセスするには、VM の IPv4 パブリック IP アドレスが必要です。 az network public-ip create を使用してパブリック IP アドレスを作成します。

az network public-ip create \
--name dsVM0_remote_access  \
--resource-group DsResourceGroup01 \
--location eastus  \
--sku Standard  \
--allocation-method static  \
--version IPv4

az network public-ip create \
--name dsVM1_remote_access  \
--resource-group DsResourceGroup01  \
--location eastus  \
--sku Standard  \
--allocation-method static  \
--version IPv4

Standard Load Balancer を作成する

このセクションでは、ロード バランサーのデュアル フロントエンド IP (IPv4 および IPv6) とバックエンド アドレス プールを構成してから、Standard ロード バランサーを作成します。

ロード バランサーの作成

az network lb create という名前の dsLB を使用して Standard Load Balancer を作成します。これには、dsLbFrontEnd_v4という名前のフロントエンド プール、前の手順で作成した IPv4 パブリック IP アドレスdsPublicIP_v4に関連付けられている dsLbBackEndPool_v4という名前のバックエンド プールが含まれます。

az network lb create \
--name dsLB  \
--resource-group DsResourceGroup01 \
--sku Standard \
--location eastus \
--frontend-ip-name dsLbFrontEnd_v4  \
--public-ip-address dsPublicIP_v4  \
--backend-pool-name dsLbBackEndPool_v4

IPv6 フロントエンドを作成する

az network lb frontend-ip create を使用して IPV6 フロントエンド IP を作成します。 次の例では、dsLbFrontEnd_v6という名前 フロントエンド IP 構成を作成し、 dsPublicIP_v6 アドレスをアタッチします。

az network lb frontend-ip create \
--lb-name dsLB  \
--name dsLbFrontEnd_v6  \
--resource-group DsResourceGroup01  \
--public-ip-address dsPublicIP_v6

IPv6 バックエンド アドレス プールの構成

az network lb address-pool create を使用して IPv6 バックエンド アドレス プールを作成します。 次の例では、 DSLBBACKENDPOOL_V6 という名前 のバックエンド アドレス プールを作成して、IPv6 NIC 構成の VM を含めます。

az network lb address-pool create \
--lb-name dsLB  \
--name dsLbBackEndPool_v6  \
--resource-group DsResourceGroup01

健康プローブの作成

az network lb probe create を使用して正常性プローブを作成し、仮想マシンの正常性を監視します。

az network lb probe create -g DsResourceGroup01  --lb-name dsLB -n dsProbe --protocol tcp --port 3389

ロード バランサー規則の作成

ロード バランサー規則の目的は、一連の VM に対するトラフィックの分散方法を定義することです。 着信トラフィック用のフロントエンド IP 構成と、トラフィックを受信するためのバックエンド IP プールを、必要な発信元ポートと宛先ポートと共に定義します。

ロード バランサー規則は、az network lb rule create で作成します。 次の例では、dsLBrule_v4 および dsLBrule_v6 という名前のロード バランサー規則を作成し、IPv4 および IPv6 フロントエンド IP 構成に応じて、TCP ポート 80 のトラフィックを負荷分散します。

az network lb rule create \
--lb-name dsLB  \
--name dsLBrule_v4  \
--resource-group DsResourceGroup01  \
--frontend-ip-name dsLbFrontEnd_v4  \
--protocol Tcp  \
--frontend-port 80  \
--backend-port 80  \
--probe-name dsProbe \
--backend-pool-name dsLbBackEndPool_v4


az network lb rule create \
--lb-name dsLB  \
--name dsLBrule_v6  \
--resource-group DsResourceGroup01 \
--frontend-ip-name dsLbFrontEnd_v6  \
--protocol Tcp  \
--frontend-port 80 \
--backend-port 80  \
--probe-name dsProbe \
--backend-pool-name dsLbBackEndPool_v6

ネットワーク リソースを作成する

一部の VM をデプロイする前に、サポートするネットワーク リソース (可用性セット、ネットワーク セキュリティ グループ、仮想ネットワーク、仮想 NIC) を作成する必要があります。

可用性セットの作成

アプリの可用性を向上させるには、VM を可用性セットに配置します。

az vm availability-set create を使用して可用性セットを作成します。 次の例では、dsAVset という名前の可用性セットを作成します。

az vm availability-set create \
--name dsAVset  \
--resource-group DsResourceGroup01  \
--location eastus \
--platform-fault-domain-count 2  \
--platform-update-domain-count 2  

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

仮想ネットワーク内の受信と送信の通信を制御する規則のネットワーク セキュリティ グループを作成します。

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

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

az network nsg create \
--name dsNSG1  \
--resource-group DsResourceGroup01  \
--location eastus

受信接続と送信接続のネットワーク セキュリティ グループ規則を作成する

ネットワーク セキュリティ グループ規則を作成して、ポート 3389 経由の RDP 接続、ポート 80 経由のインターネット接続、および az network nsg rule create を使用した送信接続を許可します。

# Create inbound rule for port 3389
az network nsg rule create \
--name allowRdpIn  \
--nsg-name dsNSG1  \
--resource-group DsResourceGroup01  \
--priority 100  \
--description "Allow Remote Desktop In"  \
--access Allow  \
--protocol "*"  \
--direction Inbound  \
--source-address-prefixes "*"  \
--source-port-ranges "*"  \
--destination-address-prefixes "*"  \
--destination-port-ranges 3389

# Create inbound rule for port 80
az network nsg rule create \
--name allowHTTPIn  \
--nsg-name dsNSG1  \
--resource-group DsResourceGroup01  \
--priority 200  \
--description "Allow HTTP In"  \
--access Allow  \
--protocol "*"  \
--direction Inbound  \
--source-address-prefixes "*"  \
--source-port-ranges 80  \
--destination-address-prefixes "*"  \
--destination-port-ranges 80

# Create outbound rule

az network nsg rule create \
--name allowAllOut  \
--nsg-name dsNSG1  \
--resource-group DsResourceGroup01  \
--priority 300  \
--description "Allow All Out"  \
--access Allow  \
--protocol "*"  \
--direction Outbound  \
--source-address-prefixes "*"  \
--source-port-ranges "*"  \
--destination-address-prefixes "*"  \
--destination-port-ranges "*"

仮想ネットワークを作成する

az network vnet create を使用して仮想ネットワークを作成します。 次の例では、サブネットdsSubNET_v4とdsSubNET_v6を使用して dsVNET という名前の仮想ネットワークを作成します。

# Create the virtual network
az network vnet create \
--name dsVNET \
--resource-group DsResourceGroup01 \
--location eastus  \
--address-prefixes "10.0.0.0/16" "fd00:db8:deca::/48"

# Create a single dual stack subnet

az network vnet subnet create \
--name dsSubNET \
--resource-group DsResourceGroup01 \
--vnet-name dsVNET \
--address-prefixes "10.0.0.0/24" "fd00:db8:deca:deed::/64" \
--network-security-group dsNSG1

NIC の作成

az network nic create を使用して、VM ごとに仮想 NIC を作成します。 次の例では、VM ごとに仮想 NIC を作成します。 各 NIC には、2 つの IP 構成 (1 つの IPv4 構成、1 つの IPv6 構成) があります。 az network nic ip-config create を使用して IPV6 構成を作成します。

# Create NICs
az network nic create \
--name dsNIC0  \
--resource-group DsResourceGroup01 \
--network-security-group dsNSG1  \
--vnet-name dsVNET  \
--subnet dsSubNet  \
--private-ip-address-version IPv4 \
--lb-address-pools dsLbBackEndPool_v4  \
--lb-name dsLB  \
--public-ip-address dsVM0_remote_access

az network nic create \
--name dsNIC1 \
--resource-group DsResourceGroup01 \
--network-security-group dsNSG1 \
--vnet-name dsVNET \
--subnet dsSubNet \
--private-ip-address-version IPv4 \
--lb-address-pools dsLbBackEndPool_v4 \
--lb-name dsLB \
--public-ip-address dsVM1_remote_access

# Create IPV6 configurations for each NIC

az network nic ip-config create \
--name dsIp6Config_NIC0  \
--nic-name dsNIC0  \
--resource-group DsResourceGroup01 \
--vnet-name dsVNET \
--subnet dsSubNet \
--private-ip-address-version IPv6 \
--lb-address-pools dsLbBackEndPool_v6 \
--lb-name dsLB

az network nic ip-config create \
--name dsIp6Config_NIC1 \
--nic-name dsNIC1 \
--resource-group DsResourceGroup01 \
--vnet-name dsVNET \
--subnet dsSubNet \
--private-ip-address-version IPv6 \
--lb-address-pools dsLbBackEndPool_v6 \
--lb-name dsLB

仮想マシンを作成する

az vm create を使用して VM を作成します。 次の例では、2 つの VM と必要な仮想ネットワーク コンポーネントを (まだ存在しない場合は) 作成します。

次のように仮想マシン dsVM0 を作成します。

 az vm create \
--name dsVM0 \
--resource-group DsResourceGroup01 \
--nics dsNIC0 \
--size Standard_A2 \
--availability-set dsAVset \
--image MicrosoftWindowsServer:WindowsServer:2019-Datacenter:latest  

次のように仮想マシン dsVM1 を作成します。

az vm create \
--name dsVM1 \
--resource-group DsResourceGroup01 \
--nics dsNIC1 \
--size Standard_A2 \
--availability-set dsAVset \
--image MicrosoftWindowsServer:WindowsServer:2019-Datacenter:latest 

Azure portal で IPv6 デュアル スタック仮想ネットワークを表示する

次のようにして、Azure portal で IPv6 デュアル スタック仮想ネットワークを表示することができます。

  1. ポータルの検索バーで、「dsVnet」と入力します。
  2. 検索結果に [myVirtualNetwork] が表示されたら、それを選択します。 これにより、dsVnet という名前のデュアル スタック仮想ネットワークの [概要] ページが起動します。 デュアル スタック仮想ネットワークには、dsSubnet という名前のデュアル スタック サブネットにある、IPv4 と IPv6 の両方の構成を持つ 2 つの NIC が表示されます。

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

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

 az group delete --name DsResourceGroup01

次のステップ