ワークロードが変動し、明確なピークとオフピークがある場合は、自動スケーリングを有効にしてリソースの浪費を防ぐことができます。 この機能を有効にすると、Elastic Algorithm Service (EAS) は、サービスインスタンスの数を調整することにより、オンラインサービスのコンピューティングリソースを自動的に管理します。 これにより、ビジネスの安定性が確保され、リソース使用率が向上します。 このトピックでは、自動スケーリングを設定し、自動スケーリング中にサービスインスタンスの数を計算する方法について説明します。
背景情報
自動スケーリングを設定するには、次のいずれかの方法を使用します。方法1: PAIコンソールで自動スケーリング機能を管理するおよび方法2: クライアントを使用して自動スケーリング機能を管理する。 自動スケーリングを有効にした後にインスタンス数を計算する方法の詳細については、このトピックの「自動スケーリングポリシー」をご参照ください。
方法1: PAIコンソールで自動スケーリング機能を管理する
自動スケーリングの有効化
PAIコンソールにログインします。
左側のナビゲーションウィンドウで、[ワークスペース] をクリックします。 [ワークスペース] ページで、管理するワークスペースの名前をクリックします。
ワークスペースページの左側のナビゲーションウィンドウで、[モデル展開] > [Elastic Algorithm Service (EAS)] を選択します。 Elastic Algorithm Service (EAS) ページが表示されます。
次のいずれかの方法で [Auto Scaling Settings] ダイアログボックスを開きます
方法 1:
EAS-Online Model Servicesページで、管理するサービスの名前をクリックして、[サービスの詳細] ページに移動します。
[Auto Scaling] タブをクリックし、[Auto Scaling] セクションの [Auto Scalingの有効化] をクリックします。
方法2: EAS-Online Model Servicesページで、管理するサービスを見つけ、[操作] 列で > [Auto Scaling] を選択します。 [Auto Scaling] ダイアログボックスが表示されます。
では、自動スケーリング設定ダイアログボックスで、パラメーターを設定します。
基本設定
パラメーター
説明
最小インスタンス数
モデルサービスが占有できるインスタンスの最小数。 このパラメーターの値は0以上である必要があります。
最大インスタンス数
モデルサービスが占有できるインスタンスの最大数。 このパラメーターの値は3000以下でなければなりません。
一般的なスケーリングメトリック
ドロップダウンリストから一般的なスケーリングメトリックを選択し、スケーリングしきい値を指定します。 有効な値:
個々のインスタンスのQPSしきい値: 1秒あたりのクエリ (QPS) しきい値。 1つのインスタンスの平均QPSがしきい値より大きい場合、インスタンスのスケールアウトがトリガーされます。
CPU使用率のしきい値: CPU使用率のしきい値。 1つのインスタンスの平均CPU使用率がしきい値より大きい場合、インスタンスのスケールアウトがトリガーされます。
非同期リクエストのキューサイズ: このパラメーターは、非同期サービスにのみ適用されます。 キュー内の要求の数がしきい値より大きい場合、スケールアウトがトリガーされます。
GPU Usage Threshold: GPU使用率のしきい値。 1つのインスタンスの平均GPU使用率がしきい値より大きい場合、インスタンスのスケールアウトがトリガーされます。
カスタムスケーリングメトリック
カスタムスケーリングメトリックと対応するスケーリングしきい値を設定できます。
高度な設定
パラメーター
説明
スケールアウト開始 ()
スケールアウトがトリガーされてからスケールアウトが開始されるまでの時間。 指定された期間中にリクエストの数が減少したことをシステムが検出した場合、システムは自動的にスケールアウトをキャンセルします。 デフォルト値は 1 です。 単位は秒です。
スケールイン開始 ()
スケールインがトリガーされてからスケールインが開始されるまでの期間。 指定された期間中にリクエストの数が増加したことをシステムが検出した場合、システムは自動的にスケールインをキャンセルします。 デフォルト値は 300 です。 単位は秒です。
でインスタンスを0にスケールイン
スケールインがトリガーされてからすべてのインスタンスが削除されるまでの期間。
0から追加するインスタンスの数
システムが0からインスタンスの追加を開始してから、指定された数のインスタンスが追加されるまでの期間。
有効化をクリックします。
自動スケーリングタスクの設定を更新する
次のいずれかの方法を使用して、自動スケーリング設定ダイアログボックス。
方法1: [Auto Scaling] タブの [Auto Scaling] セクションで、[Update] をクリックします。
方法2: EAS-Online Model Servicesページで、管理するサービスを見つけ、[操作] 列で > [Auto Scaling] を選択します。 [Auto Scaling] ダイアログボックスが表示されます。
では、自動スケーリング設定ダイアログボックスで、設定を変更します。
更新をクリックします。
自動スケーリングの無効化
では、自動スケーリングのセクション自動スケーリングタブをクリックします。Auto Scalingの無効化.
表示される確認ダイアログボックスで、OKをクリックします。
方法2: クライアントを使用して自動スケーリング機能を管理する
自動スケーリングの有効化または自動スケーリングポリシーの更新
デフォルトでは、サービスの作成後、自動スケーリング機能は無効になります。 EASCMDクライアントにログインし、自動スケールサブコマンドを実行してこの機能を有効にします。 EASCMDクライアントにログオンする方法の詳細については、「EASCMDクライアントのダウンロードとユーザー認証の完了」をご参照ください。 次のいずれかの方法を使用して、自動スケーリングを有効にしたり、スケーリングポリシーを更新したりできます。
パラメーターの設定 (推奨)
コマンド構文
eascmd autocale [region]/[service_name] -D[attr_name]=[attr_value]
例:
eascmd autoscale cn-shanghai/test_autoscaler -Dmin=2 -Dmax=5 -Dstrategies.qps=10
説明ファイルの設定
コマンド構文
eascmd autocale [region]/[service_name] -s [desc_json]
スケーリングポリシーは、desc_jsonファイルで設定できます。 次のサンプルコードは、desc_jsonファイルの設定方法の例を示しています。
{ "min": 2, "max": 5, "strategies": { "qps": 10 } }
パラメーター
説明
min
インスタンスの最小数。 値は0より大きくなければなりません。
説明スケーリングメトリックに基づいて計算される必要なインスタンス数が最小インスタンス数未満であっても、インスタンス数を最小インスタンス数未満にすることはできません。
max
インスタンスの最大数。 値は最大300です。
説明スケーリングメトリックに基づいて計算された必要なインスタンス数がインスタンスの最大数を超えていても、インスタンス数がインスタンスの最大数を超えることはできません。
戦略
qpsおよびcpuパラメーターを使用して、ビジネス要件に基づいて自動スケーリングポリシーを設定できます。
qps: 単一のインスタンスのスケールアウトをトリガーするために使用されるQPSしきい値。 1つのインスタンスの平均QPSがしきい値より大きい場合、インスタンスのスケールアウトが自動的にトリガーされます。
cpu: 単一のインスタンスのスケールアウトをトリガーするために使用されるCPU使用率のしきい値。 有効値: 0~100。 1つのインスタンスの平均CPU使用率がしきい値より大きい場合、インスタンスのスケールアウトが自動的にトリガーされます。
例:
eascmd autoscale cn-shanghai/test_autoscaler -s scaler.json
自動スケーリングの無効化
コマンド構文
eascmd autocale rm [region]/[service_name]
例:
eascmd autoscale rm cn-shanghai/test_autoscaler
自動スケーリングポリシー
次の式を使用して、自動スケーリング操作中のインスタンス数を計算できます。
desiredReplicas = ceil[currentReplicas * ( currentMetricValue / desiredMetricValue )]
次の表に、上記のコードのパラメーターを示します。
desiredReplicas: 必要なインスタンス数。
currentReplicas: 現在のインスタンス数。
currentMetricValue: スケーリングメトリックの現在の平均値。
desiredMetricValue: スケーリングメトリックの目的の平均値。
例:
この例では、QPSメトリックが使用されます。 サービスをデプロイするときに、単一のインスタンスのテスト済みまたは推定済みのQPSが10の場合、QPSしきい値 (strategies.qps) を10に設定します。 インスタンスの数は2で、各インスタンスの平均QPSは23に増加します。 インスタンスの所望の数は、以下の式:
ceil[2 × (23/10)] = 5
を使用することによって計算される。合計QPSが10に減少される場合、各インスタンスの平均QPSは2である。 所望のインスタンス数は、以下の式:
ceil[5 × (2/10)] = 1
を使用することによって計算される。 この場合、インスタンス数は徐々に1に減少する。 システムは、トラフィックの変動による異常を防ぐために、スケールイン操作をスムーズに実行します。
関連ドキュメント
スケジュールスケーリングの設定方法については、「スケジュールスケーリング」をご参照ください。
ビジネス要件を満たすように柔軟にリソースを構成する方法については、「Elastic resource pool」をご参照ください。
EASサービスが自動スケーリングを実行した後にリソース使用率を取得するためにカスタムメトリックを設定する方法については、「カスタムモニタリングおよびスケーリングメトリックの設定」をご参照ください。