Application Load Balancer (ALB) はIPv6リクエストを転送できます。 このトピックでは、デュアルスタックALBインスタンス用にIPv4およびIPv6 Elastic Compute Service (ECS) インスタンスを含むデュアルスタックサーバーグループを設定する方法について説明します。 これにより、IPv6クライアントは、ALBインスタンスを使用してバックエンドのIPv4およびIPv6サービスにアクセスできます。
サンプルシナリオ
以下の図は一例です。 ALBを使用して、IPv6クライアントからのリクエストをインターネット経由で仮想プライベートクラウド (VPC) のIPv4およびIPv6サービスに転送したい企業があります。 この要件を満たすには、IPv4とIPv6をサポートするECSインスタンスを作成し、VPCにデュアルスタックALBインスタンスを作成し、IPv6をサポートするサーバーグループを作成する必要があります。 上記の手順が完了すると、IPv6クライアントからのリクエストは、ALBインスタンスを使用してバックエンドECSインスタンスのIPv4およびIPv6サービスに転送できます。
制限事項
デュアルスタックALBインスタンスをサポートするリージョンの詳細については、「ALBインスタンスの概要」をご参照ください。
デュアルスタック機能を使用するには、VPCのゾーンのvSwitchに対してIPv6機能を有効にする必要があります。
デュアルスタックALBインスタンスは、IPv4およびIPv6クライアントからのリクエストをIPv4およびIPv6バックエンドサービスに転送できます。
デュアルスタックALBインスタンスは、ECSインスタンス、ENI、エラスティックコンテナインスタンス、およびIPアドレスのバックエンドサーバーにデプロイされたIPv4バックエンドサービスにIPv6クライアントからのリクエストを転送できます。 Function Computeタイプのバックエンドサーバーはサポートされていません。
デュアルスタックALBインスタンスは、IPv6クライアントからのリクエストを、ECSインスタンス、ENI、およびエラスティックコンテナインスタンスのバックエンドサーバーにデプロイされたIPv6バックエンドサービスに転送できます。 IPアドレスまたはFunction Computeタイプのバックエンドサーバーはサポートされていません。
IPv4 ALBインスタンスをデュアルスタックインスタンスにアップグレードすることはできません。 必要に応じてデュアルスタックALBインスタンスを作成できます。
デュアルスタックサーバーグループをIPv4 ALBインスタンスのリスナーに関連付けることはできません。
前提条件
IPv6をサポートするVPCが中国 (上海) リージョンに作成されます。 この例では、VPC1という名前のVPCが作成されます。 IPv6を有効にすると、IPv6ゲートウェイが自動的に作成されます。 詳細については、「IPv4とIPv6の両方をサポートするVPCの作成」をご参照ください。
vSwitchは、中国 (上海) リージョンのゾーンEとゾーンGのそれぞれに作成されます。 この例では、ゾーンEのvSwitchはvSwitch 1、ゾーンGのvSwitchはvSwitch 2という名前です。 vSwitch 1とvSwitch 2の両方でIPv6が有効になっています。 詳細については、「IPv4とIPv6をサポートするvSwitchの作成」をご参照ください。
ドメイン名を登録し、そのドメイン名に対してICP (Internet content provider) 番号を取得する。 詳細については、「ジェネリックドメイン名の登録」および「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.html
ECS02で次のコマンドを実行し、NGINXサービスをデプロイします。
yum install -y nginx systemctl start nginx.service cd /usr/share/nginx/html/ echo "Hello World ! this is ipv6 rs." > index.html
ECS02のIPv6アドレスを設定します。 詳細については、「IPv6アドレスの管理」をご参照ください。
説明[イメージ] セクションでAlibaba Cloud Linux 3.2104 LTS 64ビットが選択され、[IPv6] セクションで [IPv6アドレス無料の割り当て] が選択されている場合は、この手順をスキップします。
ECS02にログインします。
ECS02のIPv6アドレスを設定します。
ip addr | grep inet6
またはifconfig | grep inet6
コマンドを実行します。次の図に示すように、IPv6アドレスがECS02に設定されている場合は、この手順をスキップします。
コマンド出力にinet6に関する情報が含まれていない場合、IPv6はECS02に対して無効になります。 最初にECS02のIPv6を有効にします。
コマンド出力にinet6に関する情報が含まれている場合、ECS02に対してIPv6が有効になり、ECS02に割り当てられたIPv6アドレスを識別できます。 ECS02のIPv6アドレスを設定します。
手順2: ECS02のセキュリティグループルールの設定
ECS02のセキュリティグループルールを設定して、インバウンドIPv6トラフィックを許可します。
ECSコンソールにログインします。
左側のナビゲーションウィンドウで、を選択します。
上部のナビゲーションバーで、セキュリティグループのリージョンを選択します。 この例では、中国 (上海) が選択されています。
セキュリティグループページで、管理するセキュリティグループを見つけて、ルールの管理で、アクション列を作成します。
セキュリティグループの詳細タブをクリックし、インバウンドのタブアクセスルールセクションにアクセスします。
[ルールの追加] をクリックし、パラメーターを設定します。 次に、[操作] 列の [保存] をクリックします。 下表にパラメーターを示します。
パラメーター
説明
Action
ルールのアクションを選択します。 この例では、[許可] が選択されています。
優先度
ルールの優先度を選択します。 数字が小さいほど、優先度が高くなります。 有効な値: 1 ~ 100
この例では、デフォルト値1が使用されます。
プロトコルタイプ
許可されるリクエストのタイプを選択します。 この例では、[すべてのICMP (IPv6)] が選択されています。
ポート範囲
IPv6クライアントからの要求を受け入れるポートの範囲を指定します。
[プロトコルタイプ] パラメーターを [すべてのICMP (IPv6)] に設定すると、[宛先] ドロップダウンリストから -1/-1が自動的に選択され、変更できません。
権限付与オブジェクト
ルールが適用されるIPv6 CIDRブロックを入力します。
この例では、::/0が使用されます。これは、ルールがすべてのIPv6アドレスに適用されることを示します。
説明ビジネス要件に基づいてIPv6アドレスを指定できます。
説明
ルールの説明を入力します。
手順3: ALBインスタンスの作成
ALBコンソールにログインします。
インスタンスページで、ALBの作成をクリックします。
購入ページで、パラメーターを設定し、今すぐ購入、プロンプトに従って支払いを完了します。
次の表に、一部のパラメーターのみを示します。 他のパラメーターにはデフォルト値を使用します。 パラメーターの詳細については、「ECSインスタンスの作成」をご参照ください。
パラメーター
説明
リージョン
ALBインスタンスを作成するリージョン。 この例では、中国 (上海) が選択されています。
ネットワークタイプ
ALBインスタンスのネットワークタイプを選択します。 選択したネットワークタイプに基づいて、ALBインスタンスにパブリックIPアドレスまたはプライベートIPアドレスが割り当てられます。 この例では、インターネットが選択されています。
説明インターネットネットワークタイプは、IPv4 ALBインスタンスでのみサポートされています。 デフォルトでは、IPv6 ALBインスタンスは内部対応です。 この例では、インターネット接続IPv6 ALBインスタンスが作成されます。 ステップ4において、IPv6アドレスは、パブリックIPv6アドレスに変更される。
[VPC]
ALBインスタンスをデプロイするVPCを選択します。
説明VPCでIPv6機能が有効になっていることを確認します。
ゾーン
少なくとも2つのゾーンを選択します。 この例では、上海ゾーンEと上海ゾーンGが選択されています。
各ゾーンのvSwitchを選択します。 この例では、ゾーンEのvSwitch 1とゾーンGのvSwitch 2が選択されています。
IPモード
ALBインスタンスのIPモードを選択します。 この例では、[静的IP] が選択されています。
IPバージョン
ALBインスタンスのIPバージョンを選択します。 この例では、Dual-stackが選択されています。
エディション
ALBインスタンスのエディションを選択します。 この例では、[標準] が選択されています。
[インスタンス名]
ALBインスタンスの名前を入力します。
サービスにリンクされたロール
初めてALBインスタンスを作成するときは、[サービスにリンクされたロールの作成] をクリックしてAliyunServiceRoleForAlbロールを作成します。 ALBインスタンスが他のクラウドサービスにアクセスできるように、ポリシーAliyunServiceRolePolicyForAlbがサービスにリンクされたロールにアタッチされています。 詳細については、「ALBのシステムポリシー」をご参照ください。
デュアルスタックALBインスタンスを作成した後、ALBインスタンスのIPv6アドレスをパブリックIPv6アドレスに変更するには、次の手順を実行する必要があります。 詳細は、「IPバージョン」をご参照ください。
インスタンスページに戻り、ALBインスタンスIDをクリックします。
インスタンスの詳細 タブで、基本情報 セクションに移動し、ネットワーク パラメーターを見つけます。 次に、[IPv6: プライベート] の横にある ネットワークタイプの変更 をクリックします。
ネットワークタイプの変更メッセージで、OKをクリックします。
変更が有効になったら、IPv6ネットワークタイプが [パブリック] に変更されていることを確認できます。
ステップ4: サーバーグループの作成
左側のナビゲーションウィンドウで、を選択します。
サーバーグループページで、サーバーグループの作成をクリックします。
サーバーグループの作成ダイアログボックスでパラメーターを設定し、作成をクリックします。
次の表に、一部のパラメーターのみを示します。 他のパラメーターにはデフォルト値を使用します。 詳細については、「サーバーグループの作成と管理」をご参照ください。
パラメーター
説明
サーバーグループタイプ
サーバグループの種類を指定します。 この例では、サーバータイプ が選択されています。
サーバーグループ名
サーバーグループの名前を入力します。
[VPC]
[VPC] ドロップダウンリストからVPCを選択します。 VPC内のサーバーのみをサーバーグループに追加できます。
説明ALBインスタンスが作成されたVPCを選択します。 選択したVPCでIPv6が有効になっていることを確認します。
バックエンドサーバープロトコル
バックエンドプロトコルを選択します。 この例では、HTTPが選択されています。
スケジューリングアルゴリズム
スケジューリングアルゴリズムを選択します。 この例では、重み付きラウンドロビン が選択されています。
IPv6 のマウント
IPv6を有効にするかどうかを指定します。 この例では、IPv6がオンになっています。
セッション維持
セッションの継続時間を適用するかどうかを設定します。 この例では、デフォルト値が使用されます。 セッション維持は無効です。
ヘルスチェック
ヘルスチェック機能を有効にするかどうかを示します。 この例では、ヘルスチェック機能が有効になっています。
ヘルスチェックの設定
ヘルスチェック機能を有効にした後、[変更] をクリックしてヘルスチェックの設定を行います。
サーバーグループページで、管理するサーバーグループのIDをクリックします。
バックエンドサーバータブをクリックし、バックエンドサーバーの追加をクリックします。
バックエンドサーバーの追加 パネルで、[ECS01] および [ECS02] を選択します。 [IP] 列で、ECS01のIPv4アドレスとECS02のIPv6アドレスを選択し、[次へ] をクリックします。
ポート/重みステップで、ECS01とECS02のポートと重みを指定し、OKをクリックします。
この例では、両方のECSインスタンスがポート番号80とデフォルトの重み100を使用します。
手順5: リスナーの設定
インスタンスページで、管理するALBインスタンスのIDをクリックします。
リスナータブをクリックし、リスナーの作成をクリックします。
リスナーの設定ステップで、パラメータを設定し、次へをクリックします。
次の表に、一部のパラメーターのみを示します。 他のパラメーターにはデフォルト値を使用します。 詳細については、「HTTPリスナーの追加」をご参照ください。
パラメーター
説明
リスナープロトコルの選択
リスナープロトコルを選択します。 この例では、HTTPが選択されています。
リスナーポート
リクエストを受信してバックエンドサーバーに転送するリスナーポートを指定します。 この例では、ポート80が指定されています。
リスナー名
リスナーの名前を入力します。
詳細設定
この例では、デフォルト設定を使用します。 [変更] をクリックして、設定を変更できます。
サーバーグループステップを設定し、サーバータイプパラメーターに基づいてサーバーグループを選択します。サーバータイプバックエンドサーバーを確認し、次へをクリックします。
確定ステップで、設定を確認し、送信をクリックします。
OK をクリックして [リスナー] タブに戻ります。 ヘルスチェックステータス 列のリスナーステータスが [正常] の場合、ECS01とECS02はALBインスタンスによって転送されたリクエストを処理できます。
ステップ6: DNSレコードの作成
実際のビジネスシナリオでは、CNAMEレコードを使用して、カスタムドメイン名をALBインスタンスのドメイン名にマップすることを推奨します。
左側のナビゲーションウィンドウで、
を選択します。インスタンスページのドメイン名をコピーします。ALBインスタンスを作成します。
CNAMEレコードを作成するには、次の手順を実行します。
説明ドメイン名がAlibaba Cloudドメインを使用して登録されていない場合、DNSレコードを設定する前にドメイン名をAlibaba Cloud DNSに追加する必要があります。 詳細については、「ドメイン名の管理」をご参照ください。
Alibaba Cloud DNSコンソールにログインします。
権威DNS解決ページで、ドメイン名を見つけて、アクション列のDNS設定をクリックします。
ドメイン名の詳細ページのDNS設定タブをクリックし、DNSレコードの追加をクリックします。
[DNSレコードの追加] パネルでパラメーターを設定し、[OK] をクリックします。 下表にパラメーターを示します。
パラメーター
説明
レコードタイプ
ドロップダウンリストから [CNAME] を選択します。
ホスト名
ドメイン名のプレフィックスを入力します。 この例では、@ を入力します。
説明ルートドメイン名を使用する場合は、
@
と入力します。DNSリクエストソース
[デフォルト] を選択します。
レコード値
ALBインスタンスのドメイン名であるCNAMEを入力します。
TTL
DNSサーバーにキャッシュされるCNAMEレコードの有効期限 (TTL) 値を選択します。 この例では、デフォルト値が使用されます。
ステップ7: ネットワーク接続のテスト
テストを実行する前に、クライアントがIPv6をサポートしていることを確認してください。 クライアントがIPv6をサポートしているかどうかを確認するには、http://test-ipv6.com/
にアクセスしてテストを実行します。
IPv6をサポートするクライアントを使用して、サーバECS01およびECS02にアクセスする。
クライアントのCLIを開きます。
次のコマンドを複数回実行して、IPv6クライアントからのリクエストがラウンドロビンに基づいてIPv4およびIPv6 ECSインスタンスに転送されるかどうかをテストします。
curl -6 http://<Domain name> -v
次のエコー応答パケットは、IPv6クライアントがIPv4 ECSインスタンスにアクセスできることを示します。
次のエコー応答パケットは、IPv6クライアントがIPv6 ECSインスタンスにアクセスできることを示します。
上記の結果は、IPv6クライアントからのリクエストがラウンドロビンに基づいてVPCのIPv4およびIPv6サービスに転送されることを示しています。
リリースリソース
ECSインスタンスとセキュリティグループをリリースします。
DNSレコードを削除します。
詳細については、「DNSレコードの削除」をご参照ください。
ALBリソースをリリース:
にログインします。ALBコンソール. 上部のナビゲーションバーで、ALBインスタンスが存在するリージョンを選択し、ALBインスタンスの右側にあるアイコンをクリックします。 表示されるメッセージで、[リリース] を選択し、[OK] をクリックします。
バックエンドサーバーを削除する方法の詳細については、「バックエンドサーバーの削除」をご参照ください。
サーバーグループを削除する方法の詳細については、「サーバーグループの削除」をご参照ください。
VPCリソースのリリース:
VPC コンソールにログインします。 上部のナビゲーションバーで、VPCが存在するリージョンを選択します。
VPCの右側にある [削除] をクリックします。 [強制削除] を選択し、[OK] をクリックしてVPCとvSwitchを削除します。