Amazon EC2 Auto Scaling のステップスケーリングポリシーおよび簡易スケーリングポリシー - Amazon EC2 Auto Scaling (日本語)

Amazon EC2 Auto Scaling のステップスケーリングポリシーおよび簡易スケーリングポリシー

ステップスケーリングおよび簡易スケーリングでは、スケーリングプロセスをトリガーする CloudWatch アラームのスケーリングメトリクスとしきい値を選択します。また、指定した評価期間内にしきい値を超えた場合の Auto Scaling グループのスケーリング方法を定義します。

ターゲット追跡スケーリングポリシーを使用して、Application Load Balancer の平均 CPU 使用率や RequestCountPerTarget メトリクスなどのメトリクスに基づいてスケールすることを強くお勧めします。容量が増加すると減少し、容量が減少すると増加するメトリクスを使用すると、ターゲット追跡を使用してインスタンス数を比例的にスケールアウトしたり、インスタンス数を増やすことができます。これにより、Amazon EC2 Auto Scaling がアプリケーションの需要曲線に厳密に従うことが保証されます。詳細については、「ターゲット追跡スケーリングポリシー」を参照してください。より高度な設定には、追加ポリシーとしてステップスケーリングを使用するオプションがあります。たとえば、必要に応じて、需要が一定のレベルに達したときにより積極的なレスポンスを設定できます。

ステップスケーリングポリシーと簡易スケーリングポリシーの違い

ステップスケーリングポリシーと簡易スケーリングポリシーは、使用できる 2 つの動的スケーリングオプションです。どちらの場合も、スケーリングポリシーの CloudWatch アラームを作成する必要があります。両方とも、アラームの上限しきい値および下限しきい値を指定する必要があります。どちらの場合も、インスタンスを追加するか削除するかを定義し、その数を定義するか、またはグループを正確なサイズに設定する必要があります。

ポリシータイプの主な違いは、ステップスケーリングポリシーで得られるステップ調整です。ステップ調整 が適用され、Auto Scaling グループの現在の容量が増減する場合、調整はアラーム違反のサイズによって異なります。

ほとんどの場合、単一のスケーリング調整があっても、簡易スケーリングポリシーよりもステップスケーリングポリシーが適しています。

簡易スケーリングの主な問題は、スケーリングアクティビティが開始されると、ポリシーはスケーリングアクティビティまたはヘルスチェック交換が完了し、クールダウン期間が終了するまで待つ必要があり、その後に別のアラームに応答できるようになるという点です。クールダウンの期間を指定すると、前のアクティビティの効果が表示される前に、追加の規模の拡大や縮小が実行されることを防ぐことができます。

これとは対照的に、ステップスケーリングでは、ポリシーは、スケーリングアクティビティまたはヘルスチェックの置換が進行中であっても、引き続き別のアラームに応答できます。したがってすべてのアラーム超過は、Amazon EC2 Auto Scaling によってアラームメッセージが受信されると評価されます。

Amazon EC2 Auto Scaling では元々、簡易スケーリングポリシーのみをサポートしていました。ターゲットの追跡およびステップポリシーの導入前にスケーリングポリシーを作成した場合、そのポリシーは簡易スケーリングポリシーとして扱われます。

ステップスケーリングのステップ調整

ステップスケーリングポリシーを作成するときは、アラーム超過のサイズに基づいてインスタンス数を動的にスケーリングする 1 つ以上のステップ調整値を指定します。各ステップ調整値は、次のように指定します。

  • メトリクス値の下限

  • メトリクス値の上限

  • スケーリング調整タイプに基づいてスケールする量

CloudWatch は、CloudWatch アラームに関連付けられたメトリクスの統計に基づいて、メトリクスデータポイントを集計します。アラームを超過した場合、適切なスケーリングポリシーがトリガーされます。Amazon EC2 Auto Scaling は集計タイプを (raw メトリクスデータではなく) CloudWatch からの最新のメトリクスデータポイントに適用します。ステップ調整によって定義された上限と下限に対して、この集約メトリクス値を比較することにより、実行するステップ調整が決定されます。

違反しきい値に比例して上限と下限を指定します。たとえば、現在の容量と希望する容量が 10 の Auto Scaling グループがあるとします。超過しきい値が 50% の CloudWatch アラームと、スケールアウトおよびスケールインポリシーがあります。各ポリシーに対して、調整タイプ PercentChangeInCapacity (またはコンソールの [Percent of group (グループの割合)]) を持つ一連のステップ調整があります。

例: スケールアウトポリシーのステップ調整値
下限 上限 調整

0

10

0

10

20

10

20

null

30

例: スケールインポリシーのステップ調整値
下限 上限 調整

-10

0

0

-20

-10

-10

null

-20

-30

これにより、次のスケーリング設定が作成されます。

Metric value -infinity 30% 40% 60% 70% infinity ----------------------------------------------------------------------- -30% | -10% | Unchanged | +10% | +30% -----------------------------------------------------------------------

以下の点は、グループの希望容量と現在の容量に関連してスケーリング設定の動作をまとめたものです。

  • 集合メトリクス値が 40 より大きく 60 未満である間は、現在の容量と必要な容量が維持されます。

  • メトリクス値が 60 になった場合、スケールアウトのポリシーの 2 番目のステップ調整値 (10 インスタンスの 10% を追加) に基づいて、グループの必要な容量を 1 インスタンスだけ増やして、11 インスタンスにします。新しいインスタンスが実行され、その指定されたウォームアップ期間が終了した後、グループの現在の容量を 11 インスタンスに増やします。この容量の増加後も、メトリクス値が 70 に上昇すると、グループの希望する容量はさらに 3 インスタンス増加し、14 インスタンスになります。これは、スケールアウトポリシーの 3 番目のステップ調整に基づきます (11 インスタンスの 30% である 3.3 インスタンスを 3 インスタンスに切り捨て、追加します)。

  • メトリクス値が 40 になった場合、スケールインポリシーの 2 番目のステップ調整値 (14 インスタンスの 10%、つまり 1.4 インスタンスを丸めた 1 インスタンスを削除) に基づいて、グループの必要な容量を 1 インスタンスだけ減らして、13 インスタンスにします。この容量が減少した後も、メトリクス値が 30 に下がると、グループの希望する容量はさらに 3 インスタンス減少し、10 インスタンスになります。これは、スケールインポリシーの 3 番目のステップ調整に基づきます (13 インスタンスの 30% である 3.9 インスタンスを 3 インスタンスに切り捨て、減算します)。

スケーリングポリシーのステップ調整を指定するときは、次の点に注意してください。

  • AWS マネジメントコンソール を使用している場合は、絶対値として上限と下限を指定します。AWS CLI または AWS SDK を使用している場合は、違反しきい値と相対的に上限と下限を指定します。

  • ステップ調整値の範囲に重複や間隔があってはなりません。

  • 1 つのステップ調整値のみ、下限を null (負の無限大) にすることができます。下限が負のステップ調整値がある場合は、下限が null のステップ調整値が必要です。

  • 1 つのステップ調整値のみ、上限を null (正の無限大) にすることができます。上限が正のステップ調整値がある場合は、上限が null のステップ調整値が必要です。

  • 同じステップ調整値で上限と下限を null にすることはできません。

  • メトリクス値が超過しきい値を上回っている場合、下限にその値を含み、上限には含みません。メトリクス値が超過しきい値を下回っている場合、下限にその値を含まず、上限に含みます。

スケーリング調整タイプ

選択したスケーリング調整タイプに基づいて、最適なスケーリングアクションを実行するスケーリングポリシーを定義できます。調整タイプは、Auto Scaling グループの現在の容量に対する割合、またはキャパシティーユニットで指定できます。通常、キャパシティーユニットは、インスタンスの重み付け機能を使用していない限り、1 つのインスタンスを意味します。

Amazon EC2 Auto Scaling はステップスケーリングと簡易スケーリングに対して次の調整タイプをサポートしています。

  • ChangeInCapacity — 指定した値だけ現在の容量を増減させます。正の調整値は現在の容量を増やし、負の調整値は現在の容量を減らします。たとえば、グループの現在の容量が 3 で、調整値が 5 の場合、このポリシーが実行されると、キャパシティーユニットが 5 個容量に追加され、合計 8 個のキャパシティーユニットになります。

  • ExactCapacity — グループの現在の容量を指定された値に変更します。この調整タイプには正の値を指定します。たとえば、グループの現在の容量が 3 で、調整値が 5 の場合、このポリシーが実行されると、容量は 5 キャパシティーユニットに変更されます。

  • PercentChangeInCapacity — 指定したパーセンテージだけ現在の容量を増減させます。正の値は容量を増やし、負の値は容量を減らします。たとえば、現在の容量が 10 で、調整値が 10% の場合、このポリシーが実行されると、キャパシティーユニットが 1 個追加され、合計 11 個のキャパシティーユニットになります。

    注記

    結果の値が整数でない場合、その値を以下のように四捨五入します。

    • 1 より大きい値は小数点以下が切り捨てられます。たとえば、12.712 に丸められます。

    • 0 と 1 の間の値は 1 に丸められます。たとえば、.671 に丸められます。

    • 0 と -1 の間の値は -1 に丸められます。たとえば、-.58-1 に丸められます。

    • -1 未満の値は小数点以下が切り捨てられます。たとえば、-6.67-6 に丸められます。

PercentChangeInCapacity では、MinAdjustmentMagnitude パラメータを使用して、スケールするインスタンスの最小数を指定することもできます。たとえば、25 パーセント追加するポリシーを作成し、インスタンスの最小増減値を 2 に指定するとします。4 つのインスタンスを持つ Auto Scaling グループがあり、スケーリングポリシーを実行する場合、25 パーセントは 1 インスタンスです。ただし、最小増減値が 2 に指定されているため、2 つのインスタンスが追加されます。

インスタンスの重み付けを使用すると、MinAdjustmentMagnitude パラメータをゼロ以外の値に設定した効果が変化します。値はキャパシティーユニットで指定します。スケールするインスタンスの最小数を設定するには、このパラメータを、最大インスタンスの重みと同じ以上の値に設定します。

インスタンスの重み付けを使用している場合、Auto Scaling グループの現在の容量は、必要に応じて希望する容量を超える場合があることに注意してください。デクリメントする絶対数、またはデクリメントする割合が現在の容量と希望する容量の差よりも小さい場合、スケーリングアクションは実行されません。アラームがトリガーされたときにスケーリングポリシーの結果を確認する際は、このような動作を考慮に入れる必要があります。たとえば、希望する容量が 30 で、現在の容量が 32 であるとします。アラームがトリガーされたときに、スケーリングポリシーで希望する容量を 1 ずつ減らすと、スケーリングアクションは実行されません。

インスタンスのウォームアップ

ステップポリシーを作成している場合、新しく起動されたインスタンスのウォームアップにかかる秒数を指定できます。その指定されたウォームアップ期間が終了するまで、インスタンスは Auto Scaling グループの集合メトリクスの対象になりません。

「ステップ調整」のセクションの例で、新しいインスタンスのウォームアップの最中に、メトリクスが 60 になり、さらに 62 になったとします。現在の容量がまだ 10 インスタンスであるため、1 インスタンス (10 インスタンスの 10%) が追加されます。ただし、グループの必要容量はすでに 11 インスタンスであるため、スケーリングポリシーはこれ以上必要容量は増やしません。新しいインスタンスがまだウォームアップ中にメトリックスが 70 になった場合は、3 インスタンス (10 インスタンスの 30%) を追加する必要があります。ただし、グループの必要な容量はすでに 11 であるため、2 つのインスタンスのみを追加し、新しい必要な容量は 13 インスタンスになります。

スケールアウト時、グループの現在の容量の一部としてウォームアップ中のインスタンスは対象にしません。したがって、複数のアラーム超過によってもステップ調整値の範囲は変わらず、1 つのスケーリングアクティビティという結果になります。これにより、必要以上の数のインスタンスが追加されることがなくなります。

スケールイン時、グループの現在の容量の一部として終了中のインスタンスを対象にします。したがって、Auto Scaling グループから必要以上の数のインスタンスが削除されることがなくなります。

スケールアウトアクティビティの進行中、スケールインアクティビティを開始することはできません。

CloudWatch アラームの作成 (コンソール)

次の手順を使用して、Amazon EC2 Auto Scaling が Auto Scaling グループをスケーリングするタイミングを決定するために使用する CloudWatch アラームを作成できます。各 CloudWatch アラームは 1 つのメトリクスを監視し、メトリクスがアラームのしきい値を超過すると、メッセージを Amazon EC2 Auto Scaling に送信します。

CPU 使用率を監視する CloudWatch アラームを作成するには

  1. https://console.aws.amazon.com/cloudwatch/ にある CloudWatch コンソールを開きます。

  2. 必要に応じてリージョンを変更します。ナビゲーションバーから、Auto Scaling グループがあるリージョンを選択します。

  3. ナビゲーションペインで、[アラーム] を選択し、[アラームの作成] を選択します。

  4. [メトリクスの選択] を選択します。

  5. [すべてのメトリクス] タブで、[EC2]、[Auto Scaling グループ別] を選択し、検索フィールドに Auto Scaling グループの名前を入力します。次に、CPUUtilization を選択し、[メトリクスの選択] を選択します。[Specify metric and conditions (メトリクスと条件の指定)] ページに、メトリクスに関するグラフや他の情報が表示されます。

  6. [期間] でアラームの評価期間 (1 分など) を選択します。アラームを評価する場合、各期間は 1 つのデータポイントに集約されます。

    注記

    期間が短いほど、作成されるアラームの感度が高くなります。

  7. [条件] で、次の操作を行います。

    • [Threshold type (しきい値タイプ)] で [静的] を選択します。

    • [CPUUtilization が次の時] で、アラームをトリガーするためにメトリクスの値をしきい値より大きい、以上、未満、または以下のどれにするかを指定します。次に、[than (よりも)] にアラームをトリガーするしきい値を入力します。

  8. [追加設定] で、次の操作を行います。

    • [Datapoints to alarm (アラームを発生させるデータポイント)] に、アラームをトリガーするためにメトリクス値がしきい値を満たす必要があるデータポイント (評価期間) 数を入力します。たとえば、連続する期間の数が 2、その期間が 5 分であれば、アラームがトリガーされるまでに 10 分かかります。

    • [Missing data treatment (欠落データの処理)] では、[Treat missing data as bad (breaching threshold) (欠落データを問題として処理する (しきい値を超過))] を選択します。詳細については、『Amazon CloudWatch ユーザーガイド』の「CloudWatch アラームが欠落データを処理する方法の設定」を参照してください。

  9. [Next] を選択します。

  10. (オプション) [通知] で、通知を受け取るために使用する Amazon SNS トピックを選択または作成できます。それ以外の場合は、通知を削除し、必要に応じて後で追加できます。

  11. [Next] を選択します。

  12. 名前 (Step-Scaling-AlarmHigh-AddCapacity など) を入力し、必要に応じてアラームの説明を入力して [次へ] を選択します。

  13. [アラームの作成] を選択します。

例: CPU が 80% のしきい値を超えた場合にトリガーする CloudWatch アラーム


                        CloudWatch アラーム

ステップスケーリングポリシーを作成する (コンソール)

次の手順は、2 つのステップスケーリングポリシーを作成するために Amazon EC2 Auto Scaling コンソールを使用する方法を示します。スケールアウトポリシーはグループの容量を 30 パーセント増やし、スケールインポリシーはグループの容量を 2 インスタンスに減らす方法を示しています。

スケーリングポリシーを設定している間、アラームを同時に作成できます。または、前のセクションで説明したように、CloudWatch コンソールから作成したアラームを使用することもできます。

スケールアウト用のステップスケーリングポリシーを作成するには

  1. https://console.aws.amazon.com/ec2/ で Amazon EC2 コンソールを開きます。

  2. ナビゲーションペインの [AUTO SCALING] で、[Auto Scaling グループ] を選択します。

  3. Auto Scaling グループの横にあるチェックボックスをオンにします。

    [Auto Scaling グループ] ページの下部に分割ペインが開き、選択したグループに関する情報が表示されます。

  4. 最小および最大サイズの制限が適切に設定されていることを確認します。たとえば、グループがすでに最大サイズになっている場合、スケールアウトするために新しい最大値を指定する必要があります。Amazon EC2 Auto Scaling は、最小容量より下回ったり、最大容量より上回ったりすることはありません。グループを更新するには、[詳細] タブで、最小容量と最大容量の現在の設定を変更します。

  5. [Automatic scaling (自動スケーリング)] タブの [Scaling policies (スケーリングポリシー)] で、[Add policy (ポリシーの追加)] を選択します。(古いコンソール: [Scaling Policies (スケーリングポリシー)] タブでは、ポリシーを追加できます)。

  6. スケールアウト (容量を増やす) のポリシーを定義するには、次の手順を実行します。

    1. [Policy type (ポリシータイプ)] で、[Step scaling (ステップスケーリング)] を選択します。(古いコンソール: [Create a scaling policy with steps (ステップを含むスケーリングポリシーを作成する)] を選択します)。

    2. ポリシーの名前を指定します。

    3. [CloudWatch アラーム] でアラームを選択します。アラームをまだ作成していない場合は、[CloudWatch アラームの作成] を選択し、ステップ 4 から ステップ 13 を実行して CPU 使用率を監視するアラームを作成します。アラームのしきい値を 80% 以上に設定します。

    4. [Take the action (このアクションを実行)] を使用して、このポリシーの実行時に行う現在のグループサイズの変更を指定します。特定の数のインスタンスまたは既存のグループサイズに対する割合を追加したり、グループを正確なサイズに設定したりできます。

      たとえば、Add を選択し、次のフィールドに 30 と入力してから percent of group を選択します。デフォルトでは、このステップ調整値の下限はアラームしきい値であり、上限は正の無限大です。

    5. 別のステップを追加するには、[Add step (ステップの追加)] を選択し、スケールする量と、アラームしきい値に対するステップの下限と上限を定義します。

    6. 最小数のインスタンスを設定してスケールするには、[Add capacity units in increments of at least (最小数の増分でキャパシティーユニットを追加する)] 1 [capacity units (キャパシティーユニット)] の数値フィールドをアップデートします。

    7. [Instances need] にインスタンスのウォームアップ値を指定します。これにより、新しく起動したインスタンスが CloudWatch メトリクスに影響できるようになるまでの時間を制御できます。

  7. [作成] を選択します。

スケールイン用のステップスケーリングポリシーを作成するには

  1. [Add policy (ポリシーの追加)] を選択して、スケールアウトのポリシーを作成した後で中断したところを続行します。

  2. スケールイン (キャパシティーの減少) のポリシーを定義するには、次の手順を実行します。

    1. [Policy type (ポリシータイプ)] で、[Step scaling (ステップスケーリング)] を選択します。(古いコンソール: [Create a scaling policy with steps (ステップを含むスケーリングポリシーを作成する)] を選択します)。

    2. ポリシーの名前を指定します。

    3. [CloudWatch アラーム] でアラームを選択します。アラームをまだ作成していない場合は、[CloudWatch アラームの作成] を選択し、ステップ 4 から ステップ 13 を実行して CPU 使用率を監視するアラームを作成します。アラームのしきい値を 40% 以下に設定します。

    4. [Take the action (このアクションを実行)] を使用して、このポリシーの実行時に行う現在のグループサイズの変更を指定します。特定の数のインスタンスまたは既存のグループサイズに対する割合を削除したり、グループを正確なサイズに設定したりできます。

      たとえば、Remove を選択し、次のフィールドに 2 と入力してから capacity units を選択します。デフォルトでは、このステップ調整値の上限はアラームしきい値であり、下限は負の無限大です。

    5. 別のステップを追加するには、[Add step (ステップの追加)] を選択し、スケールする量と、アラームしきい値に対するステップの下限と上限を定義します。

  3. [Create] を選択します。

スケーリングポリシーと CloudWatch アラームの作成 (AWS CLI)

以下のように AWS CLI を使用して Auto Scaling グループのステップまたは簡易スケーリングポリシーを設定します。

ステップ 1: Auto Scaling グループを作成する

起動設定 my-launch-config を使用して my-asg という名前の Auto Scaling グループを作成するには、以下の create-auto-scaling-group コマンドを使用します。使用する起動設定がない場合は、create-launch-configuration を呼び出すことで作成できます。

aws autoscaling create-auto-scaling-group --auto-scaling-group-name my-asg \ --launch-configuration-name my-launch-config \ --vpc-zone-identifier "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782" \ --max-size 5 --min-size 1

ステップ 2: スケーリングポリシーを作成する

アプリケーションの負荷が変化したときの処理を Auto Scaling グループに指示する、ステップまたは簡易スケーリングポリシーを作成できます。

ステップスケーリングポリシー

例: my-step-scale-out-policy

以下の put-scaling-policy コマンドを使用して、調整タイプ PercentChangeInCapacitymy-step-scale-out-policy という名前のステップスケーリングポリシーを作成します。このポリシーでは、以下のステップ調整に基づいてグループの容量を増やします (CloudWatch アラームしきい値を 60% と想定)。

  • メトリクスの値が 70% 以上で 80% 未満の場合は、インスタンス数を 10% 増やします。

  • メトリクスの値が 80% 以上で 90% 未満の場合は、インスタンス数を 20% 増やします。

  • メトリクスの値が 90% 以上の場合は、インスタンス数を 30% 増やします。

aws autoscaling put-scaling-policy \ --auto-scaling-group-name my-asg \ --policy-name my-step-scale-out-policy \ --policy-type StepScaling \ --adjustment-type PercentChangeInCapacity \ --metric-aggregation-type Average \ --step-adjustments MetricIntervalLowerBound=10.0,MetricIntervalUpperBound=20.0,ScalingAdjustment=10 \ MetricIntervalLowerBound=20.0,MetricIntervalUpperBound=30.0,ScalingAdjustment=20 \ MetricIntervalLowerBound=30.0,ScalingAdjustment=30 \ --min-adjustment-magnitude 1

ポリシーの Amazon リソースネーム (ARN) を記録します。ポリシーの CloudWatch アラームを作成する場合に必要です。

{ "PolicyARN": "arn:aws:autoscaling:region:123456789012:scalingPolicy:4ee9e543-86b5-4121-b53b-aa4c23b5bbcc:autoScalingGroupName/my-asg:policyName/my-step-scale-in-policy }

例: my-step-scale-in-policy

グループの容量を 2 インスタンスに減らす調整タイプ ChangeInCapacitymy-step-scale-in-policy という名前のステップスケーリングポリシーを作成するには、以下の put-scaling-policy コマンドを使用します。

aws autoscaling put-scaling-policy \ --auto-scaling-group-name my-asg \ --policy-name my-step-scale-in-policy \ --policy-type StepScaling \ --adjustment-type ChangeInCapacity \ --step-adjustments MetricIntervalUpperBound=0.0,ScalingAdjustment=-2

ポリシーの Amazon リソースネーム (ARN) を記録します。ポリシーの CloudWatch アラームを作成する場合に必要です。

{ "PolicyARN": "arn:aws:autoscaling:region:123456789012:scalingPolicy:ac542982-cbeb-4294-891c-a5a941dfa787:autoScalingGroupName/my-asg:policyName/my-step-scale-out-policy }

簡易スケーリングポリシー

あるいは、先ほどの CLI コマンドの代わりに以下の CLI コマンドを使用して、簡易スケーリングポリシーを作成できます。簡易スケーリングポリシーを使用しているため、クールダウン期間が設定されることに注意してください。

例: my-simple-scale-out-policy

グループの容量を 30 パーセント増やす調整タイプ PercentChangeInCapacitymy-simple-scale-out-policy という名前の簡易スケーリングポリシーを作成するには、以下の put-scaling-policy コマンドを使用します。

aws autoscaling put-scaling-policy --policy-name my-simple-scale-out-policy \ --auto-scaling-group-name my-asg --scaling-adjustment 30 \ --adjustment-type PercentChangeInCapacity

ポリシーの Amazon リソースネーム (ARN) を記録します。ポリシーの CloudWatch アラームを作成する場合に必要です。

例: my-simple-scale-in-policy

グループの容量を 1 インスタンスに減らす調整タイプ ChangeInCapacitymy-simple-scale-in-policy という名前の簡易スケーリングポリシーを作成するには、以下の put-scaling-policy コマンドを使用します。

aws autoscaling put-scaling-policy --policy-name my-simple-scale-in-policy \ --auto-scaling-group-name my-asg --scaling-adjustment -1 \ --adjustment-type ChangeInCapacity --cooldown 180

ポリシーの Amazon リソースネーム (ARN) を記録します。ポリシーの CloudWatch アラームを作成する場合に必要です。

ステップ 3: CloudWatch アラームを作成する

ステップ 2 で、指定した条件が変更されたときにどのようにスケールインおよびスケールアウトするかを Auto Scaling グループに指示するスケーリングポリシーを作成しました。このステップでは、監視するメトリクスを識別し、スケーリングの条件を定義して、アラームをスケーリングポリシーに関連付けることでアラームを作成します。

例: AddCapacity

以下の CloudWatch put-metric-alarm コマンドを使用して、2 分間の連続した 2 つの評価期間にわたって平均 CPU しきい値 60% に基づいて Auto Scaling グループのサイズを増やすアラームを作成します。独自のカスタムメトリクスを使用するには、名前を --metric-name で指定し、その名前空間を --namespace で指定します。

aws cloudwatch put-metric-alarm --alarm-name Step-Scaling-AlarmHigh-AddCapacity \ --metric-name CPUUtilization --namespace AWS/EC2 --statistic Average \ --period 120 --evaluation-periods 2 --threshold 60 \ --comparison-operator GreaterThanOrEqualToThreshold \ --dimensions "Name=AutoScalingGroupName,Value=my-asg" \ --alarm-actions PolicyARN

例: RemoveCapacity

以下の CloudWatch put-metric-alarm コマンドを使用して、2 分間の連続した 2 つの評価期間にわたって平均 CPU しきい値 40% に基づいて Auto Scaling グループのサイズを減らすアラームを作成します。独自のカスタムメトリクスを使用するには、名前を --metric-name で指定し、その名前空間を --namespace で指定します。

aws cloudwatch put-metric-alarm --alarm-name Step-Scaling-AlarmLow-RemoveCapacity \ --metric-name CPUUtilization --namespace AWS/EC2 --statistic Average \ --period 120 --evaluation-periods 2 --threshold 40 \ --comparison-operator LessThanOrEqualToThreshold \ --dimensions "Name=AutoScalingGroupName,Value=my-asg" \ --alarm-actions PolicyARN