ステップスケーリングポリシーを使用して、スポットフリートをスケーリングします。
ステップスケーリングポリシーでは、CloudWatch アラームを指定してスケーリングプロセスをトリガーします。たとえば、CPU 利用率が一定のレベルに達したときにスケールアウトする場合、Amazon EC2 によって提供される メトリクスを使用してアラームを作成します。CPUUtilization
ステップスケーリングポリシーを作成したら、次のいずれかのスケーリング調整タイプを指定する必要があります。
-
[追加] - 指定した数の容量ユニットまたは指定した割合の現在の容量で、スポットフリートのターゲット容量を増やします。
-
[削除] - 指定した数の容量ユニットまたは指定した割合の現在の容量で、スポットフリートのターゲット容量を減らします。
-
[設定] - 指定した数の容量ユニットに、スポットフリートのターゲット容量を設定します。
アラームがトリガーされると、自動スケーリングプロセスは、取得済み容量およびスケーリングポリシーを使用して新しいターゲット容量を計算し、必要に応じてターゲット容量を更新します。例えば、ターゲット容量と取得済み容量がそれぞれ 10 で、スケーリングポリシーが 1 を加算するとします。アラームがトリガーされると、自動スケーリングプロセスは 10 に 1 を加えて 11 を得るため、スポットフリートは 1 インスタンスを起動します。
ターゲット容量が減ったためにスポットフリートがインスタンスを終了する場合、インスタンスはスポットインスタンスの中断通知を受け取ります。
制限
スポットフリートリクエストには、タイプが maintain
のリクエストが必要です。自動スケーリングはタイプ request
のリクエストまたはスポットブロックではサポートされていません。
前提条件
-
アプリケーションにとってどの CloudWatch メトリクスが重要化を検討します。 または独自のカスタムメトリクスが提供するメトリクスに基づいて、CloudWatch アラームを作成できます。AWS
-
スケーリングポリシーで使用する メトリクスについて、メトリクスを提供するサービスがデフォルトで有効にならない場合、CloudWatch メトリクスの収集を有効にします。AWS
CloudWatch アラームを作成するには
CloudWatch コンソール (https://console.aws.amazon.com/cloudwatch/
) を開きます。 -
ナビゲーションペインで、[Alarms] を選択します。
-
[アラームの作成] を選択します。
-
[Specify metric and conditions (メトリクスと条件を指定)] ページで、[メトリクスの選択] を選択します。
-
[EC2 スポット]、[フリートリクエストのメトリクス] の順に選択し、メトリクス (CPUUtilization など) を選択して [メトリクスの選択] を選択します。
[Specify metric and conditions (メトリクスと条件の指定)] ページに、選択したメトリクスに関するグラフや他の情報が表示されます。
-
[期間] でアラームの評価期間 (1 分など) を選択します。アラームを評価する場合、各期間は 1 つのデータポイントに集約されます。
注記 期間が短いほど、作成されるアラームの感度が高くなります。
-
[条件] で、しきい値条件を定義してアラームを定義します。例えば、メトリクスの値が 80% 以上になるたびにアラームをトリガーするように、しきい値を定義できます。
-
[Additional configuration (追加設定)] の [Datapoints to alarm (アラームするデータポイント)] で、アラームをトリガーするために ALARM 状態になる必要があるデータポイント (評価期間) の数を指定します (3 個の評価期間のうち 1 個または 2 個の評価期間など)。これでアラームが作成されます。このアラームは、指定した数の期間で連続してしきい値を超過すると、ALARM 状態に移行します。詳細については、Amazon CloudWatch ユーザーガイドの「アラームを評価する」を参照してください。https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-evaluation
-
[Missing data treatment (不足しているデータの扱い)] で、いずれかのオプションを選択します (または、デフォルトの [Treat missing data as missing (不足しているデータを不足として扱う)] のままにします)。詳細については、Amazon CloudWatch ユーザーガイドの「CloudWatch アラームが欠落データを処理する方法の設定」を参照してください。https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarms-and-missing-data
-
[Next] を選択します。
-
(オプション) スケーリングイベントの通知を受け取る場合は、[通知] で、通知を受け取るために使用する Amazon SNS トピックを選択または作成できます。それ以外の場合は、通知を削除し、必要に応じて後で追加できます。
-
[Next] を選択します。
-
[Add a description (説明の追加)] にアラームの名前と説明を入力し、[次へ] を選択します。
-
[アラームの作成] を選択します。
スポットフリートのステップスケーリングポリシーを設定するには (コンソール)
-
Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/
) を開きます。 -
ナビゲーションペインで、[Spot Requests] を選択します。
-
スポットフリートリクエストを選択し、[Auto Scaling] を選択します。
-
自動スケーリングが設定されていない場合は、[Configure] を選択します。
-
スポットフリートの最小容量および最大容量を設定するには、[Scale capacity between] を使用します。自動スケーリングにより、最小容量以下または最大容量以上にスポットフリートがスケールされることはありません。
-
初期状態では、[Scaling policies] には ScaleUp と ScaleDown という名前のポリシーが含まれています。これらのポリシーは、完了するか、[Remove policy] を選択して削除できます。[Add policy] を選択することもできます。
-
ポリシーを定義するには、以下の作業を行います。
-
[Policy Name] にこのポリシーの名前を入力します。
-
[ポリシートリガー] で、既存のアラームを選択するか、[新しいアラームの作成] を選択して Amazon CloudWatch コンソールを開き、アラームを作成します。
-
[Modify capacity] でスケーリングの調整タイプ、数、単位を選択します。
-
(オプション) ステップスケーリングを実行するには、[Define steps] を選択します。デフォルトでは、追加ポリシーには負の無限の下限値とアラームしきい値の上限値があります。デフォルトでは、削除ポリシーにはアラームしきい値の下限値と正の無限大の上限値があります。別のステップを追加するには、[Add step] を選択します。
-
(オプション) クールダウン期間のデフォルト値を変更するには、[Cooldown period] から数値を選択します。
-
-
[Save] を選択します。
を使用して、スポットフリートのステップスケーリングポリシーを設定するにはAWS CLI
-
register-scalable-target コマンドを使用して、スケーラブルなターゲットとしてスポットフリートリクエストを登録します。
-
put-scaling-policy コマンドを使用して、スケーリングポリシーを作成します。
-
put-metric-alarm コマンドを使用してスケーリングポリシーをトリガーするアラームを作成します。https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/put-metric-alarm.html