複数のポリシーの使用

複数のポリシーを使用してオートスケーラーを作成し、オートスケーラーはグループ内の仮想マシンの最大数を提供するポリシーに基づいてスケーリングします。これにより、アプリケーションのワークロードを処理するのに十分な仮想マシンが常に提供され、複数のボトルネックが想定されるアプリケーションをスケーリングできます。

始める前に

オートスケーラーが複数のポリシーを扱う方法

複数のポリシーを扱う際、オートスケーラーはポリシーごとに仮想マシンの推奨数を計算し、グループで使用される仮想マシン数が最も多いポリシーを採用します。

オートスケーラーは、指標タイプごとに 1 つのポリシーを扱うことができます。ただし、Stackdriver Monitoring の指標は例外で、最大 5 つのポリシーを選択できます。たとえば、1 つの CPU 使用率ポリシー、1 つの負荷分散ポリシー、および最大 5 つのカスタム指標ポリシーを使用するオートスケーラーを作成できます。

例として、以下のすべてのポリシー定義を使用してオートスケーラーを定義した場合を取り上げます。

  • 目標値が 0.8 の cpuUtilization
  • 目標値が 0.6 の loadBalancingUtilization
  • 目標値が 1000 の customMetricUtilization である metric1。
  • 目標値が 2000 の customMetricUtilization である metric2。

オートスケーラーは、10 台の仮想マシンを持つマネージド インスタンス グループに対して次の平均値を測定しています。

  • CPU 使用率は 0.5。
  • ロードバランサの使用率は 0.4。
  • metric1 は 1100。
  • metric2 は 2700。

平均値を使用して、オートスケーラーは、各ポリシーに基づいた仮想マシンの推奨変更数を計算します。

  • CPU 使用率に基づく 7 台の仮想マシン。
  • ロードバランサの使用率に基づく 7 台の仮想マシン。
  • metric1 に基づく 11 台の仮想マシン。
  • metric2 に基づく 14 台の仮想マシン。

このオートスケーラーには複数のポリシーが定義されていることから、オートスケーラーは仮想マシンの推奨台数が最も多いポリシー(この例では 14 台)を選択し、マネージド インスタンス グループを 14 台の仮想マシンにサイズ変更します。

複数のポリシーを使用したオートスケーラーの作成

複数のポリシーを使用したオートスケーラーの作成手順は、gcloud コマンドライン ツールと API のどちらを使用するかによって多少異なります。

Console


  1. [インスタンス グループ] ページに移動します。
  2. 使用するインスタンス グループをリストから選択して [編集] をクリックします。
  3. インスタンス グループ詳細ページの [オートスケーラー] で、プルダウン メニューから [オン] を選択して自動スケーリングを有効にします。
  4. [自動スケーリングの基準] セクションで、プルダウン メニューから [複数の指標] を選択します。

    複数のポリシーの選択画面のスクリーンショット

  5. 必要に応じて、CPU 使用率と負荷分散の使用率のフィールドに値を入力します。

  6. カスタム指標ポリシーを追加する場合は、[ターゲット モニタリング指標] セクションで [+] アイコンをクリックし、カスタム指標ポリシーのフィールドに値を入力します。

    カスタム指標のスクリーンショット

    [+] アイコンをクリックすると、複数のカスタム指標ポリシーを追加できます。

gcloud


複数のポリシーを適用するオートスケーラーを作成するには、該当するコマンドライン フラグで複数のポリシーを指定して渡します。次のコマンドは、CPU 使用率と 2 つのカスタム指標を使用するオートスケーラーを作成します。

gcloud compute instance-groups managed set-autoscaling example-managed-instance-group \
    --target-cpu-utilization 0.8 \
    --custom-metric-utilization metric=custom.cloudmonitoring.googleapis.com/path/to/metric1,utilization-target=1000.0,utilization-target-type=GAUGE \
    --custom-metric-utilization metric=custom.cloudmonitoring.googleapis.com/path/to/metric2,utilization-target=2000.0,utilization-target-type=DELTA_PER_SECOND \
    --max-num-replicas 50

カスタム指標フラグを除き、フラグ 1 つで渡すことができる指標タイプは 1 つだけです。

カスタム指標の場合は、次のフラグを繰り返すことによって、複数のカスタム指標を指定できます。

--custom-metric-utilization metric=METRIC,utilization-target=TARGET,utilization-target-type=TYPE

API


API では、リクエスト本文に必要なすべてのポリシーを含めて POST リクエストを実行します。

POST https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/autoscalers

{
  "autoscalingPolicy" : {
    "cpuUtilization":{
      "utilizationTarget": 0.8
    },
    "customMetricUtilizations":[
      {
        "metric": "custom.cloudmonitoring.googleapis.com/path/to/metric1",
        "utilizationTarget": 1000,
        "utilizationTargetType":"GAUGE"
      },
      {
        "metric": "custom.cloudmonitoring.googleapis.com/path/to/metric2",
        "utilizationTarget": 2000,
        "utilizationTargetType": "DELTA_PER_SECOND"
      }
    ],
    "loadBalancingUtilization":{
      "utilizationTarget": 0.6
    },
    "maxNumReplicas": 50,
    "minNumReplicas": 1
    }
  "target": "https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instanceGroupManagers/example-managed-instance-group",
  "name": "example-autoscaler"
}
このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Compute Engine ドキュメント