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

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

最終更新日:Nov 14, 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ゲートウェイが自動的に作成されます。 IPv6ゲートウェイのインターネット帯域幅が有効になっていることを確認します。

  • vSwitchは、中国 (上海) リージョンのゾーンEとゾーンGのそれぞれに作成されます。 この例では、ゾーンEのvSwitchはvSwitch 1、ゾーンGのvSwitchはvSwitch 2という名前です。 vSwitch 2ではIPv6が有効になっています。 詳細については、「vSwitchのIPv6の有効化」をご参照ください。

  • ドメイン名を登録し、そのドメイン名に対して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

    ECS02

    中国 (上海)

    VPC1

    ゾーンGのvSwitch 2

    IPv6

    説明

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

    Alibaba Cloud Linux

  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. IPv6アドレスをECS02に割り当てます。

    説明

    IPv6セクションで [IPv6アドレス無料の割り当て] が選択されている場合は、この手順をスキップします。

    この例では、IPv6アドレスが手動でECS02に割り当てられる。 詳細については、「手順4: IPv6アドレスの設定」をご参照ください。

    1. vi /etc/sysconfig/network-scripts/ifcfg-eth0コマンドを実行して、ネットワークインターフェイスコントローラー (NIC) の構成ファイルを開きます。 コマンドのeth0をNICの実際の識別子に置き換えます。 ファイルに次の設定を追加します。

      DHCPV6C=yes
      IPV6INIT=yes
    2. 設定を追加した後、Escキーを押し、:wqと入力し、enterキーを押してファイルを保存して終了します。

    3. ECS02を再起動します。

      reboot
    4. ECS02を再起動して、IPv6がECS02に対して有効かどうかを確認します。

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

    • コマンド出力にinet6に関する情報が含まれている場合、IPv6はECS02に対して有効です。

      • コマンド出力にinet6に関する情報が含まれていない場合、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レコードを作成するには、次の手順を実行します。

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

    2. ドメイン名の解決ページで、ドメイン名の追加をクリックします。

    3. ドメイン名の追加ダイアログボックスでドメイン名を入力し、OKをクリックします。

      重要

      CNAMEレコードを追加する前に、TXTレコードを使用してドメイン名の所有権を確認する必要があります。

    4. 管理するドメイン名を見つけて、アクション列のDNS設定をクリックします。

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

    6. [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を削除します。