はじめに
今回の記事は、OCIロード・バランサーのバックエンドセットで、3台のバックエンド・サーバー構成の内、1台を「ドレイン」の対象に設定した場合、どのような挙動になるのかが気になったので、本記事で検証をしていきたいと思います。
前提条件
- VCNを作成し、構成している
- 複数のバックエンド・サーバを持ったバックエンド・セットを作成している
- 各サーバーには、Apacheをインストールしている
- ロード・バランサーからリクエストを受けると、サーバー名がブラウザに表示される
テスト環境
- リージョン:東京リージョン
- サブネット:ロード・バランサー用のサブネット
Webサーバー用サブネット - ロード・バランサー:パブリック・ロード・バランサー
- 負荷分散ポリシー:重みづけラウンドロビン
- インスタンス:ApacheをインストールしたWebサーバー 3台(1117_linux1、1117_linux2、1117_linux3)
- 以下のスクリーンショットのように、OCIロード・バランサーをセットアップして、"1117_linux2"のWebサーバーに、「ドレイン」状態に設定
重みづけラウンドロビンで動作確認
まずは、以下のスクリーンショットで、ロード・バランサーの重みづけラウンドロビンで、バックエンドサーバー(1117_linux1、1117_linux2、1117_linux3)の動作を確認したいと思います。
バックエンド・セットのヘルスのヘルスチェックは、3台とも全てOKの状態です。
ブラウザのURLに、ロード・バランサーのIPアドレスを入力します。
この状態で、ブラウザからロード・バランサーに対して、リクエスト(リロード)すると、重みづけラウンドロビンポリシーによって、バックエンドサーバー(1117_linux1・1117_linux2、1117_linux3)が順番に、リクエストを振り分けることが確認できました。
「ドレイン」の対象を設定
それでは、バックエンドサーバーの1117_linux2のドレイン設定を有効化していきたいと思います。
以下のスクリーンショットのように、「ドレイン」の対象にさせるインスタンスにチェックを付けます。
チェックを付けた後、【アクション】 > 【ドレイン状態の編集】を選択します。
以下のスクリーンショットの通り、"True"有効化に変更し、変更の保存を押下します。
変更後、バックエンドの「ドレイン・ステータス」が「ドレイン済」と
変更になっていることが確認できました。
「ドレイン」状態で動作を検証
バックエンドサーバーの1117_linux2が、「ドレイン」の対象に設定できたため、この状態で、再度、ブラウザのURLに、ロード・バランサーのIPアドレスを入力します。
続いて、ブラウザからロード・バランサーにリクエスト(リロード)をすると、1117_linux3が表示され、「ドレイン」の対象に設定した1117_linux2は表示されませんでした。
この状態で、何度かリクエスト(リロード)をすると、「ドレイン」の対象に設定した1117_linux2以外のバックエンドサーバーが、交互に画面上に表示されたことが確認できました。
まとめ
「ドレイン」の設定をすると、新しいリクエストを受信しない仕組みなので、リクエストは、ドレイン設定をしているサーバー以外に、リクエストが処理していることが確認できました。