ノート:
- このチュートリアルではOracle Cloudへのアクセスが必要です。無料アカウントにサインアップするには、Oracle Cloud Infrastructure Free Tierの開始を参照してください。
- Oracle Cloud Infrastructure資格証明、テナンシおよびコンパートメントの値の例を使用します。演習を完了する場合は、これらの値をクラウド環境に固有の値に置き換えてください。
DevOpsのOCI Load Balancerバックエンド操作の監視
イントロダクション
このチュートリアルでは、バックエンドの重み、ドレイン状態、オフライン状態およびバックアップ状態の編集を調べ、結果の動作を確認します。これらはすべて、アプリケーションのデプロイメント、メンテナンスおよびリカバリを簡単かつシームレスにできる便利な機能です。
目標
OCI Load Balancerバックエンドの重み、ドレイン状態、オフライン状態、バックアップ状態を監視し、それがトラフィックに与える影響を理解します。
前提条件
- Oracle Cloudアカウントへのアクセス。Oracle Cloudアカウントがない場合は、Always Free Tierアカウントを使用できます。
- Virtual Cloud Networkを作成および構成します。
- 複数のバックエンドを持つLoad Balancerを作成します。
タスク1: OCI Load Balancerのデフォルト動作の監視
この例では、重み付けされたラウンドロビン分散ポリシーを利用し、すべての重みが等しくなります。
-
次のスクリーンショットに示すように、OCI Load Balancer設定を使用しています。
-
予測: すべてのサーバーが正常であるため、すべてのバックエンドを順番に循環することが予想されます。
-
次の図は、実際の動作を示しています。
この動作は、Load Balancerですべてのバックエンドを順番に循環することで予想どおりに動作します。
タスク2: OCI Load Balancerバックエンドの重みの監視
バックエンドの重みによって受信トラフィックの受信割合が決定され、重みが大きいほど割合が大きくなります。たとえば、バックエンドの重み付け"3"は、バックエンドの重み付け"1"と比較して新しい接続の数の3倍を受け取ります。
-
次のスクリーンショットに示すように、OCI Load Balancer設定を使用しています。
これを行うには:
- バックエンドにナビゲートします。
- その横にあるチェック・ボックスを選択し、「重みの編集」をクリックします。重量を指定します。
-
予測: 重みが高いほど、バックエンドに送信されるトラフィックの割合が大きくなります。一方のバックエンドの重みがもう一方のバックエンドの重みの2倍である場合、そのバックエンドはトラフィックの2倍を受け取ります。10倍の場合、10倍のトラフィックなど。
-
実際の動作: バックエンド2の重みの変更時に3つのバックエンドがヒットした回数を示す表を示します。
バックエンド2の重み バックエンド1の数 バックエンド2の数 バックエンド3の数 1 4 4 4 2 3 6 3 3 3 7 2 4 2 8 2 5 1 9 2
重みは期待どおりに機能します。
タスク3: OCI Load Balancerバックエンド・ドレイン状態の確認
サーバーのドレイン状態をtrueに設定すると、Load Balancerによって、バックエンド・サーバーへの新しいTCP接続およびスティッキーではない新しいHTTPリクエストの転送が停止されます。これにより、サーバーをシームレスに回転から除外でき、メンテナンスに役立ちます。
-
次のスクリーンショットに示すように、OCI Load Balancer設定を使用しています。
これを行うには:
- バックエンドにナビゲートします。
- その横にあるチェック・ボックスを選択し、「ドレイン状態の編集」をクリックします。バックエンドのドレイン・ステータスが「排出済」になります。
-
予測: バックエンド3は新しいリクエストを受信しないため、リクエストはバックエンド1とバックエンド2の間のrobinをラウンドする必要があります。
-
実際の動作: 予想どおり、バックエンド3はすべての接続をドレインしており、新しいTCPまたは非スティッキーHTTPリクエストは受信していません。その結果、Load Balancerはバックエンド1とバックエンド2の間でバウンスします。
ノート:排出されたバックエンドは、新しいTCPまたは非スティッキー・リクエストを受信しません。それでも、ロード・バランシング・サービスは、既存の永続化セッションで「drain」とマークされているサーバーを確認します。つまり、既存の永続セッションはドレインされたバックエンドに引き続きヒットしますが、既存の永続セッションの一部ではない新しいリクエストはヒットしません。
タスク4: OCI Load Balancerバックエンドのオフライン状態の確認
バックエンドのオフライン・ステータスは、イングレス・トラフィックがそれに転送されるかどうか、スティッキーかどうかを決定します。たとえば、Trueに設定すると、Load Balancerはイングレス・トラフィックをバックエンドに転送しません。
-
次のスクリーンショットに示すように、OCI Load Balancer設定を使用しています。
これを行うには:
-
バックエンドにナビゲートします。
-
その横にあるチェック・ボックスを選択し、「オフライン状態の編集」をクリックします。オフライン・ステータスが「True」になっていることを確認します。
-
-
予測: バックエンド2は完全にオフラインであるため、バックエンド1とバックエンド2の間でバウンスする必要があります。
-
実際の動作: バックエンド2をオフラインとしてマークした後、バックエンド1とバックエンド3の間のバウンスをリクエストします。
タスク5: OCI Load Balancerバックアップ状態の確認
バックアップ状態を使用すると、ディザスタ・リカバリ・シナリオのバックエンド・サーバーを定義できます。サーバーのバックアップ・ステータスが"True"に設定されている場合、Load Balancerは、バックアップとしてマークされていない他のすべてのバックエンド・サーバーがオフラインである場合にのみ、それにイングレス・トラフィックを転送します。
ノート:バックアップとしてマークされたバックエンド・サーバーは、IPハッシュ・ポリシーを使用したロード・バランサと互換性がありません。
-
次のスクリーンショットに示すように、OCI Load Balancer設定を使用しています。
これを行うには:
- バックエンドにナビゲートします。
- その横にあるチェック・ボックスを選択して、「バックアップ状態の編集」をクリックします。バックアップ・ステータスはTrueになります。
-
予測- 最初は、すべてのヘルス・チェックに合格して、Load Balancerはバックエンド2とバックエンド3の間にrobinを丸める必要があります。バックエンド1は、バックエンド2とバックエンド3の両方が不健全な場合にのみリクエストの受信を開始する必要があります。
-
実際の動作: 3つのヘルス・チェックがすべて合格しています。
Load Balancerはバックエンド2とバックエンド3の間でバウンスします。ただし、2つのサーバーをオフラインにすると、次のようになります。
Load Balancerはバックエンド1のみの処理を開始します。
関連リンク
謝辞
- 作成者 - Cody Brinkman (クラウド・アーキテクト)
その他の学習リソース
docs.oracle.com/learnで他のラボをご覧いただくか、Oracle Learning YouTubeチャネルでより無料のラーニング・コンテンツにアクセスしてください。また、education.oracle.com/learning-explorerにアクセスして、Oracle Learning Explorerになります。
製品ドキュメントについては、Oracle Help Centerを参照してください。
Monitor OCI Load Balancer backend operations for DevOps
F75028-01
January 2023
Copyright © 2023, Oracle and/or its affiliates.