Network Load Balancer (NLB) は IPv6 リクエストを転送できます。このトピックでは、IPv4 および IPv6 の Elastic Compute Service (ECS) インスタンスをデュアルスタック NLB インスタンスに追加する方法について説明します。これにより、IPv6 クライアントは、NLB インスタンスのバックエンドサーバーにデプロイされた IPv4 および IPv6 サービスにアクセスできるようになります。
例
次の図は、このトピックの例を示しています。ある企業が、IPv6 クライアントからのリクエストを NLB に転送させ、IPv6 クライアントが VPC (Virtual Private Cloud) 内の IPv4 および IPv6 サービスにアクセスできるようにしたいと考えています。この要件を満たすには、IPv4 の ECS インスタンスと IPv6 の ECS インスタンスを作成する必要があります。また、デュアルスタックの NLB インスタンスを作成し、IPv6 をサポートするサーバーグループを作成する必要もあります。これにより、IPv6 クライアントは、NLB インスタンスのバックエンドサーバーとして機能する ECS インスタンス上の IPv4 および IPv6 サービスにアクセスできるようになります。
制限事項
デュアルスタック NLB インスタンスが利用可能なリージョンの詳細については、「NLB インスタンス」をご参照ください。
デュアルスタック機能を有効にする場合は、VPC のゾーンにある vSwitch で IPv6 を有効にする必要があります。
デュアルスタック NLB インスタンスは、IPv6 クライアントからのリクエストを IPv4 および IPv6 のバックエンドサービスに転送できます。
既存の IPv4 NLB インスタンスをデュアルスタック NLB インスタンスにスペックアップすることはできません。デュアルスタック NLB インスタンスは新規に作成する必要があります。
IPv4 NLB インスタンスのリスナーを作成する際、IPv6 が有効になっているサーバーグループにリスナーを関連付けることはできません。
前提条件
中国 (上海) リージョンに VPC (VPC1) が作成され、その VPC で IPv6 が有効になっていること。IPv6 を有効にすると、IPv6 ゲートウェイが自動的に作成されます。詳細については、「VPC の IPv6 の有効化」をご参照ください。
中国 (上海) ゾーン E に vSwitch (vSwitch1) が、中国 (上海) ゾーン G に vSwitch (vSwitch2) が作成されていること。vSwitch1 と vSwitch2 で IPv6 が有効になっていること。詳細については、「IPv4 と IPv6 をサポートする vSwitch の作成」をご参照ください。
NLB インスタンスが期待どおりにスケールできるように、各 vSwitch に少なくとも 8 つの IP アドレスを予約してください。
ドメイン名が登録され、そのドメイン名のインターネットコンテンツプロバイダー (ICP) 番号が取得されていること。詳細については、「Alibaba Cloud でのドメイン名の登録」および「ICP 登録プロセス」をご参照ください。
ステップ 1:ECS インスタンスの作成と設定
VPC コンソールにログインします。
左側のナビゲーションウィンドウで、[vSwitch] をクリックします。
vSwitch のリージョンを選択します。この例では、[中国 (上海)] が選択されています。
[vSwitch] ページで、管理したい vSwitch を見つけ、[操作] 列の を選択します。
[Elastic Compute Service] ページの [カスタム起動] タブで、ECS01 という名前の IPv4 ECS インスタンスと ECS02 という名前の IPv6 ECS インスタンスを作成します。ECS インスタンスが追加されるセキュリティグループは、ポート 80 でのトラフィックを許可する必要があります。詳細については、「[カスタム起動] タブでのインスタンスの作成」をご参照ください。
ECS01 と ECS02 にリモートでログインします。詳細については、「ECS リモート接続メソッドの選択」をご参照ください。
ECS01 で次のコマンドを実行して、NGINX サービスをデプロイします。
yum install -y nginx systemctl start nginx.service cd /usr/share/nginx/html/ echo "Hello World ! this is ipv4 rs." > index.htmlECS02 で次のコマンドを実行して、NGINX サービスをデプロイします。
yum install -y nginx systemctl start nginx.service cd /usr/share/nginx/html/ echo "Hello World ! this is ipv6 rs." > index.htmlECS02 の IPv6 アドレスを設定します。詳細については、「IPv6 通信」をご参照ください。
説明[イメージ] セクションで [Alibaba Cloud Linux 3.2104 LTS 64] が選択され、[ネットワークとセキュリティグループ] セクションの [IPv6] で [無料で IPv6 アドレスを割り当てる] が選択されている場合は、このステップをスキップしてください。
ECS02 にログインします。
ECS02 の IPv6 アドレスを設定します。
ip addr | grep inet6またはifconfig | grep inet6コマンドを実行します。次の図に示すように、ECS02 に IPv6 アドレスが設定されている場合は、このステップをスキップします。

コマンドの出力に inet6 の情報が含まれていない場合、ECS02 で IPv6 が無効になっています。まず、IPv6 サービスを有効にしてください。
コマンドの出力に inet6 の情報が含まれている場合、ECS02 で IPv6 が有効になっており、ECS02 に割り当てられた IPv6 アドレスを特定できます。ECS02 の IPv6 アドレスを設定してください。
ステップ 2:ECS02 のセキュリティグループルールの設定
ECS02 のセキュリティグループルールを設定して、インバウンドの IPv6 トラフィックを許可します。
ECS コンソールにログインします。
左側のナビゲーションウィンドウで、 を選択します。
上部のナビゲーションバーで、セキュリティグループのリージョンを選択します。この例では、[中国 (上海)] が選択されています。
左側のナビゲーションウィンドウで、 を選択します。
[セキュリティグループ] ページで、管理したいセキュリティグループを見つけ、[操作] 列の [ルールの管理] をクリックします。
[セキュリティグループ詳細] タブの [ルール] セクションにある [インバウンド] タブで、[ルールの追加] をクリックします。
[セキュリティグループルールの作成] ダイアログボックスで、パラメーターを設定します。その後、[送信] をクリックします。次の表にパラメーターを示します。
パラメーター
説明
アクション
ルールの操作を選択します。この例では、[許可] が選択されています。
優先度
ルールの優先度を選択します。値が小さいほど、優先度が高くなります。有効な値:1~100。
この例では、デフォルト値の [1] が使用されます。
プロトコル
許可するリクエストのプロトコルタイプを選択します。この例では、[すべての ICMPv6] が選択されています。
ソース
ドロップダウンリストから [IPv6] を選択し、::/0 を入力します。これは、ルールがすべての IPv6 アドレスに適用されることを示します。
説明ビジネス要件に基づいて、特定の IPv6 アドレスを指定できます。
宛先 (現在のインスタンス)
リクエストの宛先 IP アドレスとポートを指定します。
[プロトコル] パラメーターを [すべての ICMPv6] に設定すると、[-1/-1] が自動的に選択され、変更できません。
ステップ 3:NLB インスタンスの作成
NLB コンソールにログインします。
[インスタンス] ページで、[NLB の作成] をクリックします。
購入ページで、パラメーターを設定し、[今すぐ購入] をクリックします。
次の表では、一部のパラメーターのみを説明しています。他のパラメーターはデフォルト値のままにします。詳細については、「NLB インスタンスの作成と管理」をご参照ください。
デュアルスタック NLB インスタンスを作成すると、デフォルトでプライベート IPv6 アドレスが割り当てられます。次の手順を実行して、プライベート IPv6 アドレスをパブリック IPv6 アドレスに変更します。
[インスタンス] ページに戻り、NLB インスタンスの ID をクリックします。
インスタンスの詳細 タブで、基本情報 セクションに移動し、ネットワーク パラメーターを見つけます。次に、[IPv6:プライベート] の横にある ネットワークタイプの変更 をクリックします。
ネットワークタイプの変更 メッセージで、OK をクリックします。
上記の手順を完了すると、プライベート IPv6 アドレスがパブリック IPv6 アドレスに変更されます。
ステップ 4:サーバーグループの作成
上部のナビゲーションバーで、NLB インスタンスがデプロイされているリージョンを選択します。
[サーバーグループ] ページで、[サーバーグループの作成] をクリックします。
[サーバーグループの作成] ダイアログボックスで、パラメーターを設定し、[作成] をクリックします。
次の表では、主要なパラメーターのみを説明しています。他のパラメーターはデフォルト値を使用します。詳細については、「サーバーグループの作成と管理」をご参照ください。
パラメーター
説明
サーバーグループタイプ
サーバーグループのタイプを選択します。この例では、[サーバータイプ] が選択されています。
サーバーグループ名
サーバーグループの名前を入力します。
VPC
サーバーグループの VPC を選択します。
説明VPC で IPv6 が有効になっており、VPC が NLB インスタンスと同じリージョンにあることを確認してください。
バックエンドサーバープロトコル
バックエンドプロトコルを選択します。この例では、[TCP] が選択されています。
スケジューリングアルゴリズム
スケジューリングアルゴリズムを選択します。この例では、[加重ラウンドロビン] が選択されています。
IPv6 のマウント
IPv6 を有効にするかどうかを指定します。この例では、[IPv6] が有効になっています。
ヘルスチェック
ヘルスチェック機能を有効にするかどうかを指定します。この例では、デフォルト設定が使用されます。
[操作] 列で、バックエンドサーバーの変更 をクリックし、次に バックエンドサーバーの追加 をクリックします。
[バックエンドサーバーの追加] パネルで、[サーバータイプ] を [ECS/ENI] に設定し、ECS01 と ECS02 を選択し、[IP] 列で ECS01 の IPv4 アドレスと ECS02 の IPv6 アドレスを選択し、[次へ] をクリックします。
ポート/重み ステップで、ECS01 と ECS02 の重みとポートを設定し、[OK] をクリックします。
この例では、両方の ECS インスタンスがポート 80 とデフォルトの重み 100 を使用します。
ステップ 5:リスナーの設定
左側のナビゲーションウィンドウで、 を選択します。
[インスタンス] ページで、NLB インスタンスを見つけ、[操作] 列の [リスナーの作成] をクリックします。
リスナーの設定 ステップで、パラメーターを設定し、[次へ] をクリックします。
次の表では、一部のパラメーターのみを説明しています。他のパラメーターはデフォルト値のままにします。詳細については、「TCP リスナーの追加」をご参照ください。
パラメーター
説明
リスナープロトコルの選択
リスナープロトコルを選択します。この例では、[TCP] が選択されています。
リスナーポート
リクエストを受信してバックエンドサーバーに転送するためのリスナーポートを指定します。この例では、ポート 80 が選択されています。
リスナー名
リスナーの名前を入力します。
詳細設定
この例では、デフォルト設定が使用されます。[変更] をクリックして設定を変更できます。
サーバーグループ ステップで、サーバータイプ を選択し、サーバータイプ の横にあるドロップダウンリストからサーバーグループを選択し、バックエンドサーバーを確認してから、[次へ] をクリックします。
確定 ステップで、設定を確認し、[送信] をクリックします。
OK をクリックして [リスナー] タブに戻ります。ヘルスチェックステータス のリスナーのステータスが [正常] に変わると、ECS01 と ECS02 は NLB インスタンスからのリクエストを転送できるようになります。
ステップ 6:DNS レコードの設定
実際のビジネスシナリオでは、CNAME レコードを使用してカスタムドメイン名を NLB インスタンスのドメイン名にマッピングすることを推奨します。
左側のナビゲーションウィンドウで、 を選択します。
[インスタンス] ページで、管理したい NLB インスタンスのドメイン名をコピーします。
次の手順を実行して、CNAME レコードを作成します:
説明ドメイン名が Alibaba Cloud Domains を使用して登録されていない場合は、DNS レコードを設定する前にドメイン名を Alibaba Cloud DNS に追加する必要があります。詳細については、「ドメイン名の管理」をご参照ください。ドメイン名が Alibaba Cloud Domains を使用して登録されている場合は、このステップをスキップしてください。
Alibaba Cloud DNS コンソールにログインします。
[権威 DNS 解決] ページで、ドメイン名を見つけ、[操作] 列の [DNS 設定] をクリックします。
ドメイン名詳細ページの [DNS 設定] タブで、[DNS レコードの追加] をクリックします。
[DNS レコードの追加] パネルで、パラメーターを設定し、[OK] をクリックします。次の表にパラメーターを示します。
パラメーター
説明
レコードタイプ
ドロップダウンリストから [CNAME] を選択します。
ホスト名
ドメイン名のプレフィックスです。この例では、@ が入力されます。
説明ドメイン名がルートドメインの場合は、@ を入力します。
DNS リクエストソース
[デフォルト] を選択します。
レコード値
CNAME、つまり NLB インスタンスのドメイン名を入力します。
TTL 期間
DNS サーバーにキャッシュされる CNAME レコードの生存時間 (TTL) 値を指定します。この例では、デフォルト値が使用されます。
ステップ 7:結果の検証
テスト用のドメイン名を取得します。
CNAME レコードを設定してカスタムドメイン名を NLB インスタンスのドメイン名にマッピングした場合、カスタムドメイン名をテストドメイン名として使用します。
カスタムドメイン名を使用しない場合は、NLB コンソールにログインし、NLB インスタンスがデプロイされているリージョンを選択し、[ドメイン名] 列で NLB インスタンスのドメイン名をコピーします。そのドメイン名をテストドメイン名として使用します。
NLB インスタンスの可用性をテストします。
説明NLB インスタンスの可用性をテストするには、クライアントが IPv6 をサポートしていることを確認してください。
IPv6 サービスにアクセスできる Linux クライアントを使用してテストを実行します。CentOS を使用していて telnet がインストールされていない場合は、
yum install -y telnetコマンドを実行して telnet をインストールします。telnet ドメイン名 ポートコマンドを実行します。次の応答パケットで、[nlb-... に接続しました] は、NLB インスタンスがバックエンドサーバーにリクエストを転送できることを示します。Trying *.*.*.*... Connected to www.example.com. Escape character is '^]'ブラウザからドメイン名 (例:
http://ドメイン名) にアクセスします。次の図は、NLB インスタンスがバックエンドサーバーにリクエストを転送できることを示しています。
(オプション) エラーをシミュレートします。
ECS01 で
systemctl stop nginx.serviceコマンドを実行して、アプリケーションを停止します。数分待ってから、再度
telnet ドメイン名 ポートコマンドを実行します。[nlb-... に接続しました] という応答パケットが返されます。Trying *.*.*.*... Connected to www.example.com. Escape character is '^]'ブラウザからドメイン名 (例:
http://ドメイン名) にアクセスします。次の図は、NLB インスタンスがバックエンドサーバーにリクエストを転送できることを示しています。
ECS01 で
systemctl start nginx.serviceコマンドを実行してアプリケーションを再起動し、ECS02 でsystemctl stop nginx.serviceコマンドを実行してアプリケーションを停止します。数分待ってから、再度
telnet ドメイン名 ポートコマンドを実行します。[nlb-... に接続しました] というエコー応答パケットが返されます。Trying *.*.*.*... Connected to www.example.com. Escape character is '^]'ブラウザからドメイン名 (例:
http://ドメイン名) にアクセスします。次の図は、NLB インスタンスがバックエンドサーバーにリクエストを転送できることを示しています。
テスト結果は、単一のバックエンドサーバーのエラーが NLB インスタンスの可用性に影響しないことを示しています。
リソースのリリース
ECS インスタンスとセキュリティグループをリリースします。
ECS01 とそのセキュリティグループを削除します:
上記の手順を繰り返して、ECS02 とそのセキュリティグループを削除します。
(オプション) DNS レコードを削除します。
詳細については、「DNS レコードの削除」をご参照ください。
NLB リソースをリリースします。
VPC リソースをリリースします。
VPC コンソールにログインします。上部のナビゲーションバーで、VPC が存在するリージョンを選択します。
[操作] 列の [削除] をクリックし、[強制的に削除] を選択して VPC と vSwitch を削除します。
関連ドキュメント
NLB の利用シーンとコンポーネントの詳細については、「NLB とは」をご参照ください。
NLB の機能の詳細については、「機能と特徴」をご参照ください。
NLB のクォータとクォータの引き上げ方法の詳細については、「パフォーマンスメトリックと制限」をご参照ください。
NLB が利用可能なリージョンの詳細については、「NLB がサポートするリージョンとゾーン」をご参照ください。
NLB の課金の詳細については、「NLB の課金ルール」をご参照ください。