すべてのプロダクト
Search
ドキュメントセンター

Server Load Balancer:ALBを使用してIPv6サービスの負荷を分散する

最終更新日:Dec 06, 2024

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インスタンスの作成と設定

  1. VPCコンソールにログインします。

  2. 左側のナビゲーションウィンドウで、vSwitchをクリックします。

  3. vSwitchのリージョンを選択します。 この例では、中国 (上海) が選択されています。

  4. vSwitchページで、管理するvSwitchを見つけて選択します。クラウドサービスの追加 > ECSインスタンスで、アクション列を作成します。

  5. Elastic Compute Serviceページの [カスタム起動] タブで、ECS01という名前のIPv4 ECSインスタンスとECS02という名前のIPv6 ECSインスタンスを作成します。 ECSインスタンスが追加されるセキュリティグループは、ポート80でのトラフィックを許可する必要があります。 詳細については、「カスタム起動タブでインスタンスを作成する」をご参照ください。

    この例では、クリックしてECS設定を表示します。

    ECS インスタンス

    リージョン

    [VPC]

    vSwitch

    IPバージョン

    [イメージ]

    ECS01

    中国 (上海)

    VPC1

    ゾーンEのvSwitch 1

    IPv4

    Alibaba Cloud Linux 3.2104 LTS 64ビット

    ECS02

    中国 (上海)

    VPC1

    ゾーンGのvSwitch 2

    IPv6

    説明

    IPv6 ECSインスタンスを作成するときは、IPv6セクションの [IPv6アドレスを無料で割り当てる] を選択します。

    Alibaba Cloud Linux 3.2104 LTS 64ビット

  6. リモートでECS01およびECS02にログオンします。 詳細については、「ECSインスタンスへの接続方法」をご参照ください。

  7. ECS01で次のコマンドを実行し、NGINXサービスをデプロイします。

    yum install -y nginx
    systemctl start nginx.service
    cd /usr/share/nginx/html/
    echo "Hello World ! this is ipv4 rs." > index.html
    
  8. ECS02で次のコマンドを実行し、NGINXサービスをデプロイします。

    yum install -y nginx
    systemctl start nginx.service
    cd /usr/share/nginx/html/
    echo "Hello World ! this is ipv6 rs." > index.html
    
  9. ECS02のIPv6アドレスを設定します。 詳細については、「IPv6アドレスの管理」をご参照ください。

    説明

    [イメージ] セクションでAlibaba Cloud Linux 3.2104 LTS 64ビットが選択され、[IPv6] セクションで [IPv6アドレス無料の割り当て] が選択されている場合は、この手順をスキップします。

    1. ECS02にログインします。

    2. ECS02のIPv6アドレスを設定します。

      ip addr | grep inet6またはifconfig | grep inet6コマンドを実行します。

      次の図に示すように、IPv6アドレスがECS02に設定されている場合は、この手順をスキップします。

      4.png

      1. コマンド出力にinet6に関する情報が含まれていない場合、IPv6はECS02に対して無効になります。 最初にECS02のIPv6を有効にします

      2. コマンド出力にinet6に関する情報が含まれている場合、ECS02に対してIPv6が有効になり、ECS02に割り当てられたIPv6アドレスを識別できます。 ECS02のIPv6アドレスを設定します

手順2: ECS02のセキュリティグループルールの設定

ECS02のセキュリティグループルールを設定して、インバウンドIPv6トラフィックを許可します。

  1. ECSコンソールにログインします。

  2. 左側のナビゲーションウィンドウで、ネットワーク&セキュリティ > セキュリティグループを選択します。

  3. 上部のナビゲーションバーで、セキュリティグループのリージョンを選択します。 この例では、中国 (上海) が選択されています。

  4. セキュリティグループページで、管理するセキュリティグループを見つけて、ルールの管理で、アクション列を作成します。

  5. セキュリティグループの詳細タブをクリックし、インバウンドのタブアクセスルールセクションにアクセスします。

  6. [ルールの追加] をクリックし、パラメーターを設定します。 次に、[操作] 列の [保存] をクリックします。 下表にパラメーターを示します。

    パラメーター

    説明

    Action

    ルールのアクションを選択します。 この例では、[許可] が選択されています。

    優先度

    ルールの優先度を選択します。 数字が小さいほど、優先度が高くなります。 有効な値: 1 ~ 100

    この例では、デフォルト値1が使用されます。

    プロトコルタイプ

    許可されるリクエストのタイプを選択します。 この例では、[すべてのICMP (IPv6)] が選択されています。

    ポート範囲

    IPv6クライアントからの要求を受け入れるポートの範囲を指定します。

    [プロトコルタイプ] パラメーターを [すべてのICMP (IPv6)] に設定すると、[宛先] ドロップダウンリストから -1/-1が自動的に選択され、変更できません。

    権限付与オブジェクト

    ルールが適用されるIPv6 CIDRブロックを入力します。

    この例では、::/0が使用されます。これは、ルールがすべてのIPv6アドレスに適用されることを示します。

    説明

    ビジネス要件に基づいてIPv6アドレスを指定できます。

    説明

    ルールの説明を入力します。

手順3: ALBインスタンスの作成

  1. ALBコンソールにログインします。

  2. インスタンスページで、ALBの作成をクリックします。

  3. 購入ページで、パラメーターを設定し、今すぐ購入、プロンプトに従って支払いを完了します。

    次の表に、一部のパラメーターのみを示します。 他のパラメーターにはデフォルト値を使用します。 パラメーターの詳細については、「ECSインスタンスの作成」をご参照ください。

    パラメーター

    説明

    リージョン

    ALBインスタンスを作成するリージョン。 この例では、中国 (上海) が選択されています。

    ネットワークタイプ

    ALBインスタンスのネットワークタイプを選択します。 選択したネットワークタイプに基づいて、ALBインスタンスにパブリックIPアドレスまたはプライベートIPアドレスが割り当てられます。 この例では、インターネットが選択されています。

    説明

    インターネットネットワークタイプは、IPv4 ALBインスタンスでのみサポートされています。 デフォルトでは、IPv6 ALBインスタンスは内部対応です。 この例では、インターネット接続IPv6 ALBインスタンスが作成されます。 ステップ4において、IPv6アドレスは、パブリックIPv6アドレスに変更される。

    [VPC]

    ALBインスタンスをデプロイするVPCを選択します。

    説明

    VPCでIPv6機能が有効になっていることを確認します。

    ゾーン

    1. 少なくとも2つのゾーンを選択します。 この例では、上海ゾーンE上海ゾーンGが選択されています。

    2. 各ゾーンのvSwitchを選択します。 この例では、ゾーンEのvSwitch 1とゾーンGのvSwitch 2が選択されています。

    IPモード

    ALBインスタンスのIPモードを選択します。 この例では、[静的IP] が選択されています。

    IPバージョン

    ALBインスタンスのIPバージョンを選択します。 この例では、Dual-stackが選択されています。

    エディション

    ALBインスタンスのエディションを選択します。 この例では、[標準] が選択されています。

    [インスタンス名]

    ALBインスタンスの名前を入力します。

    サービスにリンクされたロール

    初めてALBインスタンスを作成するときは、[サービスにリンクされたロールの作成] をクリックしてAliyunServiceRoleForAlbロールを作成します。 ALBインスタンスが他のクラウドサービスにアクセスできるように、ポリシーAliyunServiceRolePolicyForAlbがサービスにリンクされたロールにアタッチされています。 詳細については、「ALBのシステムポリシー」をご参照ください。

  4. デュアルスタックALBインスタンスを作成した後、ALBインスタンスのIPv6アドレスをパブリックIPv6アドレスに変更するには、次の手順を実行する必要があります。 詳細は、「IPバージョン」をご参照ください。

    1. インスタンスページに戻り、ALBインスタンスIDをクリックします。

    2. インスタンスの詳細 タブで、基本情報 セクションに移動し、ネットワーク パラメーターを見つけます。 次に、[IPv6: プライベート] の横にある ネットワークタイプの変更 をクリックします。

    3. ネットワークタイプの変更メッセージで、OKをクリックします。

      変更が有効になったら、IPv6ネットワークタイプが [パブリック] に変更されていることを確認できます。

ステップ4: サーバーグループの作成

  1. 左側のナビゲーションウィンドウで、ALB > サーバーグループを選択します。

  2. サーバーグループページで、サーバーグループの作成をクリックします。

  3. サーバーグループの作成ダイアログボックスでパラメーターを設定し、作成をクリックします。

    次の表に、一部のパラメーターのみを示します。 他のパラメーターにはデフォルト値を使用します。 詳細については、「サーバーグループの作成と管理」をご参照ください。

    パラメーター

    説明

    サーバーグループタイプ

    サーバグループの種類を指定します。 この例では、サーバータイプ が選択されています。

    サーバーグループ名

    サーバーグループの名前を入力します。

    [VPC]

    [VPC] ドロップダウンリストからVPCを選択します。 VPC内のサーバーのみをサーバーグループに追加できます。

    説明

    ALBインスタンスが作成されたVPCを選択します。 選択したVPCでIPv6が有効になっていることを確認します。

    バックエンドサーバープロトコル

    バックエンドプロトコルを選択します。 この例では、HTTPが選択されています。

    スケジューリングアルゴリズム

    スケジューリングアルゴリズムを選択します。 この例では、重み付きラウンドロビン が選択されています。

    IPv6 のマウント

    IPv6を有効にするかどうかを指定します。 この例では、IPv6がオンになっています。

    セッション維持

    セッションの継続時間を適用するかどうかを設定します。 この例では、デフォルト値が使用されます。 セッション維持は無効です。

    ヘルスチェック

    ヘルスチェック機能を有効にするかどうかを示します。 この例では、ヘルスチェック機能が有効になっています。

    ヘルスチェックの設定

    ヘルスチェック機能を有効にした後、[変更] をクリックしてヘルスチェックの設定を行います。

  4. サーバーグループページで、管理するサーバーグループのIDをクリックします。

  5. バックエンドサーバータブをクリックし、バックエンドサーバーの追加をクリックします。

  6. バックエンドサーバーの追加 パネルで、[ECS01] および [ECS02] を選択します。 [IP] 列で、ECS01のIPv4アドレスとECS02のIPv6アドレスを選択し、[次へ] をクリックします。

  7. ポート/重みステップで、ECS01とECS02のポートと重みを指定し、OKをクリックします。

    この例では、両方のECSインスタンスがポート番号80とデフォルトの重み100を使用します。

手順5: リスナーの設定

  1. インスタンスページで、管理するALBインスタンスのIDをクリックします。

  2. リスナータブをクリックし、リスナーの作成をクリックします。

  3. リスナーの設定ステップで、パラメータを設定し、次へをクリックします。

    次の表に、一部のパラメーターのみを示します。 他のパラメーターにはデフォルト値を使用します。 詳細については、「HTTPリスナーの追加」をご参照ください。

    パラメーター

    説明

    リスナープロトコルの選択

    リスナープロトコルを選択します。 この例では、HTTPが選択されています。

    リスナーポート

    リクエストを受信してバックエンドサーバーに転送するリスナーポートを指定します。 この例では、ポート80が指定されています。

    リスナー名

    リスナーの名前を入力します。

    詳細設定

    この例では、デフォルト設定を使用します。 [変更] をクリックして、設定を変更できます。

  4. サーバーグループステップを設定し、サーバータイプパラメーターに基づいてサーバーグループを選択します。サーバータイプバックエンドサーバーを確認し、次へをクリックします。

  5. 確定ステップで、設定を確認し、送信をクリックします。

  6. OK をクリックして [リスナー] タブに戻ります。 ヘルスチェックステータス 列のリスナーステータスが [正常] の場合、ECS01とECS02はALBインスタンスによって転送されたリクエストを処理できます。

ステップ6: DNSレコードの作成

実際のビジネスシナリオでは、CNAMEレコードを使用して、カスタムドメイン名をALBインスタンスのドメイン名にマップすることを推奨します。

  1. 左側のナビゲーションウィンドウで、ALB > インスタンスを選択します。

  2. インスタンスページのドメイン名をコピーします。ALBインスタンスを作成します。

  3. CNAMEレコードを作成するには、次の手順を実行します。

    説明

    ドメイン名がAlibaba Cloudドメインを使用して登録されていない場合、DNSレコードを設定する前にドメイン名をAlibaba Cloud DNSに追加する必要があります。 詳細については、「ドメイン名の管理」をご参照ください。

    1. Alibaba Cloud DNSコンソールにログインします。

    2. 権威DNS解決ページで、ドメイン名を見つけて、アクション列のDNS設定をクリックします。

    3. ドメイン名の詳細ページDNS設定タブをクリックし、DNSレコードの追加をクリックします。

    4. [DNSレコードの追加] パネルでパラメーターを設定し、[OK] をクリックします。 下表にパラメーターを示します。

      パラメーター

      説明

      レコードタイプ

      ドロップダウンリストから [CNAME] を選択します。

      ホスト名

      ドメイン名のプレフィックスを入力します。 この例では、@ を入力します。

      説明

      ルートドメイン名を使用する場合は、@ と入力します。

      DNSリクエストソース

      [デフォルト] を選択します。

      レコード値

      ALBインスタンスのドメイン名であるCNAMEを入力します。

      TTL

      DNSサーバーにキャッシュされるCNAMEレコードの有効期限 (TTL) 値を選択します。 この例では、デフォルト値が使用されます。

ステップ7: ネットワーク接続のテスト

説明

テストを実行する前に、クライアントがIPv6をサポートしていることを確認してください。 クライアントがIPv6をサポートしているかどうかを確認するには、http://test-ipv6.com/ にアクセスしてテストを実行します。

IPv6をサポートするクライアントを使用して、サーバECS01およびECS02にアクセスする。

  1. クライアントのCLIを開きます。

  2. 次のコマンドを複数回実行して、IPv6クライアントからのリクエストがラウンドロビンに基づいてIPv4およびIPv6 ECSインスタンスに転送されるかどうかをテストします。

    curl -6 http://<Domain name> -v

    次のエコー応答パケットは、IPv6クライアントがIPv4 ECSインスタンスにアクセスできることを示します。6-4

    次のエコー応答パケットは、IPv6クライアントがIPv6 ECSインスタンスにアクセスできることを示します。6-6

上記の結果は、IPv6クライアントからのリクエストがラウンドロビンに基づいてVPCのIPv4およびIPv6サービスに転送されることを示しています。

リリースリソース

  1. ECSインスタンスとセキュリティグループをリリースします。

    1. ECS01とそのセキュリティグループを削除する:

      1. ECS コンソールにログインします。 上部のナビゲーションバーで、ECS01インスタンスが存在するリージョンを選択し、ECS01の右側にあるimage.pngアイコンをクリックします。 表示されるダイアログボックスで、[リリース] を選択して、インスタンスをすぐにリリースします。

      2. ECS コンソールにログインします。 上部のナビゲーションバーで、ECS01が存在するリージョンを選択し、ECS01のセキュリティグループを選択し、[削除] をクリックしてセキュリティグループを削除します。

    2. 上記の手順を繰り返して、ECS02とそのセキュリティグループを削除します。

  2. DNSレコードを削除します。

    詳細については、「DNSレコードの削除」をご参照ください。

  3. ALBリソースをリリース:

    1. にログインします。ALBコンソール. 上部のナビゲーションバーで、ALBインスタンスが存在するリージョンを選択し、ALBインスタンスの右側にあるimage.pngアイコンをクリックします。 表示されるメッセージで、[リリース] を選択し、[OK] をクリックします。

    2. バックエンドサーバーを削除する方法の詳細については、「バックエンドサーバーの削除」をご参照ください。

    3. サーバーグループを削除する方法の詳細については、「サーバーグループの削除」をご参照ください。

  4. VPCリソースのリリース:

    1. VPC コンソールにログインします。 上部のナビゲーションバーで、VPCが存在するリージョンを選択します。

    2. VPCの右側にある [削除] をクリックします。 [強制削除] を選択し、[OK] をクリックしてVPCとvSwitchを削除します。