Classic Load Balancer (CLB) とは異なり、Application Load Balancer (ALB) はレイヤー 7 負荷分散に特化し、高度なルーティング機能を提供し、アプリケーションレイヤーで大規模なトラフィックを処理します。ワンクリックで CLB から ALB にレイヤー 7 リスナーを移行できるほか、トラフィック転送と保護を完全に分離する WAF もワンクリックで有効化できます。
移行の制限事項
サポートされている CLB インスタンスタイプ
-
レイヤー 7 リスナー (HTTP または HTTPS) が設定された、VPC 内の内部向け IPv4 CLB インスタンス。
-
レイヤー 7 リスナー (HTTP または HTTPS) が設定された、インターネット向け IPv4 CLB インスタンス。
サポートされていないシナリオ
移行ウィザードは、以下のシナリオをサポートしていません。CLB から ALB へレイヤー 7 リスナーを手動で移行することを推奨します。
-
HTTP または HTTPS リスナーが設定されていない CLB インスタンス。
-
クラシックネットワーク内の内部向け CLB インスタンス。
-
IPv6 CLB インスタンス。
移行の考慮事項
-
ALB が利用できないリージョンでは、移行はサポートされていません。ALB をサポートするリージョンについては、「ALB をサポートするリージョンとゾーン」をご参照ください。
-
移行ウィザードは WAF 設定を移行しません。CLB インスタンスで WAF が有効になっている場合は、移行後に移行先の ALB インスタンスに手動で WAF 保護を有効にする必要があります。新しい ALB インスタンスには WAF 3.0 を有効にすることを推奨します。詳細については、「ALB インスタンスの WAF 保護の有効化」をご参照ください。
-
移行ウィザードは CLB のしきい値ベースのアラートルールを移行しません。CloudMonitor コンソール、API 操作、または SDK を使用して、ALB インスタンスに新しいアラートルールを設定する必要があります。詳細については、「ALB メトリクスのアラートルールの設定」をご参照ください。
-
DDoS 保護は、ALB インスタンスではデフォルトで有効になっています。ただし、移行ウィザードはカスタム DDoS 保護しきい値を移行しません。移行後に トラフィックセキュリティコンソール でこれらのしきい値を手動で設定する必要があります。
-
移行ウィザードはアクセス制御設定を移行しません。アクセス制御が必要な場合は、移行後に ALB インスタンスに設定する必要があります。詳細については、「アクセス制御」をご参照ください。
-
HTTPS リスナーの場合、サーバー証明書と CA 証明書を手動で指定する必要があります。
-
移行ウィザードは CLB のプライマリ/セカンダリサーバーグループ設定を移行しません。
-
移行ウィザードは、内部向け CLB インスタンスのバックエンドサーバーを自動的に移行します。ただし、現在、インターネット向け CLB インスタンスのバックエンドサーバーは移行しません。移行ウィザードは、ALB インスタンスがある VPC 内に新しいサーバーグループを作成します。このサーバーグループにバックエンドサーバーを手動で追加する必要があります。バックエンドサーバーは、ALB インスタンスと同じ VPC 内にある必要があります。
課金
CLB から ALB へのワンクリック移行に追加料金は発生しません。新しい ALB インスタンスは、ALB の課金ルールに基づいて課金されます。
前提条件
-
移行対象の CLB インスタンスに、レイヤー 7 リスナー (HTTP または HTTPS リスナー) を設定します。
-
この例では、4 つの ECS インスタンスを使用します。
-
アプリケーションサーバー: ECS01 と ECS02 はバックエンドサーバーです。
-
テストサーバー: ECS03 で移行前のトラフィックをテストし、 ECS04 で移行中のトラフィックを検証します。
すでにテストサーバーがある場合は、 ECS03 と ECS04 を作成する必要はありません。
-
ステップ 1:移行ウィザードの使用
-
次のいずれかの方法で移行ウィザードを開きます。
方法 1:CLB コンソール
CLB コンソールにログインします。
-
トップナビゲーションバーで、CLB インスタンスが属するリージョンを選択します。
-
インスタンス ページで、対象のインスタンスを見つけ、その ID をクリックします。
-
移行ウィザード タブをクリックします。メッセージの情報を確認した後、ALB 移行ウィザード カードで 有効化 をクリックします。
方法 2:ALB コンソール
説明移行対象の CLB インスタンスと同じリージョンに ALB インスタンスが存在しない場合、この方法は使用できません。方法 1 を使用してください。
- ALBコンソールにログインします。
-
トップナビゲーションバーで、CLB インスタンスが属するリージョンを選択します。
-
インスタンス ページで、CLB を ALB への移行ウィザード をクリックします。
-
CLB を ALB への移行ウィザード ダイアログボックスで、メッセージ内の情報を確認し、移行する CLB インスタンスを選択して、移行ウィザードに移動する をクリックします。
-
設定の審査 ステップで、CLB インスタンスの基本情報と ALB インスタンスの事前設定情報を確認し、
アイコンが付いたすべてのリスナーを設定し、確認チェックボックスを選択して、次へ をクリックします。-
:手動での設定が必要な項目を示します。 -
:システムが自動的に変更する項目を示します。
リスナーの編集 と 証明書の編集 をクリックして、ALB リスナーの設定を変更できます。証明書は、HTTPS リスナーの場合にのみ変更できます。
-
-
インスタンスの作成 ステップで、新しい ALB インスタンスの VPC と vSwitch を設定し、次へ をクリックします。
パラメーター
説明
[VPC]
-
内部向け CLB インスタンスの場合、新しい ALB インスタンスはデフォルトで CLB インスタンスと同じ VPC にデプロイされます。
-
インターネット向け CLB インスタンスの場合、VPC を選択する必要があります。
[ゾーン]
ゾーンと vSwitch を選択します。
-
高可用性を実現するため、現在のリージョンで 2 つ以上のゾーンがサポートされている場合は、少なくとも 2 つのゾーンを選択することを推奨します。ALB では、複数のゾーンを使用しても追加料金は発生しません。
-
選択した各ゾーンで vSwitch を選択します。ゾーンに使用可能な vSwitch がない場合は、コンソールの指示に従って作成してください。
-
オプション:インターネット向け CLB インスタンスを移行する場合は、選択した各ゾーンで Elastic IP アドレス (EIP) を選択する必要があります。
-
利用可能な既存の EIP がない場合は、EIP の購入 を選択できます。 システムは、Anti-DDoS Origin Basic 保護を備えた従量課金 (データ転送量による課金) の BGP (マルチ ISP) Elastic IP アドレス (EIP) を自動的に作成し、ALB インスタンスに関連付けます。
-
既存の EIP を新しい ALB インスタンスに関連付けることもできます。
重要-
関連付けできるのは、Internet Shared Bandwidth インスタンスに含まれていない、従量課金 (データ転送量課金) の EIP のみです。
-
同じ ALB インスタンスの異なるゾーンにある EIP は、同じタイプである必要があります。
-
-
-
-
注文書の確認 ステップで、ALB インスタンスの設定を確認し、料金計算 セクションのチェックボックスを選択してから、移行を開始 をクリックします。
-
完了 ステップでは、移行が完了するのを待ちます。その後、以下の操作を実行できます。
Resource Orchestration Service (ROS) が移行を実行します。移行には 1~10 分かかります。画面の指示に従って ROS コンソールに移動し、対応するスタックで移行タスクのステータスを表示できます。
-
インスタンスの表示 をクリックして、新しい ALB インスタンスの詳細ページに移動します。
-
CLB インスタンスリストに戻る をクリックして、CLB インスタンスの一覧に戻ります。
-
ALB インスタンスリストに戻る をクリックすると、ALB インスタンスのリストに戻ります。
-
-
次のステップ:移行後、バックエンドサーバーが新しい ALB インスタンスに追加されていることを確認します。
-
ナビゲーションペインで、 を選択します。
-
インスタンス ページで、新しい ALB インスタンスを見つけ、その ID をクリックします。
-
リスナー タブをクリックし、対象のリスナーを見つけて 操作 列の 詳細を表示 をクリックします。
-
リスナーの詳細 タブで、サーバーグループ (デフォルトの転送ルール) セクションにある バックエンドサーバーの表示/変更 をクリックします。 表示される バックエンドサーバー タブで、バックエンドサーバーが表示されているかどうかを確認します。
バックエンドサーバーが表示されていない場合は、バックエンドサーバーの追加 をクリックして、少なくとも 2 つ追加します。また、ALB インスタンスがリクエストを分散できるように、それらのサーバーにアプリケーションをデプロイする必要もあります。この例では、ECS01 と ECS02 が ALB インスタンスのバックエンドサーバーとして追加されます。
-
ECS インスタンスの作成方法の詳細については、「ウィザードを使用したインスタンスの作成」をご参照ください。
-
以下に、ECS01 と ECS02 にテストアプリケーションをデプロイするコマンドの例を示します。
-
-
ステップ 2:トラフィックのテスト
(オプション) アクセスログの有効化
ALB は Simple Log Service (SLS) と統合してアクセスログを提供します。アクセスログを使用して、ALB インスタンスの負荷を監視し、問題をトラブルシューティングします。
- ALBコンソールにログインします。
-
上部メニューで、ALB インスタンスがデプロイされているリージョンを選択します。
-
インスタンス ページで、ターゲット ALB インスタンスを見つけてその ID をクリックします。
-
インスタンス詳細ページで、アクセスログ タブをクリックします。次に、アクセスログ タブで アクセスログの作成 をクリックします。
-
アクセスログの作成 ダイアログボックスで、プロジェクト と Logstore を設定し、OK をクリックします。確認ダイアログボックスで、もう一度 OK をクリックします。
パラメーター
説明
[プロジェクト]
Simple Log Service のリソース管理ユニットで、リソースの分離と制御に使用されます。
-
既存の Project の選択:ドロップダウンリストからプロジェクトを選択します。
-
Project の新規作成:新しいプロジェクトの名前を入力します。
[Logstore]
Simple Log Service のユニットで、ログデータの収集、保存、クエリに使用されます。
-
既存の Logstore の選択:ドロップダウンリストから Logstore を選択します。
-
Logstore の新規作成:新しい Logstore の名前を入力します。新しいプロジェクトを作成することを選択した場合は、新しい Logstore も作成する必要があります。
[サービスにリンクされたロールの作成に関する注意事項]
この操作により、必要な権限を持つサービスリンクロールが自動的に作成されます。
-
トラフィックのテスト
-
説明
この ECS03 インスタンスにはパブリック IP アドレスがあります。
-
次のコマンドを実行して hosts ファイルを変更します。
sudo vi /etc/hostshosts ファイルに、ALB インスタンスの Elastic IP アドレスとドメイン名を追加し、ファイルを保存して閉じます。
118.XX.XX.113 www.example.net -
次のコマンドを実行して、ALB インスタンス経由のトラフィック転送をテストします。
curl -v www.example.net次の図は、期待される出力を示しています。


-
(オプション) アクセスログを表示するには、ALB コンソールに戻ります。お使いの ALB インスタンスの アクセスログ タブで、保存先パス の横にあるリンクをクリックします。
Simple Log Service コンソールでは、必要に応じて request_uri、http_host、upstream_addr、status などのフィールドを組み合わせて、ALB のドメイン名または URL ベースの転送ルールのランタイムログを表示することもできます。
ステップ 3:ALB インスタンスへのトラフィック移行
-
CLB と ALB の転送ルールではドメイン名と URL の処理方法が異なるため、トラフィックを移行する前に、CLB 転送ルールと ALB 転送ルールの設定を注意深く比較する必要があります。まったく同じ機能を提供するために、CLB と ALB の転送ルールの違いに基づいて、ALB の転送ルールを調整する必要がある場合があります。 さらに、移行プロセス中にビジネスへの予期しない影響を防ぐために、すべての設定を十分にテストおよび検証する必要があります。
-
オフピーク時間に CLB のトラフィック移行を実行してください。
次の手順では、CLB インスタンスに対して DNS 名前解決がすでに設定されており、サービスドメイン名が CLB インスタンスのサービスアドレスを指す A レコードが存在するものとします。 ALB インスタンスの設定を確認した後、次のように CLB インスタンスから ALB インスタンスへトラフィックを移行します。このトピックでは、Alibaba Cloud DNS を例として使用します。Alibaba Cloud DNS の詳細については、「パブリック権威 DNS 名前解決」をご参照ください。
ステップ 1:一時ドメインと CNAME レコードの設定
ALB インスタンスには CNAME レコードを推奨します。 加重ルーティングを有効にするには、CLB インスタンスのサービスアドレスを指す一時ドメイン名の CNAME レコードを追加します。次の手順では、CLB インスタンスのサービスドメイン名として www.example.net を使用します。
加重ルーティングを使用するには、同じホスト名とクエリソースを共有する複数の A、CNAME、または AAAA レコードが必要です。
-
Alibaba Cloud DNS コンソールにログインします。
-
インターネットの権威ある DNS 解決 ページで、CLB インスタンスのドメイン名
example.netを見つけてクリックします。 -
解決設定 ページで、CLB インスタンスのサービスアドレスを指す A レコードを探し、操作列の Edit をクリックします。
-
Edit Record パネルで、ホストレコード を変更し、OK をクリックします。 この例では、ホストレコード を web0 に変更します。 その他のパラメーターは変更しません。
-
解決設定 ページで、Add Record をクリックします。Add Record パネルで、次のパラメーターを設定し、OK をクリックします。
パラメーター
説明
[レコードタイプ]
ドロップダウンリストから [CNAME] を選択します。
[ホストレコード]
ドメイン名のプレフィックスです。この例では、 www と入力します。
[DNS リクエストソース]
[デフォルト] を選択します。
TTL
DNS レコードが DNS サーバーにキャッシュされる時間を制御する生存時間 (TTL) です。この例では、値を 5 秒に設定します。
[レコード値]
一時ドメイン名を入力します。この例では、 web0.example.net と入力します。
ステップ 2:ALB の CNAME レコードの追加
解決設定 ページで、Add Record をクリックします。Add Record パネルで、次のパラメーターを設定し、OK をクリックします。
|
パラメーター |
説明 |
|
[レコードタイプ] |
ドロップダウンリストから [CNAME] を選択します。 |
|
[ホストレコード] |
ドメイン名のプレフィックスです。この例では、 www と入力します。 |
|
[DNS リクエストソース] |
[デフォルト] を選択します。 |
|
TTL |
DNS レコードが DNS サーバーにキャッシュされる時間を制御する生存時間 (TTL) です。この例では、値を 5 秒に設定します。 |
|
[レコード値] |
ALB インスタンスの DNS 名を入力します。 |
ステップ 3:重み設定によるカナリアリリースの開始
-
解決設定 ページで、ステップ 2 で追加した CNAME レコードを見つけ、Edit の横にあるドロップダウン矢印をクリックして レコードセットを変更する を選択します。
-
Edit Record パネルの下部にある レコードコレクション セクションで、CLB インスタンスと ALB インスタンスの DNS レコードのウェイトを次のように設定します。CLB インスタンスの DNS レコードのウェイトを 100 に、ALB インスタンスの DNS レコードのウェイトを 0 に設定します。 OK をクリックして変更を保存し、終了します。

-
サービスに影響がないことを確認した後、CLB インスタンスの DNS レコードの重みを徐々に減らし、ALB インスタンスの DNS レコードの重みを増やします。
-
ALB インスタンスと同じ VPC 内の ECS04 インスタンスにログインし、
digコマンドを複数回実行して、トラフィック移行を確認します。説明ECS04 インスタンスがパブリック IP アドレスを持っていることを確認し、
yum install bind-utilsを実行して dig コマンドをインストールしてください。dig www.example.net次の図は、コマンドの出力を示しています。結果から、設定された重みに基づいてリクエストが ALB または CLB インスタンスに分散されていることがわかります。


ステップ 4:トラフィック移行の完了
トラフィック移行の検証結果に基づいて、CLB インスタンスの DNS レコードの重みを徐々に 0 に減らし、同時に ALB インスタンスの DNS レコードの重みを徐々に 100 に増やします。これにより、CLB インスタンスから ALB インスタンスへのトラフィック移行が完了します。 CLB インスタンス上のすべての長寿命接続が完全に処理され、CLB インスタンスが新しいトラフィックを受信しなくなったら、ビジネスシナリオに基づいてインスタンスを一定期間監視してから、CLB インスタンスをリリースできます。CLB インスタンスのリリース方法の詳細については、「CLB インスタンスのリリース」をご参照ください。
よくある質問
CLB のリダイレクトおよび転送ルールの移行
移行後、システムは ALB インスタンス上のドメイン名と URL パスのリダイレクトおよび転送ルールを自動的に設定します。
CLB と ALB ではドメイン名と URL の処理方法が異なるため、トラフィックを切り替える前に、CLB と ALB の転送ルール設定を注意深く比較することを推奨します。同一の機能を確保するには、CLB と ALB の転送ルールの違いに基づいて、ALB の転送ルールを調整する必要がある場合があります。
CLB と ALB の転送ルールの違い
CLB と ALB の転送ルールは、ドメイン名と URL パスの処理方法が異なります。
-
ドメイン名
-
CLB のドメイン名転送ルールは、完全一致とワイルドカード一致をサポートしています。一致の優先順位は次のとおりです:完全一致 > より具体的なワイルドカード > より一般的なワイルドカード。これにより、最も正確なルールが最初に実行されます。
-
ALB のドメイン名転送ルールは、完全一致、ワイルドカード一致、および正規表現一致をサポートしています。ルールは、指定した優先度に基づいて評価されます。
-
-
URL パス
-
CLB の URL パス転送ルールは、最長プレフィックス一致を使用します。
-
ALB の URL パス転送ルールは、完全一致、ワイルドカード一致、および正規表現一致をサポートしています。
次の表は、CLB と ALB が URL リクエスト内の特殊文字を処理する方法を比較したものです。この表を使用して、CLB から ALB へ移行する際に転送ルールを調整してください。
設定した URL
リクエスト
CLB
ALB
説明
??一致しない
一致しない
リクエスト内の
?文字は、通常 URL パスとクエリ文字列を区切るために使用され、処理中に削除されます。任意の有効な文字
一致しない
一致する
ワイルドカード一致では、
?は任意の単一の有効な文字を表します。%%一致しない
- (許可されていません)
リクエスト内の
%文字は、通常パーセントエンコーディングに使用されます。処理中、%61はaにデコードされます。%61%61一致しない
- (許可されていません)
リクエスト内の
%文字は、通常パーセントエンコーディングに使用されます。処理中、%61はaにデコードされます。a一致しない
一致しない
-
a%61一致する
一致する
リクエスト内の
%文字は、通常パーセントエンコーディングに使用されます。処理中、%61はaにデコードされます。ab、abcなど一致する
一致しない
CLB は最長プレフィックス一致をサポートしています。ALB は完全一致とワイルドカード一致をサポートしています。
test/*test- (サポートされていません)
一致しない
CLB は最長プレフィックス一致をサポートしています。ALB はワイルドカード一致をサポートしています。
test/- (サポートされていません)
一致する
test/a- (サポートされていません)
一致する
-
CLB HTTPS リスナーの証明書の移行
-
移行中、証明書を手動で指定する必要があります。必要な証明書がない場合は、まず証明書センターで購入またはアップロードする必要があります。
-
サーバー証明書については、「商用証明書の購入」および「SSL 証明書のアップロード、同期、共有」をご参照ください。
-
CA 証明書については、「プライベート CA の購入と有効化」をご参照ください。
-
-
移行後、システムは指定したサーバー証明書、追加証明書、および CA 証明書を自動的に適用します。
-
ALB は複数のドメイン名のトラフィックを分散できます。詳細については、「単一の ALB インスタンスで複数のドメイン名を持つ HTTPS Web サイトの設定」をご参照ください。
-
ALB は一方向 HTTPS 認証と双方向 HTTPS 認証の両方をサポートしています。詳細については、「エンドツーエンド HTTPS を使用したトラフィックの暗号化」および「ALB を使用した双方向認証による HTTPS サービスのデプロイ」をご参照ください。
-
異なる VPC にあるバックエンドサーバーの移行
-
ALB サーバーグループは特定の VPC に属しています。移行中、システムは ALB インスタンスの VPC 内に新しいサーバーグループを作成します。この新しいグループにバックエンドサーバーを手動で追加する必要があります。これらのサーバーも ALB インスタンスと同じ VPC 内にある必要があります。
-
ALB は、IP ベースのサーバーグループを使用して、異なる VPC のサーバーをアタッチできます。これを行うには、移行ウィザードを完了した後、ALB インスタンスの IP ベースのサーバーグループを作成してから、ECS インスタンスをサーバーグループに追加します。詳細については、「IP ベースのサーバーグループを使用して異なる VPC のサーバーをアタッチする」をご参照ください。