このセクションでは、NSX Advanced Load Balancer プラットフォームを Azure 仮想マシン (VM) スケール セットと統合する方法について説明します。

統合には、主に次の 2 つのセクションが含まれます。

  • プールの構成

  • 仮想サービスの構成

プールと仮想サービスの設定は、自動スケーリング ポリシーを実装するために、NSX Advanced Load Balancer の次のセクションで説明するようにカスタマイズされます。この例外は、組み込みのポリシーを使用して Azure が自動スケーリングを実行する場合です。

概要

NSX Advanced Load Balancer プールは、類似した特性を持つ、または類似のアプリケーションをホストするバックエンド サーバのグループです。NSX Advanced Load Balancer と Azure の統合では、NSX Advanced Load Balancer プールは、Azure が特定のスケール セットを管理するために実行したアクションを反映するようにスケールインまたはスケールアウトされます。Azure の事前構成済みのポリシーと基準は、これらのアクションを制御します。Azure 仮想マシン スケール セットの詳細については、Virtual Machine Scale Sets とは何ですか?を参照してください。

背景

NSX Advanced Load Balancer は、仮想サービスの NSX Advanced Load Balancer プールを構成する Azure スケール セットをサポートします。NSX Advanced Load Balancer Azure Cloud Connector は、Azure スケール セット情報を定期的にポーリングし、変更が発生した場合に、対応する NSX Advanced Load Balancer プール サーバ メンバーシップを更新します。

たとえば、新しいサーバ(仮想マシン)が、NSX Advanced Load Balancer プールとして使用される Azure スケール セットに追加された場合、NSX Advanced Load Balancer はプール メンバーシップを自動的に更新して、新しくプロビジョニングされたサーバを含めます。逆に、Azure スケール セットからサーバ(仮想マシン)が削除されると、NSX Advanced Load Balancer はこのサーバをプール メンバーシップから削除します。これにより、オペレータの介入や構成の更新なしに、シームレスで柔軟性に優れた自動バックエンド サーバ リソース管理が可能になります。

前提条件

  • Azure の認証情報アセットは、スケール セットにアクセスする必要があります。認証情報アセットは、アプリケーションの場合と同様のサービス プリンシパル オブジェクト、またはユーザー名/パスワードの認証情報セットのいずれかです。Azure ロール定義の詳細については、Azure のロールと権限を参照してください。

  • スケール セットは Azure で構成されます。

プール設定の構成

  1. [アプリケーション] > [プール] の順に移動します。

  2. [プールの作成] をクリックし、プロンプトが表示されたら Azure クラウドを選択します。

  3. プール名を入力し、[デフォルトのサーバ ポート][グレースフルな無効化のタイムアウト][ロード バランシング][パーシステンス] の各フィールドに適切な値を入力します。

  4. 必要なその他のフィールドを入力して、[保存] をクリックします。

自動スケール ポリシー

NSX Advanced Load Balancer を Azure 仮想マシン スケール セットと統合するには、スケールインとスケールアウトの条件とアラートを定義して、自動スケール ポリシーを構成します。

新規ポリシーを作成するには、[自動スケール ポリシー] タブのドロップダウン メニューをクリックし、[作成] を選択します。

図 1.

[新しい自動スケール ポリシー] ポップアップ ウィンドウの次のフィールドを入力します。

  • [名前]:ポリシーの関連する名前を入力します。

  • [インスタンス]:スケーリング プロセスのサーバの最小数と最大数を入力します。

  • [スケールアウト]

    • [アラート]:ドロップダウン メニューをクリックして、事前定義されたアラートを選択します。新しいアラートを作成するには、以下の「アラートの作成」セクションを参照してください。

    • [クールダウン期間]:アラートにもかかわらず新しいスケールアウトがトリガされないようにする期間を秒単位で入力します。

    • [調整ステップ]:同時にスケールアウトするサーバの数を入力します。

  • [スケールイン]

    • [アラート]:ドロップダウン メニューをクリックして、事前定義されたアラートを選択します。新しいアラートを作成するには、以下の「アラートの作成」セクションを参照してください。

    • [クールダウン期間]:アラートにもかかわらず新しいスケールインがトリガされないようにする期間を秒単位で入力します。

    • [調整ステップ]:同時にスケールインするサーバの数を入力します。

    図 2.

この例では、クールダウン期間が 300 秒間構成され、調整ステップが 1 に設定されています。そのため、スケールアウトまたはスケールイン イベントがトリガされた後、システムは 300 秒間待機してから新しいイベントをトリガします。調整ステップを 1 に設定すると、スケールアウトまたはスケールイン イベントごとに、サーバがそれぞれ 1 ずつ増加または減少します。

アラートの作成

スケールアウトまたはスケールインのカスタム アラートを作成するには、次の手順を実行します。

  1. [アラート] ドロップダウン メニューをクリックし、次のように [作成] を選択します。



  2. [基本] セクションの次のフィールドを入力します。

    1. アラート構成の [名前] を入力します。

    2. [イベント トリガの有効化] チェック ボックスを選択して、構成されたアラートに対してアラートを有効にします。

    3. (オプション)構成されたアラートの [説明] を入力します。



  3. [条件] セクションの次のフィールドを入力します。

    1. [スロットル アラート]:前回のトリガ以降にこのアラートが抑止される時間を秒単位で入力します。

    2. [送信元][メトリック] オプションを選択して、後続のセクションで適切なメトリック パラメータを構成します。

    3. [オブジェクト]:仮想サービス、サービス エンジン、プールのいずれかのオプションを選択します。ここでは、何も選択しません。

    4. [自動スケール アラート] をクリックして、このアラートを自動スケール用に有効にします。

    5. [発生数]:アラートを作成するために指定した期間内に発生したイベントがこの数を満たす、または超過する数を入力します。許容範囲は 1 ~ 65536 です。

    6. [カテゴリ][ローリング期間] を選択して、時間枠内のメトリック パラメータを定義します。この時間枠内にイベントの数が定義された制限を満たすか超えた場合にのみ、アラートが生成されます。[リアルタイム] を選択すると、時間枠なしでメトリック パラメータを定義します。これにより、メトリック トリガがリアルタイムでチェックされます。

    7. [メトリックの発生]:ドロップダウン メニューをクリックして、イベント ID のリストから選択します。[コンパレータ][値][期間] の各フィールドに関連する値を入力して、メトリックの構成を完了します。スクリーンショットのインスタンスでは、開いているレイヤー 4 接続の最大許容数を示す、l4_server.max_open_conns イベントのメトリックを構成します。この場合、レイヤー 4 で開いている接続が、300 秒間に 500 個以上の場合にアラートがトリガされます。

    8. [+ 新規メトリックの追加] をクリックしてさらにイベント トリガを作成します。新しいメトリックは、すでに構成されているメトリックで [および] 条件と [または] 条件を使用して構成できます。



  4. [アクション] セクションの次のフィールドを入力します。

    1. [アラート アクション]:ドロップダウン メニューをクリックして事前定義されたアラート アクションを選択するか、[アラート アクションの作成] をクリックして新規アクションを作成します。編集アイコンをクリックして、アクション パラメータをカスタマイズします。

    2. [アラートの有効期限]:構成されたアラートの有効期限を秒単位で入力します。



自動スケールの起動構成

  1. [自動スケールの起動構成] ドロップダウン メニューをクリックし、[default-autoscalelaunchconfig] を選択します。これは、自動スケール用のサーバが、この場合は Azure クラウドなどの外部エコシステムによってホストされていることを示します。



  2. [次へ] をクリックします。

  3. 新しい自動スケールの起動構成を作成するには、[作成] をクリックします。

  4. 名前を指定し、[外部 ASG の使用] のチェック ボックスを選択します。



プール サーバの構成

  • [サーバの選択] で、 [Azure スケール セット] オプションを選択します。 [自動スケーリング グループ] のドロップダウンをクリックします。これにより、指定したクラウドに対して Azure で構成されたスケール セットが一覧表示されます。

  • [次へ] をクリックして、[配置設定][プールの完全な設定][プール障害の設定] の順に構成します。



  • [次へ] をクリックして情報を確認し、[保存] をクリックして構成を完了します。これで、Azure 仮想マシン スケール セットを統合するためのプール構成は終了です。

仮想サービスの構成

  1. [アプリケーション] > [仮想サービス] の順に移動し、[仮想サービスの作成] をクリックします。[基本] または [詳細] のいずれかの設定を選択して、構成された仮想サービスを Azure スケール セットにマッピングできます。

  2. 基本設定を構成するには、次の手順に従います。

    1. Azure 固有のリソース グループを選択します。

    2. [サーバの追加] セクションで、[Azure スケール セット] を選択します。

    3. [自動スケール] グループのドロップダウン メニューからリソース グループを選択します。

    4. 特定のグループを選択すると、構成されたサーバが [サーバ] セクションに表示されます。

  3. [詳細設定] の構成には、特定の仮想サービス用に構成された Azure プールを割り当てるオプションが用意されています。

    1. Azure プールを選択するには、[プール] セクションで [プール] を選択し、ドロップダウン メニューから構成済みの Azure プールを選択します。



    2. [次へ] をクリックして、残りの仮想サービス構成に移動します。

    3. [保存] をクリックして、構成を完了します。

Azure ポリシーを使用した自動スケーリング

自動スケーリングは、NSX Advanced Load Balancer で定義された [自動スケール ポリシー] の代わりに Azure ポリシーを使用して実行できます。

ナビゲーション ペインで [アプリケーション] を選択し、[プール] をクリックします。[プールの作成] をクリックし、プロンプトが表示されたら Azure クラウドを選択します。

プール名を入力し、[デフォルトのサーバ ポート][グレースフルな無効化のタイムアウト][ロード バランシング][パーシステンス] の各フィールドに適切な値を入力します。

[自動スケール ポリシー] フィールドは選択しないままにし、[次へ] をクリックして、プール サーバを「[プール サーバの構成]」セクションで説明したように構成します。



NSX Advanced Load Balancer で自動スケール ポリシーが定義されていないため、自動スケールは Azure で構成されたポリシーによって実行されます。

自動スケールのポーリング間隔の構成

自動スケールのポーリング間隔を有効にするには、NSX Advanced Load Balancer CLI にログインし、デフォルト クラウド モードでのクラウドの構成で autoscale_polling_interval <duration in seconds> コマンドを実行します。

[admin:10-1-1-1]: > configure cloud Default-Cloud
[admin:10-1-1-1]: cloud > autoscale_polling_interval 120
[admin:10-1-1-1]: cloud > save

120 は、ポーリング間隔(秒単位)です。