このセクションでは、NSX Advanced Load Balancer プラットフォームと AWS 自動スケーリング グループの統合方法について説明します。

NSX Advanced Load Balancer プールは、同様の特性を持つまたは同様のアプリケーションを提供またはホストするバックエンド サーバのグループです。NSX Advanced Load Balancer と AWS の統合では、対応する AWS 自動スケーリング グループで AWS によって実行されたアクションを反映するために、プールがスケール インまたはスケール アウトされます。このようなアクションは、AWS の事前構成済みのポリシーと基準によって管理されます。

スケール アウトされると 1 つ以上のインスタンスが自動スケーリング グループに追加され、スケール インされると 1 つ以上のインスタンスが自動スケーリング グループから削除されます。

AWS の自動スケーリング グループの詳細については、「自動スケーリング グループ」を参照してください。

背景

NSX Advanced Load Balancer は、仮想サービスのプールを構成するための AWS 自動スケーリング グループをサポートします。

NSX Advanced Load Balancer AWS クラウド コネクタは、AWS 自動スケーリング グループのメンバーシップ情報を定期的にポーリングし、変更が必要な場合は対応するプール サーバのメンバーシップを更新します。

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

注:
  • NSX Advanced Load Balancer は、自動スケーリング グループに対して SNS および SQS 機能をサポートします。SNS と SQS が使用されていない場合は、デフォルトのポーリング方法が使用されます。詳細については、『VMware NSX Advanced Load Balancer 構成ガイド』の「自動スケーリング グループに対する SNS-SQS 機能の使用」を参照してください。

  • 起動テンプレートを使用した ASG がサポートされています。

前提条件

  • AWS ユーザーまたは IAM ロールに、自動スケーリング グループとそのインスタンスへの読み取りアクセス権があること。詳細については、『VMware NSX Advanced Load Balancer インストール ガイド』の「AWS へのインストールのための IAM ロールの設定」を参照してください。

  • 自動スケーリング グループが既に AWS で構成されていること。

NSX Advanced Load Balancer ユーザー インターフェイスを使用した構成

ユーザー インターフェイスを使用した構成手順は次のとおりです。

  1. ユーザー インターフェイスにログインします。[アプリケーション] > [プール] の順に移動します。[プールの作成] をクリックします。クラウドを選択し、プール名を指定し、残りのフィールド オプションのデフォルト値を受け入れます。

  2. [次へ] をクリックして、サーバ オプションを表示します。[サーバの選択] から [自動スケーリング グループ] オプションを選択します。

  3. [自動スケーリング グループ] ドロップダウン メニューから、その特定のクラウド用に AWS で既に構成されている自動スケーリング グループ インスタンスを選択します。

  4. リストからインスタンスまたはサーバを選択すると、NSX Advanced Load Balancer は AWS からインスタンスまたはサーバ情報を取得します。

  5. [保存] オプションをクリックすると、[プール] ページに戻り、自動スケーリング グループのメンバーが表示されます。

自動スケーリング グループに対する SNS-SQS 機能の使用

NSX Advanced Load Balancer は、AWS の Simple Notification Service (SNS) 機能と Simple Queue Service (SQS) 機能を利用できます。SNS は、AWS 自動スケーリング グループのプール メンバー情報を更新するために使用されるプッシュ通知サービスです。SQS はメッセージング キュー サービスです。SNS および SQS の詳細については、次のリンクを参照してください。

デフォルトでは、SNS または SQS オプションを使用するためのフラグは NSX Advanced Load Balancer Controllerで false に設定されています。デフォルトのポーリング方法では、コントローラは 10 分ごとにポーリングし、ASG メンバーシップの変更に関する情報を同期します。SNS 機能と SQS 機能が有効になっていない場合は、ポーリング間隔を 1 分に設定します。この値は、60 秒(1 分)~ 1,800 秒(30 分)の範囲で構成できます。SNS-SQS 機能を使用する場合は、ASG メンバーシップが変更されるとクラウド コネクタは即座にコントローラに通知するため、ポーリング間隔の値を 1 分から 10 分に増やします(推奨)。

CLI を使用した NSX Advanced Load Balancer での SNS-SQS の構成

use_sns_sqs の値を変更します。asg_poll_interval 値を確認します。要件に基づいて 10 分以上に設定する必要があります。SNS 機能と SQS 機能が使用されていない場合は、ポーリング間隔を 1 分に変更します。

コントローラのシェル プロンプトにログインし、次の手順を実行します。

[admin:10-1-1-1]: cloud> aws_configuration
[admin:10-1-1-1]: cloud:aws_configuration> asg_poll_interval 600
Overwriting the previously entered value for asg_poll_interval
[admin:10-1-1-1]: cloud:aws_configuration> use_sns_sqs
Overwriting the previously entered value for use_sns_sqs
+---------------------+-------------------+
| Field               | Value             |
+---------------------+-------------------+
| access_key_id       |  sensitive        |
| secret_access_key   |  sensitive        |
| region              | us-west-2         |
| vpc                 | AVI-MISC-West-VPC |
| vpc_id              | vpc-c8d6b5af      |
| zones[1]            |                   |
|   availability_zone | us-west-2c        |
|   mgmt_network_name | 2C-nw-9           |
| route53_integration | False             |
| free_elasticips     | True              |
| use_iam_roles       | False             |
| ttl                 | 60 sec            |
| wildcard_access     | True              |
| use_sns_sqs         | True              |
| asg_poll_interval   | 600 sec           |
+---------------------+-------------------+

SNS/SQS が使用されていない場合は、use_sns_sqsfalse に設定し、asg_poll_interval を 60 秒に変更します。

[admin:10-1-1-1]: cloud:aws_configuration> no use_sns_sqs
+---------------------+-------------------+
| Field               | Value             |
+---------------------+-------------------+
| access_key_id       | sensitive         |
| secret_access_key   | sensitive         |
| region              | us-west-2         |
| vpc                 | AVI-MISC-West-VPC |
| vpc_id              | vpc-c8d6b5af      |
| zones[1]            |                   |
|   availability_zone | us-west-2c        |
|   mgmt_network_name | 2C-nw-9           |
| route53_integration | False             |
| free_elasticips     | True              |
| use_iam_roles       | False             |
| ttl                 | 60 sec            |
| wildcard_access     | True              |
| use_sns_sqs         | False             |
| asg_poll_interval   | 600 sec           |
+---------------------+-------------------+
[admin:10-1-1-1]: cloud:aws_configuration>
[admin:10-1-1-1]: cloud:aws_configuration> asg_poll_interval 60
Overwriting the previously entered value for asg_poll_interval
+---------------------+-------------------+
| Field               | Value             |
+---------------------+-------------------+
| access_key_id       |    sensitive      |
| secret_access_key   |    sensitive      |
| region              | us-west-2         |
| vpc                 | AVI-MISC-West-VPC |
| vpc_id              | vpc-c8d6b5af      |
| zones[1]            |                   |
|   availability_zone | us-west-2c        |
|   mgmt_network_name | 2C-nw-9           |
| route53_integration | False             |
| free_elasticips     | True              |
| use_iam_roles       | False             |
| ttl                 | 60 sec            |
| wildcard_access     | True              |
| use_sns_sqs         | False             |
| asg_poll_interval   | 60 sec            |
+---------------------+-------------------+

AWS での構成

AWS ユーザーは、SNS-SQS サービスを有効にして使用するのに必要なさまざまなアクションを実行するために必要なすべての権限を持っている必要があります。指定された権限のリストについては、次の JSON ファイルを確認してください。

  • avicontroller-sns-policy.json

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "Stmt1499337009000",
      "Effect": "Allow",
      "Action": [
        "sns:ConfirmSubscription",
        "sns:CreateTopic",
        "sns:DeleteTopic",
        "sns:GetSubscriptionAttributes",
        "sns:GetTopicAttributes",
        "sns:ListSubscriptionsByTopic",
        "sns:Publish",
        "sns:SetTopicAttributes",
        "sns:Subscribe",
        "sns:ListTopics",
        "sns:Unsubscribe"
      ],
      "Resource": [
        "*"
      ]
    }
  ]
}
  • avicontroller-sqs-policy.json

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "Stmt1499336908000",
      "Effect": "Allow",
      "Action": [
        "sqs:*"
      ],
      "Resource": [
        "*"
      ]
    }
  ]
}
  • avicontroller-asg-notification-policy.json

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "Stmt1499337126000",
      "Effect": "Allow",
      "Action": [
        "autoscaling:DeleteNotificationConfiguration",
        "autoscaling:DescribeNotificationConfigurations",
        "autoscaling:PutNotificationConfiguration"
      ],
      "Resource": [
        "*"
      ]
    }
  ]
}

これらのポリシーを AWS ユーザーに関連付ける手順については、『VMware NSX Advanced Load Balancer インストール ガイド』の「AWS へのインストールのための IAM ロールの設定」を参照してください。

アラート

NSX Advanced Load Balancer では、AWS に構成した自動スケーリング グループの情報が同期されます。統合 AWS で自動スケーリング グループのいずれかが削除されると、対応するアラートとイベントが NSX Advanced Load Balancer に生成されます。