Extendの自動スケーリング
注釈:本資料はAI技術を用いて翻訳されています。
概要
この記事では、Hosted Extend Appsのスケーリングの仕組みと、AccelByte Gaming Services (AGS) Admin Portalで平均目標CPU使用率に基づいてスケーリングを設定する方法について説明します。
Hosted Extendサービスの自動スケーリング戦略
Hosted Extendサービスは、需要に対応するための戦略として水平スケーリングを使用します。水平スケーリングは、実行中のExtendアプリのレプリカ数を調整することで機能します。需要に応じてレプリカ数は即座にスケールアップされます(遅延や安定化期間はありません)。すべてのレプリカ全体のCPU使用率が需要の指標として使用されます。Extendコントローラーは、次のアルゴリズムを使用して、平均CPU使用率を設定された目標値(デフォルト: 50%)に近い状態に保ちます。
desiredAppReplicas = ceil[currentAppReplica * ( currentAvgCPUUtilizationPercentage / targetCPUUtilizationPercentage )]
以下は、任意の時点における現在のCPU使用率と目標CPU使用率をもとに、コントローラーが実行するレプリカ数をどのように決定するかを示す例です。
-
例えば、スケールアウトのシナリオでは、以下のように仮定します。
- Appレプリカの現在の平均CPU使用率は90%です(レプリカは目標使用率を上回って高度に利用されています)。
- 現在2つのAppレプリカが実行されています。
- targetCPUUtilizationPercentageは50%に設定されています。
上記のパラメーターで計算すると、次のようになります。
desiredAppReplicas = ceil[2 * ( 90% / 50% )]
desiredAppReplicas = 4必要なAppレプリカ数は4になります。
-
最初の例と比較して、スケールアウトのシナリオでは、以下のように仮定します。
- Appレプリカの現在の平均CPU使用率は90%です(レプリカは目標使用率を上回って高度に利用されています)。
- 現在2つのAppレプリカが実行されています。
- targetCPUUtilizationPercentageは30%に設定されています。
上記のパラメーターで計算すると、次のようになります。
desiredAppReplicas = ceil[2 * ( 90% / 30% )]
desiredAppReplicas = 6必要なAppレプリカ数は6になります。同じCPU使用率でも目標値が低い(50%ではなく30%)場合、平均使用率を目標値まで下げるためにより多くのレプリカが必要になります。
-
別の例として、スケールインのシナリオでは、以下のように仮定します。
- Appレプリカの現在の平均CPU使用率は20%です(レプリカは目標使用率を下回って低利用状態です)。
- 現在4つのAppレプリカが実行されています。
- targetCPUUtilizationPercentageは50%に設定されています。
上記のパラメーターで計算すると、次のようになります。
desiredAppReplicas = ceil[4 * ( 20% / 50% )]
desiredAppReplicas = 2必要なAppレプリカ数は2になります。
自動スケーリングの平均目標CPU使用率を設定する
targetCPUUtilizationPercentageパラメーターは、さまざまなExtendアプリのユースケースや実装の動的なニーズに対応するために、Admin Portalから設定できます。このパラメーターは希望するCPU使用率であり、クラスターは平均CPU使用率を希望する目標値に近づけるためにレプリカ数を調整します。
- Admin PortalにおけるExtend Appの
targetCPUUtilizationPercentageのデフォルト値は50%で、最小30%、最大90%の有効な範囲内で設定できます。
Extendアプリの平均目標CPU使用率に基づく自動スケーリングを設定するには、以下の手順に従います。
-
AGS Admin Portalのサイドバーで、Extendに移動し、対象のアプリが含まれているExtendアプリメニューを選択します。
-
Extendアプリのリストから、更新したいExtendアプリの名前をクリックして詳細ページを開きます。
-
詳細ページの右上にある設定ボタン(ギアアイコン)をクリックします。Settingsページが表示されます。

-
ExtendアプリのSettingsページで、Auto Scaling Policyフォームセクションの**Target CPU Utilization (%)**を必要に応じて設定します。

-
Saveをクリックして変更を適用します。
warning設定中のExtendアプリが現在実行中の場合、保存後に自動的に再起動します。実行中でない場合は、再デプロイして変更を適用してください。
平均目標CPU使用率を決定するための一般的なガイド
このセクションでは、アプリのニーズと動作に基づいて自動スケーリングの目標CPU使用率を決定する方法を説明します。
適切な目標CPU使用率はアプリによって異なります。Extendアプリのパフォーマンスをテストおよびモニタリングし、それに応じて自動スケーリングを調整することが重要です。
さまざまなExtendアプリのケースに対応するために目標CPU使用率を決定する際の主な考慮事項を以下に示します。
- トラフィックパターンを評価して、アプリケーションの動作を理解します。
- バーストトラフィック: 負荷の頻繁なスパイク。
- 安定したトラフィック: 時間経過に伴う一貫したワークロード。
- ベースラインから始めます。
- すべてのExtendアプリのデフォルトの開始点は目標CPU使用率50%です。
- トラフィックに基づいて調整します。これらはより一般化された考慮事項です。
- バーストトラフィック: スパイク時の余裕を持たせるために30-50%
- 安定したトラフィック: リソース効率のために60-80%
- スケーリングのレイテンシを考慮します。
- スケールアップは、新しいレプリカが実行され、トラフィックを受け取る準備が整うまでに遅延を追加します。
- 目標CPU使用率を低く設定する(例: 30-50%)ことで、新しいレプリカが準備できるまでのスパイクに対応するバッファ容量を確保できます。
- 正確なCPUリクエストを確保します。
- HPAの計算はCPUリクエストに依存します(CPUリクエストの設定方法のページを参照してください)。
- CPUリクエストが高すぎる場合、実際の使用率が実際より低く見え、スケーリング不足を引き起こします。
- CPUリクエストが低すぎる場合、実際の使用率が実際より高く見え、過剰スケーリングを引き起こします。
注記適切なCPUリクエストを設定するには、時間をかけてExtendアプリのパフォーマンスをテスト、モニタリング、再評価する必要がある場合があります。
- HPAの計算はCPUリクエストに依存します(CPUリクエストの設定方法のページを参照してください)。
- テストと調整を行います。
- 要件に応じて、負荷テストを実行してピークトラフィックをシミュレートし、自動スケーリングの動作を観察します。
- 時間をかけてモニタリングし、観察されたパフォーマンスと安定性に基づいて目標CPU使用率を調整します。
一般的な例のシナリオ
アプリケーションの観察結果:
- CPUリクエスト: レプリカあたり500m
- 通常の負荷: 約150-250m
- ピーク負荷: 最大500m
推奨事項:
- CPUリクエストを400mに設定します。これは通常のワークロードの大部分をカバーします。
- 目標CPU使用率を60%に設定します。
- 使用率のしきい値: 400m * 60% = 240m
- これにより、レプリカが限界に達する前にスケーリングが発生し、通常の負荷でアプリケーションのパフォーマンスが維持されます。