自動スケーリングの最も簡単な形式は、インスタンスの CPU 使用率に基づいてマネージド インスタンス グループ(MIG)をスケールすることです。
ロード バランシング処理能力、Monitoring の指標、スケジュールに基づいて MIG を自動スケーリングすることもできます。
始める前に
- オートスケーラーの制限事項を確認します。
- オートスケーラーの基礎知識を確認します。
-
まだ設定していない場合は、認証を設定します。認証とは、Google Cloud サービスと API にアクセスするために ID を確認するプロセスです。ローカル開発環境からコードまたはサンプルを実行するには、次のように Compute Engine に対する認証を行います。
このページのサンプルをどのように使うかに応じて、タブを選択してください。
コンソール
Google Cloud コンソールを使用して Google Cloud サービスと API にアクセスする場合、認証を設定する必要はありません。
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- デフォルトのリージョンとゾーンを設定します。
REST
このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
-
CPU 使用率に基づくスケーリング
マネージド インスタンス グループ(MIG)の平均 CPU 使用率に基づいて自動スケーリングできます(MIG)。このポリシーを使用すると、グループ内のインスタンスの CPU 使用率を収集して、スケーリングが必要かどうかを判断するようにオートスケーラーに指示されます。オートスケーラーが維持するターゲット CPU 使用率を設定することにより、オートスケーラーはそのレベルを維持するように動作します。
オートスケーラーでは、ターゲット CPU 使用率レベルがインスタンス グループ内のすべての vCPU の経時的な平均使用量の比率として扱われます。vCPU 全体の平均使用率がターゲット使用率を超えている場合、オートスケーラーは VM インスタンスを追加します。vCPU 全体の平均使用率がターゲット使用率を下回る場合、オートスケーラーはインスタンスを削除します。たとえば、ターゲット使用率を 0.75 に設定すると、インスタンス グループ内のすべての vCPU の平均使用率を 75% に維持するようにオートスケーラーに指示されます。
また、予測された CPU 使用率に基づいてスケールすることも可能です。詳しくは、予測に基づくスケーリングをご覧ください。ここでは、この方法がワークロードに適しているかどうかを確認できます。
CPU 使用率に基づく自動スケーリングの有効化
Console
コンソールで、[インスタンス グループ] ページに移動します。
インスタンス グループがある場合は、それを選択して [編集] をクリックします。インスタンス グループがない場合は、[インスタンス グループを作成] をクリックします。
自動スケーリング構成が存在しない場合は、[自動スケーリング] で [自動スケーリングを構成] をクリックします。
[自動スケーリング モード] で [オン: グループに対してインスタンスを追加および削除します] を選択して、自動スケーリングを有効にします。
このグループでオートスケーラーが作成するインスタンスの数の最小値と最大値を指定します。
[自動スケーリング指標] セクションで、既存の CPU 使用率の指標がまだ存在しない場合は、1 つ追加します。
- [指標を追加] をクリックします。
- [指標タイプ] で、[CPU 使用率] を選択します。
- 必要な [ターゲットの CPU 使用率] を入力します。この値はパーセント値として扱われます。たとえば、75% の CPU 使用率を指定するには「
75
」と入力します。 - [予測自動スケーリング] で [オフ] を選択します。予測自動スケーリングの詳細とワークロードに適しているかどうかについては、予測に基づくスケーリングをご覧ください。
- [完了] をクリックします。
初期化期間を使用すると、アプリケーションの初期化に要する時間をオートスケーラーに指定できます。正確な初期化期間を指定することで、オートスケーラーによる判断が向上します。たとえば、スケールアウト時、オートスケーラーは初期化中の VM のデータを無視します。初期化中の VM はアプリケーションの通常の使用状況を表していない可能性があるためです。デフォルトの初期化期間は 60 秒です。
[保存] をクリックします。
gcloud
set-autoscaling
サブコマンドを使用して、マネージド インスタンス グループに対する自動スケーリングを有効にします。たとえば次のコマンドでは、目標の CPU 使用率が 60% のオートスケーラーを作成しています。オートスケーラーを作成する場合は、--target-cpu-utilization
パラメータだけではなく、--max-num-replicas
パラメータも必要です。
gcloud compute instance-groups managed set-autoscaling example-managed-instance-group \ --max-num-replicas 20 \ --target-cpu-utilization 0.60 \ --cool-down-period 90
--cool-down-period
フラグを使用して初期化期間を設定できます。これにより、アプリケーションの初期化に要する時間をオートスケーラーに指定できます。正確な初期化期間を指定することで、オートスケーラーによる判断が向上します。たとえば、スケールアウト時、オートスケーラーは初期化中の VM のデータを無視します。初期化中の VM はアプリケーションの通常の使用状況を表していない可能性があるためです。デフォルトの初期化期間は 60 秒です。
必要に応じて、予測自動スケーリングを有効にし、負荷の予測に先立ってスケールアウトできます。予測自動スケーリングがワークロードに適しているかどうかを確認するには、予測に基づくスケーリングをご覧ください。
instance-groups managed describe
サブコマンドを使用して、自動スケーリングが正常に有効になっていることを確認できます。これは、対応するマネージド インスタンス グループを記述し、そのインスタンス グループの自動スケーリング機能に関する情報を提供します。
gcloud compute instance-groups managed describe example-managed-instance-group
利用可能な gcloud
コマンドとフラグの一覧については、gcloud
リファレンスをご覧ください。
REST
オートスケーラーを作成するには、autoscalers.insert
メソッド(ゾーン MIG の場合)または regionAutoscalers.insert
メソッド(リージョン MIG の場合)を使用します。
次の例では、ゾーン MIG にオートスケーラーを作成します。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/autoscalers/
リクエスト本文には name
フィールド、target
フィールド、autoscalingPolicy
フィールドを含める必要があります。autoscalingPolicy
で cpuUtilization
と maxNumReplicas
を定義する必要があります。
coolDownPeriodSec
フィールドを使用して初期化期間を設定できます。これにより、アプリケーションの初期化に要する時間をオートスケーラーに指示できます。正確な初期化期間を指定することで、オートスケーラーによる判断が向上します。たとえば、スケールアウト時、オートスケーラーは初期化中の VM のデータを無視します。初期化中の VM はアプリケーションの通常の使用状況を表していない可能性があるためです。デフォルトの初期化期間は 60 秒です。
必要に応じて、予測自動スケーリングを有効にし、負荷の予測に先立ってスケールアウトできます。予測自動スケーリングがワークロードに適しているかどうかを確認するには、予測に基づくスケーリングをご覧ください。
{ "name": "example-autoscaler", "target": "https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/instanceGroupManagers/example-managed-instance-group", "autoscalingPolicy": { "maxNumReplicas": 10, "cpuUtilization": { "utilizationTarget": 0.6 }, "coolDownPeriodSec": 90 } }
CPU 使用率に基づく自動スケーリングの有効化の詳細については、チュートリアルのスケーラビリティが高いアプリでの自動スケーリングの使用をすべて完了します。
オートスケーラーでの高い CPU 使用率の処理方法
CPU 使用率が高い期間中に使用率が 100% に近づくと、オートスケーラーはそのグループがすでに過負荷状態になっている可能性があると判断します。そのような場合、オートスケーラーは仮想マシンの数を最大で 50% 増やします。
次のステップ
- 予測自動スケーリングを有効にする方法を確認する。
- オートスケーラーの管理について学習する。
- オートスケーラーによる決定の仕組みについて確認する。
- 複数の自動スケーリング信号を使用してグループをスケールする方法を確認する。