既存のゲートウェイから新しいゲートウェイへ本番トラフィックを一度にすべて切り替えると、負荷がかかった際に構成の問題が表面化し、ダウンタイムが発生するリスクがあります。CLB ベースの移行では、クラシックロードバランサー (CLB) インスタンスで重み付きラウンドロビン (WRR) スケジューリングを使用することで、このリスクを排除します。これにより、ソースゲートウェイから Microservices Engine (MSE) のクラウドネイティブゲートウェイへトラフィックを段階的に移行できます。まず、トラフィックの割合を少量に設定して開始し、新しいゲートウェイがリクエストを正しく処理することを確認してから、移行が完了するまでその割合を徐々に増やしていきます。
前提条件
開始する前に、以下のものが揃っていることを確認してください:
-
バージョン 1.2.3 以降の MSE クラウドネイティブゲートウェイ。詳細については、「クラウドネイティブゲートウェイの作成」をご参照ください。
-
ソースゲートウェイのすべてのルーティングシナリオをカバーするルーティングルールが MSE クラウドネイティブゲートウェイに構成されていること。詳細については、「ルーティングルールの作成」をご参照ください。
CLB ベースの移行は、CLB インスタンスのみをサポートします。Application Load Balancer (ALB) および Network Load Balancer (NLB) インスタンスはサポートされていません。詳細については、「SLB の概要」をご参照ください。
仕組み
CLB インスタンスは両方のゲートウェイの前面に配置され、それぞれに割り当てられた重みに基づいてトラフィックを分散します。次の表は、各段階でのトラフィックフローの概要です:
| 段階 | トラフィックフロー | 重みの設定 |
|---|---|---|
| 移行前 | クライアント → DNS → CLB (レイヤー 4) → ソースゲートウェイ (レイヤー 7) → バックエンドサーバー | ソースゲートウェイ:100% |
| 移行中 | CLB は重みに基づいて両方のゲートウェイにトラフィックを分散 | 例:ソースゲートウェイ 90%、MSE ゲートウェイ 10% |
| 移行後 | クライアント → DNS → CLB (レイヤー 4) → MSE クラウドネイティブゲートウェイ → バックエンドサーバー | MSE ゲートウェイ:100% |
移行中に、MSE クラウドネイティブゲートウェイのノードが CLB の vServer グループに追加されます。重みを調整してトラフィックの比率をコントロールします。
ステップ 1:CLB ベースの移行タスクの追加
-
MSE コンソールにログインします。
-
左側のナビゲーションウィンドウで、Cloud-Native Gateway > ゲートウェイリスト を選択します。上部のナビゲーションバーで、リージョンを選択します。
-
ゲートウェイリスト ページで、対象ゲートウェイの ID をクリックします。
-
Overview ページで、[エンドポイント] タブをクリックします。[ゲートウェイ Ingress] ページで、右上の Migrate CLB をクリックします。
-
Migrate CLB パネルで、次のパラメーターを設定し、OK をクリックします。
パラメーター
説明
Network Type
CLB インスタンスのネットワークタイプです。CLB インスタンスの IP アドレスに基づいて、Internet または VPC を選択します。
CLB インスタンス
移行に使用する CLB インスタンスです。
リスナーポートとバックエンドサーバー
Add をクリックし、CLB インスタンスの [リスナーポート] と [ゲートウェイプロトコル] を指定します。対応する vServer グループが表示されます。HTTP と HTTPS の vServer グループの一方または両方を選択できます。
Weight
vServer グループ内の MSE クラウドネイティブゲートウェイに割り当てられる合計の重みです。初期の重みを 0 に設定し、ステップ 8 で CLB のスケジューリングアルゴリズムを重み付きラウンドロビンに変更した後に、この値を増やしてください。そうしないと、重みの構成は有効になりません。値が 0 の場合、トラフィックは MSE ゲートウェイにルーティングされません。値が 100 の場合、すべてのトラフィックが MSE ゲートウェイにルーティングされます。重みを 100 に設定する場合は、vServer グループでソースゲートウェイノードの重みをを手動で 0 に設定してください。
ゲートウェイノード間での重み分散の仕組み
合計の重みは、ゲートウェイノード間で均等に分割されます。たとえば、ゲートウェイに 2 つのノードがあり、合計の重みが 20 の場合、各ノードには 10 の重みが割り当てられます。vServer グループ内のすべてのノードの合計の重みが 100 になるようにしてください。そうしないと、競合が発生します。
次の表は、重み分散のサンプルです:
コンポーネント ノード ノードあたりの重み 合計の重み ソースゲートウェイ 2 40 80 MSE クラウドネイティブゲートウェイ 2 10 20 vServer グループ合計 100 説明重みパラメーターは、vServer グループに新しく追加された MSE ゲートウェイノードにのみ適用されます。vServer グループ内の既存のゲートウェイノードは影響を受けません。
-
Gateway Ingress タブで CLB インスタンスを見つけ、操作 列の Monitor をクリックして、SLB コンソールの [インスタンス] ページに移動します。
-
[インスタンス] ページで、[リスナー] タブをクリックします。ターゲットリスナーを見つけ、[操作] 列の [リスナーの変更] をクリックします。
-
[リスナーの設定] ページで、[詳細設定] の横にある [変更] をクリックします。[スケジューリングアルゴリズム] を [重み付きラウンドロビン (WRR)] に設定し、[次へ] をクリックします。要件に基づいて [バックエンドサーバー] と [ヘルスチェック] を構成します。
-
[送信] をクリックします。
スケジューリングアルゴリズムが重み付きラウンドロビンに設定されました。確認するには、リスナーをクリックし、[リスナーの詳細] パネルで [スケジューリングアルゴリズム] に [重み付きラウンドロビン] が表示されていることを確認します。
ステップ 2:トラフィック比率の調整
CLB のスケジューリングアルゴリズムが重み付きラウンドロビンに設定された後、重みを徐々に増やして MSE クラウドネイティブゲートウェイにトラフィックを移行します。
-
MSE コンソールにログインします。
-
左側のナビゲーションウィンドウで、Cloud-Native Gateway > ゲートウェイリスト を選択します。上部のナビゲーションバーで、リージョンを選択します。
-
ゲートウェイリスト ページで、対象ゲートウェイの ID をクリックします。
-
Gateway Ingress タブで、[CLB の移行] をクリックします。[CLB の移行] パネルで、Weight の値を更新します。
10% などの小さな重みから始め、エラーを監視します。トラフィックが正しく流れている場合は、100% に達するまで重みを段階的に増やします。
移行段階 MSE ゲートウェイの重み ソースゲートウェイの重み アクション 初期検証 10 90 エラーの監視 部分移行 50 50 負荷をかけた状態での検証 完全移行 100 0 すべてのトラフィックが MSE ゲートウェイ上にあることを確認 -
左側のナビゲーションウィンドウで、Observation Analysis > Business Monitoring を選択します。Global Dashboard タブで、トラフィック分散を確認し、期待される比率になっていることを確かめます。
移行のロールバック
いずれかの段階で問題が発生した場合は、すべてのトラフィックをソースゲートウェイにロールバックします:
-
[ゲートウェイ Ingress] タブで、[CLB の移行] をクリックします。[CLB の移行] パネルで、Weight を 0 に設定します。
-
左側のナビゲーションウィンドウで、Observation Analysis > Business Monitoring を選択します。「Global Dashboard」タブで、MSE クラウドネイティブゲートウェイにトラフィックが届いていないことを確認します。
(オプション) ステップ 3:CLB インスタンスの関連付け解除
移行が完了し、すべてのトラフィックが MSE クラウドネイティブゲートウェイ経由でルーティングされた後、CLB インスタンスの関連付けを解除して移行構成をクリーンアップします。
-
MSE コンソールにログインします。
-
左側のナビゲーションウィンドウで、Cloud-Native Gateway > ゲートウェイリスト を選択します。上部のナビゲーションバーで、リージョンを選択します。
-
ゲートウェイリスト ページで、対象ゲートウェイの ID をクリックします。
-
Gateway Ingress タブで CLB インスタンスを見つけ、操作 列の [Server Load Balancer のバインド解除] をクリックします。確認メッセージで OK をクリックします。
説明CLB インスタンスの関連付けを解除すると、その CLB インスタンス上のトラフィックはクラウドネイティブゲートウェイにルーティングされなくなります。移行構成を維持しつつトラフィックのルーティングを停止するには、代わりに [CLB 移行の編集] パネルで Weight を 0 に設定してください。