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を作成する必要はありません。
手順1: コンソールで移行ウィザードを使用する
次のいずれかの方法を使用して、移行ウィザードに移動します。
方法1: CLBコンソールで移行ウィザードに移動する
CLBコンソールにログインします。
上部のナビゲーションバーで、CLBインスタンスが存在するリージョンを選択します。
左側のナビゲーションウィンドウで、CLB (FKA SLB) > [インスタンス] を選択します。 [インスタンス] ページで、移行するCLBインスタンスを見つけ、インスタンスのIDをクリックします。
インスタンスの詳細ページで、[移行ウィザード] タブをクリックし、確認メッセージを読み、[ALBへの移行] をクリックします。
方法2: ALBコンソールで移行ウィザードに移動する
ALBコンソールにログインします。
上部のナビゲーションバーで、CLBインスタンスが存在するリージョンを選択します。
左側のナビゲーションウィンドウで、[ALB]> [インスタンス] を選択します。 [インスタンス] ページで、[CLBからALBへの移行] をクリックします。
[CLBからALBへの移行] ダイアログボックスで、確認メッセージを読み、移行するCLBインスタンスを選択し、[移行ウィザードを開く] をクリックします。
[設定の確認] ステップで、CLBインスタンスの基本情報とALBインスタンスの定義済み設定を確認し、すべてのリスナーに対してでマークされた項目を設定し、システム変更設定の確認チェックボックスをオンにして、[次へ] をクリックします。
: 手動で設定する必要があるアイテム。
: システムによって自動的に変更されるアイテム。
[リスナーの変更] および [証明書の変更] をクリックして、ALBリスナーの設定を変更できます。 証明書はHTTPSリスナーに対してのみ変更できます。
[インスタンスの作成] ステップで、ALBインスタンスが属するVPCとvSwitchを設定し、[次へ] をクリックします。
パラメーター
説明
[VPC]
内部対応のCLBインスタンスを移行する場合、ALBインスタンスはデフォルトでCLBインスタンスと同じVPCに作成されます。
インターネット接続のCLBインスタンスを移行する場合、ALBインスタンスのVPCを手動で設定する必要があります。
ゾーン
ゾーンとvSwitchを選択します。
ALBはマルチゾーン展開をサポートしています。 選択したリージョンで2つ以上のゾーンがサポートされている場合は、少なくとも2つのゾーンを選択して、サービスの高可用性を確保します。 ALBは追加料金を請求しません。
選択した各ゾーンのvSwitchを選択します。 使用可能なvSwitchがない場合は、プロンプトに従ってvSwitchを作成します。
オプション: インターネット接続CLBインスタンスを移行する場合、選択したゾーンでEIPを選択する必要があります。
選択したゾーンで使用可能なEIPがない場合は、[EIPの購入] を選択します。 次に、従量課金方式とデータ転送課金方式を使用するEIPが自動的に作成され、EIPがALBインスタンスに関連付けられます。 EIPはBGP (マルチISP) 回線を使用し、Anti-DDoS Origin Basicによって保護されています。
既存のEIPをALBインスタンスに関連付けることもできます。
重要インターネット共有帯域幅インスタンスに関連付けられていない従量課金 (データ転送課金) EIPのみをALBインスタンスに関連付けることができます。
同じALBインスタンスの異なるゾーンに割り当てられるEIPは、同じタイプである必要があります。
[注文の確認] ステップで、ALBインスタンスの設定を確認し、[料金 /課金] および [利用規約] セクションのチェックボックスをオンにして、[次へ] をクリックします。
[完了] ステップで、移行タスクが完了するまで待ちます。 次に、次の操作を実行できます。
移行タスクが完了するまでに約1〜10分かかります。 Resource Orchestration Service (ROS) は、移行タスクを実行するために使用されます。 ROSコンソールに移動して、関連するスタック内のタスクの実行プロセスを表示できます。
[ALBインスタンスの表示] をクリックして、ALBインスタンスの詳細ページに移動します。
[CLBインスタンスリスト] をクリックして、CLBインスタンスリストに移動します。
ALBインスタンスリストをクリックして、ALBインスタンスリストに移動します。
移行タスクが完了したら、ALBインスタンスにバックエンドサーバーがあるかどうかを確認します。
左側のナビゲーションウィンドウで、
を選択します。[インスタンス] ページで、ALBインスタンスを見つけ、インスタンスのIDをクリックします。
インスタンスの詳細ページで、[リスナー] タブをクリックします。 [リスナー] タブで、管理するリスナーを見つけ、[操作] 列の [詳細の表示] をクリックします。
[リスナーの詳細] タブで、[サーバーグループ (デフォルトの転送ルール)] セクションの [バックエンドサーバーの表示 /変更] をクリックします。 [バックエンドサーバー] タブに移動します。 [バックエンドサーバー] タブで、ALBインスタンスにバックエンドサーバーがあるかどうかを確認します。
ALBインスタンスにバックエンドサーバーがない場合は、[バックエンドサーバーの追加] をクリックして、少なくとも2つのバックエンドサーバーをALBインスタンスに追加し、各バックエンドサーバーにアプリケーションをデプロイします。 これにより、ALBインスタンスはクライアントからのアクセス要求を転送できます。 この例では、ECS01とECS02がバックエンドサーバーとしてALBインスタンスに追加されます。
ECSインスタンスの作成方法の詳細については、「ウィザードを使用したインスタンスの作成」をご参照ください。
次のサンプルコマンドを使用して、ECS01およびECS02にテストアプリケーションをデプロイします。
ステップ2: トラフィックテストの実行
(オプション) アクセスログ機能の有効化
ALBとSimple Log Serviceは、ALBインスタンスの負荷を監視して問題を特定できるアクセスログ機能を提供します。
ALBコンソールにログインします。
上部のナビゲーションバーで、ALBインスタンスが存在するリージョンを選択します。
左側のナビゲーションウィンドウで、[ALB]> [インスタンス] を選択します。 [インスタンス] ページで、管理するALBインスタンスを見つけ、インスタンスのIDをクリックします。
インスタンスの詳細ページで、[アクセスログ] タブをクリックします。 [アクセスログ] タブで、[アクセスログの作成] をクリックします。
[アクセスログの作成] ダイアログボックスで、[プロジェクト] および [ログストア] パラメーターを設定し、[OK] をクリックします。 表示されるメッセージで、[OK] をクリックします。
パラメーター
説明
プロジェクト
リソースの分離と管理に使用されるSimple Log Serviceプロジェクト。 有効な値:
[プロジェクトの選択]: ドロップダウンリストからプロジェクトを選択します。
プロジェクトの作成: フィールドにプロジェクト名を入力します。 プロジェクトが自動的に作成されます。
ログストア
Simple Log Serviceでログを収集、保存、およびクエリするために使用されるLogstore。 有効な値:
Logstoreの選択: ドロップダウンリストからLogstoreを選択します。
Logstoreの作成: フィールドにLogstore名を入力します。 Logstoreは自動的に作成されます。 プロジェクトの作成を選択した場合、Logstoreの作成を選択する必要があります。
サービス連携ロールの作成に関する注意事項
この操作を実行すると、サービスにリンクされたロールが自動的に作成されます。
テストトラフィック
ECS03にログインします。 詳細については、「ECSインスタンスへの接続方法」をご参照ください。
説明この例では、インスタンスの購入時にパブリックIPアドレスがECS03に割り当てられます。
次のコマンドを実行してhostsファイルを開きます。
sudo vi /etc/hosts
ALBインスタンスのEIPとドメイン名をhostsファイルに追加します。 変更が完了したら、ファイルを保存して閉じます。
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インスタンスへのトラフィックの移行
トラフィックを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です。
Alibaba Cloud DNSコンソールにログインします。
[権限のあるDNS解決] ページで、ドメイン名
www.example.net
を見つけてクリックします。 ドメイン名はCLBインスタンスを指します。ドメイン名の詳細ページの [DNS設定] タブで、[DNSレコードの追加] をクリックします。 [DNSレコードの追加] パネルで、次のパラメーターを設定し、[OK] をクリックします。
パラメーター
説明
レコードタイプ
ドロップダウンリストから [CNAME] を選択します。
ホスト名
ドメイン名のプレフィックスを入力します。 この例では、wwwが入力されます。
DNSリクエストソース
[デフォルト] を選択します。
レコード値
一時ドメイン名を入力します。 この例では、web0.example.netが入力されます。
TTL
CNAMEレコードの生存時間 (TTL) 値を指定します。 TTLは、レコードがDNSサーバーにキャッシュされる期間を決定します。 この例では、TTLは5秒に設定される。
DNS設定タブで、CLBインスタンスのIPアドレスを指すAレコードを見つけ、[アクション] 列の変更をクリックします。。
[DNSレコードの変更] パネルで、[ホスト名] パラメーターを変更し、[OK] をクリックします。 この例では、Hostnameパラメーターはweb0に設定されています。 他のパラメータは変更されない。
手順2: ALBインスタンスのCNAMEレコードの追加
[ドメイン名解決] ページで、ドメイン名
www.example.net
を見つけてクリックします。 このドメイン名は、CLBインスタンスのIPアドレスを指します。ドメイン名の詳細ページの [DNS設定] タブで、[DNSレコードの追加] をクリックします。 [DNSレコードの追加] パネルで、次のパラメーターを設定し、[OK] をクリックします。
パラメーター
説明
レコードタイプ
ドロップダウンリストから [CNAME] を選択します。
ホスト名
ドメイン名のプレフィックスを入力します。 この例では、wwwが入力されます。
DNSリクエストソース
[デフォルト] を選択します。
レコード値
CNAMEを入力します。 CNAMEは、ALBインスタンスのドメイン名です。
TTL
CNAMEレコードのTTL値を指定します。 TTLは、レコードがDNSサーバーにキャッシュされる期間を決定します。 この例では、TTLは5秒に設定される。
ステップ3: カナリアリリースを実行するための重みの設定
権威DNS解決ページで、管理するドメイン名のインスタンスIDを見つけてクリックします。
をクリックし、重量設定タブで、管理するドメイン名を見つけて、セット重量で、アクション列を作成します。
同じドメイン名の異なるDNSレコードの重みを設定するには、DNSレコードのタイプ、ホスト名、およびISP回線が同じであることを確認します。 サポートされるレコードタイプは、A、CNAME、およびAAAAです。
[重みの設定] パネルで、CLBおよびALBインスタンスのDNSレコードの重みを設定します。 CLBインスタンスのDNSレコードの重みを100に設定します。 ALBインスタンスのDNSレコードの重みを0に設定します。
CLBインスタンスのDNSレコードの重みを徐々に減らし、ALBインスタンスのDNSレコードの重みを徐々に増やします。 サービスが影響を受けないようにしてください。
ALBインスタンスと同じVPCにあるECS04にログインし、
dig
コマンドを複数回実行してトラフィックの移行結果を確認します。説明パブリックIPアドレスがECS04に割り当てられ、digは
yum install bind-utils
コマンドを実行してECS04にインストールされます。dig www.example.net
以下の図は結果を示す。 結果は、リクエストがDNSレコードの重みに基づいてALBおよびCLBインスタンスに転送されることを示しています。
ステップ4: トラフィックの移行を完了する
トラフィックテストの結果に基づいて、CLBインスタンスのDNSレコードの重みを0に徐々に減らし、ALBインスタンスのDNSレコードの重みを100に徐々に増やします。 上記の操作を実行すると、トラフィックはCLBインスタンスからALBインスタンスに移行されます。 CLBインスタンスへのすべての永続接続が閉じられ、CLBインスタンスに新しいトラフィックが送信されない場合、CLBインスタンスを一定期間監視してからCLBインスタンスをリリースできます。 CLBインスタンスをリリースする方法の詳細については、「CLBインスタンスの作成と管理」をご参照ください。
よくある質問
CLBインスタンスのリダイレクトルールと転送ルールを移行するにはどうすればよいですか。
移行中、移行先ALBインスタンスのリダイレクトルールとドメイン名およびURLベースの転送ルールが自動的に設定されます。 詳細については、「リスナーの転送ルールの管理」をご参照ください。
CLBインスタンスに設定されているHTTPSリスナーの証明書を移行するにはどうすればよいですか。
移行中に証明書を手動で指定する必要があります。 利用可能な証明書がない場合は、証明書管理サービスにアクセスして証明書を購入またはアップロードできます。
サーバー証明書の詳細については、「SSL証明書の購入」および「SSL証明書のアップロードと共有」をご参照ください。
CA証明書の詳細については、「プライベートCAの購入と有効化」をご参照ください。
.
移行が完了すると、指定されたサーバー証明書、追加の証明書、およびCA証明書に基づいて、ALBインスタンスの証明書が自動的に設定されます。
ALBはトラフィックを複数のドメイン名に分散できます。 詳細については、「HTTPS経由で複数のドメイン名を提供するようにALBインスタンスを設定する」をご参照ください。
ALBは、HTTPS一方向認証とHTTPS相互認証をサポートしています。 詳細については、「HTTPS経由のエンドツーエンドのデータ転送」および「HTTPSリスナーでの相互認証の設定」をご参照ください。
異なる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のバックエンドサーバーとして指定する」をご参照ください。