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

Server Load Balancer:ウィザードを使用してレイヤ7リスナーをCLBからALBに移行するためのベストプラクティス

最終更新日:Dec 03, 2024

Application Load Balancer (ALB) は、Classic load Balancer (CLB) よりも高いレイヤー7負荷分散機能と高度なルーティング機能を提供します。 ALBは、アプリケーション層で大量のネットワークトラフィックのバランスを取ることができ、Web application Firewall (WAF) とインターフェイスします。 トラフィック転送と保護はALBに対して分離されます。 ALBは、ユーザーエクスペリエンスを向上させるより高度な機能をサポートします。 このトピックでは、ウィザードを使用してレイヤー7リスナーをCLBからALBに移行する方法について説明します。

制限事項

デフォルトでは、CLBからALBへの移行ウィザードは無効になっています。 このウィザードを使用する場合は、次の操作を実行します。Quota Centerコンソールにログインします。 左側のナビゲーションウィンドウで、[製品]> [特権] を選択します。 [特権] ページで、[クォータID] フィールドにslb_user_visible_gray_label/clone_clbと入力して特権を検索し、[操作] 列の [適用] をクリックします。 詳細については、「ALBクォータの管理」をご参照ください。

移行ウィザードがサポートするCLBインスタンス

  • 仮想プライベートクラウド (VPC) にデプロイされ、レイヤ7 HTTPまたはHTTPSリスナーが設定されている内部対応のIPv4 CLBインスタンス

  • レイヤ7 HTTPまたはHTTPSリスナーが設定されているインターネット接続IPv4 CLBインスタンス

移行ウィザードがサポートしていないCLBインスタンス

移行ウィザードは、次のタイプのCLBインスタンスをサポートしていません。 CLBインスタンスを手動で移行することを推奨します。 詳細については、「レイヤー7リスナーをCLBからALBに手動で移行するためのベストプラクティス」をご参照ください。

  • HTTPまたはHTTPSリスナーが設定されていないCLBインスタンス

  • クラシックネットワークにデプロイされている内部対応のCLBインスタンス

  • IPv6 CLBインスタンス

使用上の注意

  • ALBでサポートされていないリージョンでは、移行ウィザードを使用できません。 ALBでサポートされているリージョンの詳細については、「サポートされているリージョンとゾーン」をご参照ください。

  • WAFの設定は移行できません。 CLBインスタンスに対してWAFが有効になっている場合、移行完了後に移行先ALBインスタンスのWAFを手動で有効にする必要があります。 新しいALBインスタンスのWAF 3.0を有効にすることを推奨します。 詳細については、「WAF対応ALBインスタンスの有効化と管理」をご参照ください。

  • CLBインスタンスに設定されているしきい値トリガーのアラートルールは移行できません。 移行が完了したら、CloudMonitorコンソール、API操作の呼び出し、またはSDKを使用して、ターゲットALBインスタンスのアラートルールを設定できます。 詳細については、「ALBメトリクスのアラートルールの設定」をご参照ください。

  • Anti-DDoSはデフォルトで有効になっています。 Anti-DDoS保護のしきい値を上げるために使用される設定は移行できません。 移行が完了したら、Traffic SecurityコンソールでAnti-DDoS保護のしきい値を手動で上げることができます。

  • アクセス制御設定は移行できません。 移行が完了した後、移行先ALBインスタンスのアクセス制御を設定できます。 詳細については、「ネットワークACL」をご参照ください。

  • HTTPSリスナーのサーバー証明書と認証局 (CA) 証明書を手動で指定する必要があります。

  • CLBインスタンスのプライマリおよびセカンダリサーバーグループの構成をALBインスタンスに移行することはできません。

  • 内部対応のCLBインスタンスのバックエンドサーバーは、ALBインスタンスに直接移行できます。 インターネット接続CLBインスタンスのバックエンドサーバーをALBインスタンスに移行することはできません。 システムは、移行中にALBインスタンスが存在するVPCにサーバーグループを作成します。 バックエンドサーバーをサーバーグループに手動で追加する必要があります。 バックエンドサーバーは、ALBインスタンスと同じVPCに存在する必要があります。

課金

移行ウィザードは無料で使用できます。 ただし、ALB課金ルールに基づいて、移行中に作成されたALBインスタンスに対して課金されます。

ALB課金ルールの詳細については、「ALB課金ルール」をご参照ください。

CLB課金ルールの詳細については、次のトピックを参照してください。

前提条件

  • 移行するCLBインスタンスに対して、レイヤー7 HTTPまたはHTTPSリスナーが設定されています。

  • 関連するECS (Elastic Compute Service) インスタンスが作成されます。 この例では、4つのECSインスタンスが使用されています。

    • ビジネスアプリケーションをホストするECSインスタンス: バックエンドサーバーとして使用されるECS01およびECS02

    • テストに使用されるECSインスタンス: 移行前にトラフィックテストを実行するために使用されるECS03、および移行中にアクセストラフィックを検証するために使用されるECS04

      テスト用の既存のECSインスタンスがある場合、ECS03またはECS04を作成する必要はありません。

クリックして、この例で使用されているCLBインスタンスの設定を表示します

項目

移行前の設定

ネットワークタイプ

インターネットに接続

サービスアドレス: 47.XX. XX.144

サービスの提供に使用されるドメイン名

www.example.net

リスナープロトコル

HTTP (ポート80)

バックエンドサーバー

ECS01およびECS02

手順1: コンソールで移行ウィザードを使用する

  1. 次のいずれかの方法を使用して、移行ウィザードに移動します。

    方法1: CLBコンソールで移行ウィザードに移動する

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

    2. 上部のナビゲーションバーで、CLBインスタンスが存在するリージョンを選択します。

    3. 左側のナビゲーションウィンドウで、CLB (FKA SLB) > [インスタンス] を選択します。 [インスタンス] ページで、移行するCLBインスタンスを見つけ、インスタンスのIDをクリックします。

    4. インスタンスの詳細ページで、[移行ウィザード] タブをクリックし、確認メッセージを読み、[ALBへの移行] をクリックします。

    方法2: ALBコンソールで移行ウィザードに移動する

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

    2. 上部のナビゲーションバーで、CLBインスタンスが存在するリージョンを選択します。

    3. 左側のナビゲーションウィンドウで、[ALB]> [インスタンス] を選択します。 [インスタンス] ページで、[CLBからALBへの移行] をクリックします。

    4. [CLBからALBへの移行] ダイアログボックスで、確認メッセージを読み、移行するCLBインスタンスを選択し、[移行ウィザードを開く] をクリックします。

  2. [設定の確認] ステップで、CLBインスタンスの基本情報とALBインスタンスの定義済み設定を確認し、すべてのリスナーに対して感叹号.pngでマークされた項目を設定し、システム変更設定の確認チェックボックスをオンにして、[次へ] をクリックします。

    • 感叹号.png: 手動で設定する必要があるアイテム。

    • 感叹号 (1).png: システムによって自動的に変更されるアイテム。

    [リスナーの変更] および [証明書の変更] をクリックして、ALBリスナーの設定を変更できます。 証明書はHTTPSリスナーに対してのみ変更できます。

  3. [インスタンスの作成] ステップで、ALBインスタンスが属するVPCとvSwitchを設定し、[次へ] をクリックします。

    パラメーター

    説明

    [VPC]

    • 内部対応のCLBインスタンスを移行する場合、ALBインスタンスはデフォルトでCLBインスタンスと同じVPCに作成されます。

    • インターネット接続のCLBインスタンスを移行する場合、ALBインスタンスのVPCを手動で設定する必要があります。

    ゾーン

    ゾーンとvSwitchを選択します。

    1. ALBはマルチゾーン展開をサポートしています。 選択したリージョンで2つ以上のゾーンがサポートされている場合は、少なくとも2つのゾーンを選択して、サービスの高可用性を確保します。 ALBは追加料金を請求しません。

    2. 選択した各ゾーンのvSwitchを選択します。 使用可能なvSwitchがない場合は、プロンプトに従ってvSwitchを作成します。

    3. オプション: インターネット接続CLBインスタンスを移行する場合、選択したゾーンでEIPを選択する必要があります。

      • 選択したゾーンで使用可能なEIPがない場合は、[EIPの購入] を選択します。 次に、従量課金方式とデータ転送課金方式を使用するEIPが自動的に作成され、EIPがALBインスタンスに関連付けられます。 EIPはBGP (マルチISP) 回線を使用し、Anti-DDoS Origin Basicによって保護されています。

      • 既存のEIPをALBインスタンスに関連付けることもできます。

        重要
        • インターネット共有帯域幅インスタンスに関連付けられていない従量課金 (データ転送課金) EIPのみをALBインスタンスに関連付けることができます。

        • 同じALBインスタンスの異なるゾーンに割り当てられるEIPは、同じタイプである必要があります。

  4. [注文の確認] ステップで、ALBインスタンスの設定を確認し、[料金 /課金] および [利用規約] セクションのチェックボックスをオンにして、[次へ] をクリックします。

  5. [完了] ステップで、移行タスクが完了するまで待ちます。 次に、次の操作を実行できます。

    移行タスクが完了するまでに約1〜10分かかります。 Resource Orchestration Service (ROS) は、移行タスクを実行するために使用されます。 ROSコンソールに移動して、関連するスタック内のタスクの実行プロセスを表示できます。

    • [ALBインスタンスの表示] をクリックして、ALBインスタンスの詳細ページに移動します。

    • [CLBインスタンスリスト] をクリックして、CLBインスタンスリストに移動します。

    • ALBインスタンスリストをクリックして、ALBインスタンスリストに移動します。

  6. 移行タスクが完了したら、ALBインスタンスにバックエンドサーバーがあるかどうかを確認します。

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

    2. [インスタンス] ページで、ALBインスタンスを見つけ、インスタンスのIDをクリックします。

    3. インスタンスの詳細ページで、[リスナー] タブをクリックします。 [リスナー] タブで、管理するリスナーを見つけ、[操作] 列の [詳細の表示] をクリックします。

    4. [リスナーの詳細] タブで、[サーバーグループ (デフォルトの転送ルール)] セクションの [バックエンドサーバーの表示 /変更] をクリックします。 [バックエンドサーバー] タブに移動します。 [バックエンドサーバー] タブで、ALBインスタンスにバックエンドサーバーがあるかどうかを確認します。

      ALBインスタンスにバックエンドサーバーがない場合は、[バックエンドサーバーの追加] をクリックして、少なくとも2つのバックエンドサーバーをALBインスタンスに追加し、各バックエンドサーバーにアプリケーションをデプロイします。 これにより、ALBインスタンスはクライアントからのアクセス要求を転送できます。 この例では、ECS01とECS02がバックエンドサーバーとしてALBインスタンスに追加されます。

      • ECSインスタンスの作成方法の詳細については、「ウィザードを使用したインスタンスの作成」をご参照ください。

      • 次のサンプルコマンドを使用して、ECS01およびECS02にテストアプリケーションをデプロイします。

        ECS01にアプリケーションをデプロイするためのコマンド

        yum install -y nginx
        systemctl start nginx.service
        cd /usr/share/nginx/html/
        echo "Hello World ! This is ECS01." > index.html
        

        ECS02にアプリケーションをデプロイするためのコマンド

        yum install -y nginx
        systemctl start nginx.service
        cd /usr/share/nginx/html/
        echo "Hello World ! This is ECS02." > index.html
        

ステップ2: トラフィックテストの実行

(オプション) アクセスログ機能の有効化

ALBとSimple Log Serviceは、ALBインスタンスの負荷を監視して問題を特定できるアクセスログ機能を提供します。

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

  2. 上部のナビゲーションバーで、ALBインスタンスが存在するリージョンを選択します。

  3. 左側のナビゲーションウィンドウで、[ALB]> [インスタンス] を選択します。 [インスタンス] ページで、管理するALBインスタンスを見つけ、インスタンスのIDをクリックします。

  4. インスタンスの詳細ページで、[アクセスログ] タブをクリックします。 [アクセスログ] タブで、[アクセスログの作成] をクリックします。

  5. [アクセスログの作成] ダイアログボックスで、[プロジェクト] および [ログストア] パラメーターを設定し、[OK] をクリックします。 表示されるメッセージで、[OK] をクリックします。

    パラメーター

    説明

    プロジェクト

    リソースの分離と管理に使用されるSimple Log Serviceプロジェクト。 有効な値:

    • [プロジェクトの選択]: ドロップダウンリストからプロジェクトを選択します。

    • プロジェクトの作成: フィールドにプロジェクト名を入力します。 プロジェクトが自動的に作成されます。

    ログストア

    Simple Log Serviceでログを収集、保存、およびクエリするために使用されるLogstore。 有効な値:

    • Logstoreの選択: ドロップダウンリストからLogstoreを選択します。

    • Logstoreの作成: フィールドにLogstore名を入力します。 Logstoreは自動的に作成されます。 プロジェクトの作成を選択した場合、Logstoreの作成を選択する必要があります。

    サービス連携ロールの作成に関する注意事項

    この操作を実行すると、サービスにリンクされたロールが自動的に作成されます。

テストトラフィック

  1. ECS03にログインします。 詳細については、「ECSインスタンスへの接続方法」をご参照ください。

    説明

    この例では、インスタンスの購入時にパブリックIPアドレスがECS03に割り当てられます。

  2. 次のコマンドを実行してhostsファイルを開きます。

    sudo vi /etc/hosts

    ALBインスタンスのEIPとドメイン名をhostsファイルに追加します。 変更が完了したら、ファイルを保存して閉じます。

    118.XX.XX.113 www.example.net
  3. 次のコマンドを実行して、ALBインスタンスがトラフィックを期待どおりに転送できるかどうかを確認します。

    curl -v www.example.net

    以下の図にテスト結果を示します。

    image.pngimage.png

  4. 必要に応じて、 ALBコンソールに移動します。アクセスログの詳細ページのタブALBインスタンスの右側にあるリンクをクリックし、シンプルなログサービスアクセスログを表示します。

    访问日志Simple Log Serviceコンソールでは、request_uri、http_host、upstream_addr、statusなどのフィールドに基づいて、ALBインスタンスのドメイン名またはURLベースの転送ルールの実行ログを表示できます。

ステップ3: ALBインスタンスへのトラフィックの移行

警告
  • トラフィックをALBインスタンスに移行する前に、CLBインスタンスの転送ルールとALBインスタンスの転送ルールを比較します。 それらが完全にテストされていることを確認し、同じ方法でトラフィックを転送します。 これにより、移行中のビジネスへの予期しない影響を防ぎます。

  • オフピーク時にCLBインスタンスからトラフィックを移行することを推奨します。

この例では、AレコードがCLBインスタンスに設定されています。 サービスドメイン名は、Aレコードに基づいてCLBインスタンスのIPアドレスに解決されます。 ALBインスタンスの設定を確認した後、CLBインスタンスからALBインスタンスにトラフィックを移行します。 この例では、Alibaba Cloud DNSが使用されています。 CLBインスタンスからALBインスタンスにトラフィックを移行するには、次の手順を実行します。 Alibaba Cloud DNSの詳細については、「パブリック権限DNS解決」をご参照ください。现状

迁移步骤

手順1: CLBインスタンスの一時ドメイン名の設定

ALBインスタンスにCNAMEレコードを追加することを推奨します。 DNSレコードの重みを設定する条件を満たすには、一時ドメイン名にCNAMEレコードを追加し、一時ドメイン名をCLBインスタンスのIPアドレスに指定する必要があります。 この例では、CLBインスタンスのドメイン名はexample.netです。

説明

同じドメイン名の異なるDNSレコードの重みを設定するには、DNSレコードのタイプ、ホスト名、およびISP回線が同じであることを確認します。 サポートされるレコードタイプは、A、CNAME、およびAAAAです。

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

  2. [権限のあるDNS解決] ページで、ドメイン名www.example.netを見つけてクリックします。 ドメイン名はCLBインスタンスを指します。

  3. ドメイン名の詳細ページの [DNS設定] タブで、[DNSレコードの追加] をクリックします。 [DNSレコードの追加] パネルで、次のパラメーターを設定し、[OK] をクリックします。

    パラメーター

    説明

    レコードタイプ

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

    ホスト名

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

    DNSリクエストソース

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

    レコード値

    一時ドメイン名を入力します。 この例では、web0.example.netが入力されます。

    TTL

    CNAMEレコードの生存時間 (TTL) 値を指定します。 TTLは、レコードがDNSサーバーにキャッシュされる期間を決定します。 この例では、TTLは5秒に設定される。

  4. DNS設定タブで、CLBインスタンスのIPアドレスを指すAレコードを見つけ、[アクション] 列の変更をクリックします。。

  5. [DNSレコードの変更] パネルで、[ホスト名] パラメーターを変更し、[OK] をクリックします。 この例では、Hostnameパラメーターはweb0に設定されています。 他のパラメータは変更されない。

手順2: ALBインスタンスのCNAMEレコードの追加

  1. [ドメイン名解決] ページで、ドメイン名www.example.netを見つけてクリックします。 このドメイン名は、CLBインスタンスのIPアドレスを指します。

  2. ドメイン名の詳細ページの [DNS設定] タブで、[DNSレコードの追加] をクリックします。 [DNSレコードの追加] パネルで、次のパラメーターを設定し、[OK] をクリックします。

    パラメーター

    説明

    レコードタイプ

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

    ホスト名

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

    DNSリクエストソース

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

    レコード値

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

    TTL

    CNAMEレコードのTTL値を指定します。 TTLは、レコードがDNSサーバーにキャッシュされる期間を決定します。 この例では、TTLは5秒に設定される。

ステップ3: カナリアリリースを実行するための重みの設定

  1. 権威DNS解決ページで、管理するドメイン名のインスタンスIDを見つけてクリックします。

  2. をクリックし、重量設定タブで、管理するドメイン名を見つけて、セット重量で、アクション列を作成します。

    同じドメイン名の異なるDNSレコードの重みを設定するには、DNSレコードのタイプ、ホスト名、およびISP回線が同じであることを確認します。 サポートされるレコードタイプは、A、CNAME、およびAAAAです。

  3. [重みの設定] パネルで、CLBおよびALBインスタンスのDNSレコードの重みを設定します。 CLBインスタンスのDNSレコードの重みを100に設定します。 ALBインスタンスのDNSレコードの重みを0に設定します。

    域名权重设置

  4. CLBインスタンスのDNSレコードの重みを徐々に減らし、ALBインスタンスのDNSレコードの重みを徐々に増やします。 サービスが影響を受けないようにしてください。

  5. ALBインスタンスと同じVPCにあるECS04にログインし、digコマンドを複数回実行してトラフィックの移行結果を確認します。

    説明

    パブリックIPアドレスがECS04に割り当てられ、digはyum install bind-utilsコマンドを実行してECS04にインストールされます。

    dig www.example.net

    以下の図は結果を示す。 結果は、リクエストがDNSレコードの重みに基づいてALBおよびCLBインスタンスに転送されることを示しています。流量测试1流量测试2

ステップ4: トラフィックの移行を完了する

トラフィックテストの結果に基づいて、CLBインスタンスのDNSレコードの重みを0に徐々に減らし、ALBインスタンスのDNSレコードの重みを100に徐々に増やします。 上記の操作を実行すると、トラフィックはCLBインスタンスからALBインスタンスに移行されます。 CLBインスタンスへのすべての永続接続が閉じられ、CLBインスタンスに新しいトラフィックが送信されない場合、CLBインスタンスを一定期間監視してからCLBインスタンスをリリースできます。 CLBインスタンスをリリースする方法の詳細については、「CLBインスタンスの作成と管理」をご参照ください。

DNSサービスプロバイダーでCNAMEレコードの重みを指定できない場合は、をクリックして別の移行ソリューションを表示します。

临时流量切换方案

よくある質問

  1. CLBインスタンスのリダイレクトルールと転送ルールを移行するにはどうすればよいですか。

    移行中、移行先ALBインスタンスのリダイレクトルールとドメイン名およびURLベースの転送ルールが自動的に設定されます。 詳細については、「リスナーの転送ルールの管理」をご参照ください。

  2. CLBインスタンスに設定されているHTTPSリスナーの証明書を移行するにはどうすればよいですか。

    1. 移行中に証明書を手動で指定する必要があります。 利用可能な証明書がない場合は、証明書管理サービスにアクセスして証明書を購入またはアップロードできます。

    2. 移行が完了すると、指定されたサーバー証明書、追加の証明書、およびCA証明書に基づいて、ALBインスタンスの証明書が自動的に設定されます。

  3. 異なるVPCのECSインスタンスがバックエンドサーバーと同じインターネット接続CLBインスタンスに追加されている場合、バックエンドサーバーを移行するにはどうすればよいですか。

    • ALBサーバーグループはVPCにデプロイする必要があります。 移行中、システムはALBインスタンスが存在するVPCにサーバーグループを作成します。 バックエンドサーバーをサーバーグループに手動で追加する必要があります。 バックエンドサーバーは、ALBインスタンスと同じVPCに存在する必要があります。

    • IPタイプのサーバーグループを使用すると、VPC間でECSインスタンスをバックエンドサーバーとしてALBインスタンスに追加できます。 VPC間のALBインスタンスにECSインスタンスを追加する場合は、移行ウィザードを使用して、移行後にALBインスタンス用のIPタイプのサーバーグループを作成できます。 次に、ECSインスタンスのIPアドレスを指定することで、異なるVPCのECSインスタンスをサーバーグループに追加できます。 詳細については、「VPCのECSインスタンスを別のリージョンのALBのバックエンドサーバーとして指定する」をご参照ください。

関連ドキュメント