ステップ 5: Service Auto Scaling を使用するようにサービスを設定する
従来の Amazon ECS コンソールはサポートが終了し、2023 年 12 月 4 日以降は使用できなくなります。エクスペリエンスを向上させるために、すぐに新しい Amazon ECS コンソールに切り替えることをお勧めします。新しい Amazon ECS コンソールのロードマップは GitHub で確認およびフォローできます。 |
オプションで、Auto Scaling を使用して CloudWatch アラームに応じて Amazon ECS サービスの必要タスク数をスケールアップ/ダウンするように、Amazon ECS サービスを設定できます。
Amazon ECS サービス Auto Scaling は、以下のタイプのスケーリングポリシーをサポートします。
-
ターゲット追跡スケーリングポリシー (推奨)—特定のメトリクスのターゲット値に基づいて 、サービスが実行するタスク数を増減させます。これはサーモスタットが家の温度を維持する方法に似ています。温度を選択すれば、後はサーモスタットがすべてを実行します。
-
ステップスケーリングポリシー - アラーム超過のサイズに応じて変動する一連のスケーリング調整値 (ステップ調整値) に基づいて、サービスが実行するタスク数を増減させます。
詳細については、「サービスのオートスケーリング」を参照してください。
基本的な Service Auto Scaling パラメータを設定するには
-
まだ実行していない場合は、「ステップ 1: 基本的なサービスパラメータの設定」の基本的なサービス設定手順に従います。
-
[Auto Scaling を設定] ページで、[Service Auto Scaling の設定を変更することで、サービスの必要数を調整する] を選択します。
-
[Minimum number of tasks (タスクの最小数)] に、サービス Auto Scaling で使用するタスクの下限数を入力します。サービスの必要数は、この数を下回ると自動的に調整されません。
-
[タスクの必要数] には、前に入力した値があらかじめ入力されています。この時点でサービスの必要数を変更できますが、この値は、このページで指定した最小数と最大数の間にあることが必要です。
-
[Maximum number of tasks (タスクの最大数)] に、サービス Auto Scaling で使用するタスクの上限数を入力します。サービスの必要数は、この数を上回ると自動的に調整されません。
-
[IAM role for Service Auto Scaling (サービスの自動スケーリング用の IAM ロール)] で、
ecsAutoscaleRole
を選択します。このロールが存在しない場合は、[新しいロールの作成] を選択して、コンソールで作成します。 -
次の手順は、サービス用のターゲットの追跡またはステップスケーリングポリシーを作成するためのステップです。目的のスケーリングポリシータイプを選択します。
ここでの手順は、ターゲットの追跡スケーリングポリシーと、サービスのスケーリングアクティビティの開始するために使用できる CloudWatch アラームを作成するために役立ちます。
サービスのターゲットの追跡スケーリングポリシーを設定するには
-
[スケーリングポリシータイプ] で [ターゲットの追跡] を選択します。
-
[ポリシー名] に、ポリシーのわかりやすい名前を入力します。
-
[ECS service metric (ECS サービスメトリクス)] で、追跡するメトリクスを選択します。以下のメトリクスが利用可能です。
-
ECSServiceAverageCPUUtilization— サービスの平均 CPU 使用率。
-
ECSServiceAverageMemoryUtilization— サービスのメモリ平均使用率。
-
ALBRequestCountPerTarget - Application Load Balancer ターゲットグループ内のターゲットごとに完了したリクエストの数。
-
-
[ターゲット値] に、ポリシーが維持するメトリクス値を入力します。例えば、
ALBRequestCountPerTarget
にはターゲット値1000
を使用し、ECSServiceAverageCPUUtilization
にはターゲット値75
(%) を使用します。 -
[スケールアウトのクールダウン期間] に、スケールアウトアクティビティが完了してから別のスケールアウトアクティビティが開始されるまでの時間 (秒) を入力します。スケールアウトのクールダウン期間が有効な間は、その期間中にクールダウンを開始したスケールアウトアクティビティによって追加された容量は、次のスケールアウトに予定される容量の一部として繰り入れられます。その目的は、スケールアウトを継続的に (ただし過剰になることなく) 行うことです。
-
[スケールインのクールダウン期間] に、スケールインアクティビティが完了してから別のスケールインアクティビティが開始されるまでの時間 (秒) を入力します。スケールインのクールダウン期間は、その期間が過ぎるまでは以後のスケールインリクエストをブロックするために使用されます。これにより、スケールインが抑制されてアプリケーションの可用性が確保されます。ただし、スケールイン後のクールダウン期間中に別のアラームによってスケールアウトポリシーがトリガーされると、Service Auto Scaling によってスケーラブルなターゲットが即座にスケールアウトされます。
-
(任意) このポリシーのスケールインアクションを無効にするには、[Disable scale-in] (スケールインを無効化) を選択します。これにより、後でスケールイン用の別のスケーリングポリシーを作成できます。
-
[次のステップ] を選択します。
ここでの手順は、サービスのスケーリングアクティビティを開始するために使用できるステップスケーリングポリシーと CloudWatch アラームを作成するために役立ちます。サービスの必要数を増やすための [Scale out] アラームと、サービスの必要数を減らすための [Scale in] アラームを作成できます。
サービスのステップスケーリングポリシーを設定するには
-
[スケーリングポリシータイプ] で [ステップスケーリング] を選択します。
-
[ポリシー名] に、ポリシーのわかりやすい名前を入力します。
-
[Execute policy when (次の場合にポリシーを実行)] で、サービスのスケールアップ/ダウンに使用する CloudWatch アラームを選択します。
以前に作成した既存の CloudWatch アラームを使用することも、新しいアラームを作成することもできます。[Create new alarm (新しいアラームの作成)] ワークフローでは、作成するサービスの
CPUUtilization
とMemoryUtilization
に基づいて CloudWatch アラームを作成できます。他のメトリクスを使用するには、CloudWatch コンソールでアラームを作成してから、このウィザードに戻ってそのアラームを選択します。 -
(オプション) 新しいアラームを作成するように選択した場合は、以下の手順を実行します。
-
[Alarm name] に、アラームのわかりやすい名前を入力します。例えば、サービスの CPU 使用率が 75% を超えたときにアラームが起動するようにする場合、アラーム
を呼び出すことができます。service_name
-cpu-gt-75 -
[ECS service metric] で、アラームに使用するサービスメトリクスを選択します。詳細については、「サービスのオートスケーリング」を参照してください。
-
[Alarm threshold] で、以下の情報を入力してアラームを設定します。
-
アラームの CloudWatch 統計を選択します (多くの場合、[平均] のデフォルト値を使用できます)。詳細については、Amazon CloudWatch ユーザーガイドの「統計」を参照してください。
-
アラームの比較演算子を選択し、比較演算子で確認する値 (
>
and75
など) を入力します。 -
アラームがトリガーされるまでの連続する期間の数とその期間の長さを入力します。例えば、連続する期間の数が 2、その期間が 5 分であれば、アラームがトリガーされるまでに 10 分かかります。Amazon ECS タスクはすばやくスケールアップ/ダウンされる場合があるため、連続する期間の数を少なくし、期間を短くして、アラームの応答時間をできる限り短くすることを検討してください。
-
-
[Save (保存)] を選択します。
-
-
[スケーリングアクション] に、以下の情報を入力して、サービスがアラームにどのように応答するかを設定します。
-
サービスに対してタスクを追加するか、削除するか、または特定の必要数を設定するかを選択します。
-
タスクを追加または削除するように選択した場合は、スケーリングアクションがトリガーされたときに追加または削除するタスクの数 (または既存のタスクのパーセント値) を入力します。必要数を設定するように選択した場合は、スケーリングアクションがトリガーされたときにサービスに設定する必要数を入力します。
-
(オプション) タスクを追加または削除するように選択した場合は、前の値を既存の必要数の整数として使用するか、パーセント値として使用するかを選択します。
-
ステップスケーリング調整の下限値を入力します。デフォルトでは、最初のスケーリングアクションの場合、この値はアラームがトリガーされるメトリクス値です。例えば、以下のスケーリングアクションでは、CPU 使用率が 75% を超えると、既存の必要数の 100% が加算されます。
-
-
(オプション)「ステップ 5」の手順を繰り返して、1 つのアラームに対して複数のスケーリングアクションを設定します (例えば、CPU 使用率が 75 〜 85% の場合は 1 つのタスクが追加され、CPU 使用率が 85% を超える場合は 2 つのタスクが追加されるようにします)。
-
(オプション) 既存の必要数のパーセント値を加算または減算するように選択した場合は、[Add tasks in increments of
N
task(s)] に最小増減値を入力します。 -
[Cooldown period] に、スケーリングアクションの間隔を秒数で入力します。
-
[Scale in (スケールイン)] ポリシーに対してステップ 1〜ステップ 8 の手順を繰り返し、[保存] を選択します。
-
[次のステップ] を選択して続行し、「ステップ 6: サービスを確認して作成する」に移動します。