自動スケーリングの最も簡単な形式は、インスタンスの CPU 使用率に基づいてマネージド インスタンス グループ(MIG)をスケールすることです。
ロード バランシング処理能力、Monitoring の指標、スケジュールに基づいて MIG を自動スケーリングすることもできます。
始める前に
- オートスケーラーの制限事項を確認します。
- オートスケーラーの基礎知識を確認します。
-
まだ設定していない場合は、認証を設定します。認証では、 Google Cloud サービスと API にアクセスするための ID が確認されます。ローカル開発環境からコードまたはサンプルを実行するには、次のいずれかのオプションを選択して Compute Engine に対する認証を行います。
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Google Cloud CLI をインストールします。 インストール後、次のコマンドを実行して Google Cloud CLI を初期化します。
gcloud init
外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。
- Set a default region and zone.
REST
このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。
Google Cloud CLI をインストールします。 インストール後、次のコマンドを実行して Google Cloud CLI を初期化します。
gcloud init
外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。
詳細については、 Google Cloud 認証ドキュメントの REST を使用して認証するをご覧ください。
CPU 使用率に基づくスケーリング
マネージド インスタンス グループ(MIG)の平均 CPU 使用率に基づいて自動スケーリングできます(MIG)。このポリシーを使用すると、グループ内のインスタンスの CPU 使用率を収集して、スケーリングが必要かどうかを判断するようにオートスケーラーに指示されます。オートスケーラーが維持するターゲット CPU 使用率を設定することにより、オートスケーラーはそのレベルを維持するように動作します。
オートスケーラーでは、ターゲット CPU 使用率レベルがインスタンス グループ内のすべての vCPU の経時的な平均使用量の比率として扱われます。vCPU 全体の平均使用率がターゲット使用率を超えている場合、オートスケーラーは VM インスタンスを追加します。vCPU 全体の平均使用率がターゲット使用率を下回る場合、オートスケーラーはインスタンスを削除します。たとえば、ターゲット使用率を 0.75 に設定すると、インスタンス グループ内のすべての vCPU の平均使用率を 75% に維持するようにオートスケーラーに指示されます。
また、予測された CPU 使用率に基づいてスケールすることも可能です。詳しくは、予測に基づくスケーリングをご覧ください。ここでは、この方法がワークロードに適しているかどうかを確認できます。
CPU 使用率に基づく自動スケーリングの有効化
Console
コンソールで、[インスタンス グループ] ページに移動します。
インスタンス グループがある場合は、インスタンス グループの名前をクリックし、[編集] をクリックします。インスタンス グループの編集ページで、次の操作を行います。
- [グループサイズと自動スケーリング] をクリックして、セクションを開きます。
- [自動スケーリングを構成] をクリックします。
インスタンス グループがない場合は、[インスタンス グループを作成] をクリックして、次の操作を行います。
- [名前] フィールドに、グループの名前を指定します。
- [インスタンス テンプレート] リストで、テンプレートを選択します。
[ロケーション] セクションで、ゾーン MIG またはリージョン MIG のどちらを作成するかに応じて、次のいずれかのオプションを選択します。
- ゾーン MIG の場合は、[シングルゾーン] を選択し、リージョンとゾーンを選択します。
- リージョン MIG の場合は、[マルチゾーン] を選択し、リージョンとゾーンを選択します。
[自動スケーリング] セクションでは、CPU 使用率の自動スケーリング シグナルがデフォルトで追加されます。シグナルのデフォルト値を使用するか、次の操作を行います。
- このグループでオートスケーラーが作成するインスタンスの数の最小値と最大値を指定します。
目標 CPU 使用率を編集するには、CPU 使用率シグナルをクリックしてセクションを開き、割合を指定します。
- [予測自動スケーリング] で [オフ] を選択します。予測自動スケーリングの詳細とワークロードに適しているかどうかについては、予測に基づくスケーリングをご覧ください。
[完了] をクリックします。
初期化期間を使用すると、アプリケーションの初期化に要する時間をオートスケーラーに指定できます。正確な初期化期間を指定することで、オートスケーラーによる判断が向上します。たとえば、スケールアウト時、オートスケーラーは初期化中の 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% 増やします。
次のステップ
- 予測自動スケーリングを有効にする方法を確認する。
- オートスケーラーの管理について学習する。
- オートスケーラーによる決定の仕組みについて確認する。
- 複数の自動スケーリング信号を使用してグループをスケールする方法を確認する。
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。
最終更新日 2025-10-19 UTC。
-