クラシックロードバランサー (CLB) と比較して、Application Load Balancer (ALB) は、優れたレイヤー 7 処理機能、高度なルーティング機能を提供し、大規模なアプリケーション層トラフィックを処理します。ワンクリックで Web Application Firewall (WAF) を有効にでき、トラフィック転送とセキュリティを完全にデカップリングします。ALB は、強化された負荷分散エクスペリエンスのための高度な機能も提供します。このトピックでは、移行ウィザードを使用して、CLB インスタンスから ALB インスタンスへレイヤー 7 リスナーを移行する方法について説明します。
制限事項
サポートされている CLB インスタンスタイプ
レイヤー 7 リスナー (HTTP または HTTPS) が構成された VPC 内のプライベート IPv4 CLB インスタンス。
レイヤー 7 リスナー (HTTP または HTTPS) が構成されたパブリック IPv4 CLB インスタンス。
サポートされていない移行シナリオ
移行ウィザードは、次のシナリオでのワンクリック移行をサポートしていません。これらのケースでは、CLB から ALB へのレイヤー 7 リスナーの手動移行を推奨します。
HTTP または HTTPS リスナーがない CLB インスタンス。
クラシックネットワーク内のプライベート CLB インスタンス。
IPv6 CLB インスタンス。
移行に関する考慮事項
ALB が利用できないリージョンでは移行はサポートされていません。サポートされているリージョンとゾーンについては、「ALB がサポートするリージョンとゾーン」をご参照ください。
WAF 構成は移行されません。CLB インスタンスで WAF が有効になっている場合は、移行後に手動で WAF 保護を有効にする必要があります。新しい ALB インスタンスには WAF 3.0 を有効にすることを推奨します。詳細については、「ALB インスタンスの WAF 保護を有効にする」をご参照ください。
CloudMonitor の CLB のしきい値ベースのアラートルールは移行されません。これらのルールは、CloudMonitor コンソールで、または API や SDK を使用して再構成する必要があります。移行後、新しいルールを構成するには、「ALB メトリックのアラートルールを設定する」をご参照ください。
Anti-DDoS はデフォルトで有効になっています。カスタム Anti-DDoS しきい値構成は移行されません。移行後、Anti-DDoS コンソールで手動で再構成する必要があります。
アクセス制御構成は移行されません。移行後、手動で構成する必要があります。詳細については、「アクセス制御」をご参照ください。
HTTPS リスナーのサーバー証明書と CA 証明書は手動で指定する必要があります。
CLB インスタンスのプライマリ/セカンダリサーバーグループの構成は、ALB インスタンスに移行できません。
プライベート 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 インスタンスがない場合、ALB コンソールを使用してワンクリック移行を実行することはできません。この場合は、方法 1 を使用してください。
ALB コンソールにログインします。
上部のナビゲーションバーで、CLB インスタンスがデプロイされているリージョンを選択します。
インスタンス ページで、CLB を ALB への移行ウィザード をクリックします。
CLB を ALB への移行ウィザード ダイアログボックスで、情報を確認し、移行する CLB インスタンスを選択してから、移行ウィザードに移動する をクリックします。
-
「設定の審査」ステップで、基本的な CLB 情報および事前設定済みの ALB 情報を確認します。各リスナーについて、
アイコンで示されているすべての必須構成を完了し、確認用チェックボックスを選択してから、次へ をクリックします。
:手動入力が必要な設定項目を示します。
:システムによって自動的に変更される設定項目を示します。
リスナーの編集 または 証明書の編集 をクリックして、ALB リスナーの構成を変更できます。証明書は、HTTPS リスナーの場合のみ変更できます。
「インスタンスの作成」ステップで、新しい ALB インスタンスの VPC および vSwitch を設定し、その後「次へ」をクリックします。
パラメーター
説明
VPC
プライベート CLB インスタンス:ALB インスタンスは、デフォルトで CLB インスタンスと同じ VPC に割り当てられます。
パブリック CLB インスタンス:手動で VPC を選択する必要があります。
ゾーン
ゾーンと vSwitch を選択します。
ALB はマルチ AZ デプロイをサポートしています。現在のリージョンが 2 つ以上のゾーンをサポートしている場合、サービスの高可用性を確保するために、少なくとも 2 つのゾーンを選択してください。ALB では、ゾーンに対して追加料金は発生しません。
選択したゾーンごとに vSwitch を選択します。vSwitch が利用できない場合は、コンソールのプロンプトに従って作成します。
任意: インターネット向けの CLB インスタンスを移行する場合、選択したゾーンで EIP を選択する必要があります。
利用可能な既存の EIP がない場合は、EIP の購入 を選択できます。システムは、デフォルトのセキュリティ保護が設定された従量課金 (トラフィック課金) の BGP(マルチ ISP) EIP を自動的に作成し、ALB インスタンスにバインドします。
既存の EIP を選択:既存の EIP を新しい ALB インスタンスにバインドします。
重要Internet Shared Bandwidth インスタンスに追加されていない従量課金 (トラフィック課金) EIP のみバインドできます。
同じ ALB インスタンスの異なるゾーンに割り当てられたEIPは、同じタイプである必要があります。
「注文書の確認」ステップで、ALB インスタンスの構成を確認し、「料金計算」チェックボックスを選択してから、「移行を開始」をクリックします。
[完了] ステップで、移行タスクが完了するのを待ちます。その後、以下の操作を実行できます:
移行タスクの実行には約 1~10 分かかります。このタスクは、Resource Orchestration Service (ROS) によって実行されます。プロンプトに従って ROS コンソールにアクセスし、スタック内のタスクの進行状況を確認できます。
「インスタンスの表示」をクリックして、移行済み ALB インスタンスの詳細を表示できます。
[CLB インスタンスリストに戻る] をクリックして、CLB インスタンスの一覧を表示します。
ALB インスタンスリストを表示するには、ALB インスタンスリストに戻る をクリックします。
移行が完了したら、新しい ALB インスタンスにバックエンドサーバーがあるかどうかを確認します。
左側のナビゲーションウィンドウで、 を選択します。
インスタンス ページで、移行された ALB インスタンスを見つけ、その ID をクリックします。
[リスナー] タブをクリックし、対象のリスナーを見つけ、[詳細を表示] を [操作] 列でクリックします。
リスナーの詳細 タブの サーバーグループ (デフォルトの転送ルール) セクションで、バックエンドサーバーの表示/変更 をクリックします。バックエンドサーバー タブにリダイレクトされます。バックエンドサーバーがリストされているかどうかを確認します。
バックエンドサーバーがリストにない場合は、バックエンドサーバーの追加 をクリックして、デプロイ済みのアプリケーションを搭載したバックエンドサーバーを ALB インスタンスに少なくとも 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 の名前をテキストボックスに入力します。新しい Project を作成する場合は、新しい Logstore も作成する必要があります。
サービスにリンクされたロールの作成に関する注意事項
このアクションにより、機能を有効にするために必要なサービスリンクロールが自動的に作成されます。
トラフィックのテスト
ECS03 にリモートログインします。
説明ECS03 インスタンスには、購入時にパブリック IP アドレスが割り当てられました。
次のコマンドを実行して、hosts ファイルを変更します。
sudo vi /etc/hostshosts ファイルに次のエントリを追加して、ALB インスタンスの EIP をドメイン名にマップします。その後、ファイルを保存して閉じます。
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 のドメインまたはパスベースの転送ルールのランタイムログを表示できます。
ステップ 3: ALB インスタンスへのトラフィック移行
CLB と ALB の転送ルールがドメイン名および URL を処理する方法には意味論的な違いがあるため、トラフィックを移行する前に、CLB の転送ポリシーと ALB の転送ルールを注意深く比較することを強く推奨します。機能が同一であることを確認するために、CLB と ALB の転送ルールの違いに基づいて、ALB の転送ルールを調整する必要がある場合があります。すべての設定は、移行中にビジネスへの予期しない影響を防ぐために、十分にテストおよび検証する必要があります。
影響を最小限に抑えるため、非ピーク時間帯に CLB インスタンスからのトラフィックを移行します。
このトピックでは、CLB インスタンスの DNS 解決を既に構成済みであることを前提としています。ドメイン名を CLB インスタンスのサービスアドレスにポイントするため、A レコードを使用しています。ALB インスタンスの構成を検証した後、このトピックでは、Alibaba Cloud DNS を例として、CLB から ALB へのトラフィックの移行方法について説明します。Alibaba Cloud DNS の詳細については、「パブリック権威解決」をご参照ください。
ステップ 1: 一時ドメインと CNAME レコードを構成
ALB インスタンスには、CNAME レコードの使用を推奨します。重み付き DNS レコードを有効化する条件を満たすには、一時ドメイン名の CNAME レコードを追加し、移行対象の CLB インスタンスのサービスアドレスを指すように設定する必要があります。このトピックでは、CLB インスタンスに設定されたビジネスドメイン名は www.example.net です。
重み付けされた DNS レコードを有効にするには、同じホスト名とクエリソースの下に複数の 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
TTL (Time To Live) は、DNS レコードが DNS サーバーにキャッシュされる期間を示します。このトピックでは、5 秒に設定されています。
レコード値
一時ドメイン名を入力します。このトピックでは、web0.example.net と入力します。
ステップ 2: ALB インスタンスの CNAME レコードを追加
解決設定 ページで、Add Record をクリックします。Add Record パネルで、次の パラメーターを設定し、OK をクリックします。
パラメーター | 説明 |
レコードタイプ | ドロップダウンリストから [CNAME] を選択します。 |
ホストレコード | ドメイン名のプレフィックスです。www と入力します。 |
DNS リクエストソース | [デフォルト] を選択します。 |
TTL | TTL (Time To Live) は、DNS レコードが DNS サーバーにキャッシュされる期間を示します。このトピックでは、5 秒に設定されています。 |
レコード値 | コピーした ALB インスタンスの DNS 名を入力します。 |
ステップ 3: 重みを設定してカナリアリリースを開始
「解決設定」ページで、手順 2 で追加した CNAME レコードを検索し、「Edit」の横にあるドロップダウン矢印をクリックして、「レコードセットを変更する」をクリックします。
Edit Record パネルの レコードコレクション セクションで、CLB インスタンスと ALB インスタンスの DNS レコードの重みを設定します。CLB インスタンスのレコードの重みを 100 に、ALB インスタンスのレコードの重みを 0 に設定します。 OK をクリックします。

サービスに影響がないことを確認した後、CLB インスタンスの DNS レコードの重みを徐々に減らし、ALB インスタンスの重みを徐々に増やします。
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 のリダイレクトおよび転送ポリシーはどのように移行されますか?
移行後、リダイレクトとドメイン/パスベースのルーティングの転送ルールが ALB インスタンスに自動的に構成されます。
CLB と ALB の転送ルールによるドメイン名と URL の処理方法には意味的な違いがあるため、トラフィックを移行する前に、CLB 転送ポリシーと ALB 転送ルールを慎重に比較することを強くお勧めします。機能を同一にするために、CLB と ALB の転送ルールの違いに基づいて ALB の転送ルールを調整する必要がある場合があります。
CLB と ALB の転送ルールの違いは何ですか?
CLB と ALB の転送ルールには、ドメイン名と URL パスを処理する方法に意味の違いがあります。
ドメイン名
CLB ドメイン転送ルールは、完全に一致とワイルドカード一致をサポートします。マッチング順序は、完全に一致、次に狭いワイルドカード、次に広いワイルドカードです。これにより、最も具体的なルールが最初に適用されます。
ALB ドメイン転送ルールは、完全に一致、ワイルドカード一致、正規表現一致をサポートします。マッチング順序は、ユーザー定義の優先度によって決定されます。
URL パス
CLB URL パス転送ルールは、URL パスの最長プレフィックス一致に基づいています。
ALB URL パス転送ルールは、完全に一致、ワイルドカード一致、正規表現一致をサポートします。
次の表は、CLB と ALB の転送ルールが URL リクエスト内の特定の特殊文字にどのように一致するかを示しています。これを参考に、CLB から ALB に移行する際に転送ルールを調整できます。
ルール URL
リクエスト
CLB 一致
ALB 一致
説明
??いいえ
いいえ
リクエスト内の
?は通常、URL とクエリ文字列を区切り、パスマッチング中に削除されます。任意の有効な文字
いいえ
はい
ALB は
?を単一文字のワイルドカードとしてサポートします。CLB はサポートしません。%%いいえ
- (許可されていません)
リクエスト内の
%は通常、URL エンコーディングに使用されます。たとえば、%61はaにデコードされます。%61%61いいえ
- (許可されていません)
リクエスト内の
%文字は通常、エスケープに使用され、%61はaにエスケープされます。aいいえ
いいえ
-
a%61はい
はい
リクエスト内の
%文字は通常、エスケープに使用され、%61はaにエスケープされます。ab、abcなどはい
いいえ
CLB はデフォルトでプレフィックスマッチングを実行します。ALB は、ワイルドカードルール (例: /a*) が使用されない限り、完全に一致を必要とします。
test/*test- (サポートされていません)
いいえ
ALB は明示的なワイルドカード構文 (*) をサポートします。CLB のプレフィックスマッチングは、ルールで * 文字を使用しません。
test/- (サポートされていません)
はい
test/a- (サポートされていません)
はい
CLB HTTPS リスナーの証明書はどのように移行されますか?
移行中に証明書を手動で指定する必要があります。証明書がない場合は、まず Certificate Management Service コンソールで購入またはアップロードする必要があります。
サーバー証明書については、「SSL 証明書を購入する」および「SSL 証明書をアップロード、同期、共有する」をご参照ください。
CA 証明書については、「プライベート CA を購入して有効にする」をご参照ください。
移行後、システムは指定したサーバー証明書、追加の証明書、および CA 証明書に基づいて対応する証明書を自動的に構成します。
ALB は複数のドメインにトラフィックを分散できます。詳細については、「単一の ALB インスタンスを使用して複数の HTTPS ドメインを処理する」をご参照ください。
ALB は一方向および双方向 HTTPS 認証の両方をサポートします。詳細については、「フルリンク HTTPS アクセスを構成してエンドツーエンド暗号化を実現する」および「ALB を使用して HTTPS ビジネスをデプロイする (双方向認証)」をご参照ください。
異なる VPC からのバックエンドサーバーの移行
ALB サーバーグループは特定の VPC に関連付けられています。ウィザードは ALB インスタンスの VPC に新しいサーバーグループを作成し、同じ VPC からバックエンドサーバーを手動でこのグループに追加する必要があります。
ALB インスタンスの IP ベースのサーバーグループは、異なる VPC にまたがるサーバーを持つことができます。異なる VPC から ECS インスタンスを追加するには、移行後に ALB インスタンスの IP ベースのサーバーグループを作成し、そのインスタンスをそこに追加します。詳細については、「ALB を使用してクロスリージョン VPC からサーバーをアタッチする」をご参照ください。