ステップスケーリングポリシーを使用した スポットフリート のスケーリング - Amazon Elastic Compute Cloud

ステップスケーリングポリシーを使用した スポットフリート のスケーリング

ステップスケーリングポリシーでは、CloudWatch アラームを指定してスケーリングプロセスをトリガーします。たとえば、CPU 利用率が一定のレベルに達したときにスケールアウトする場合、Amazon EC2 によって提供される CPUUtilization メトリクスを使用してアラームを作成します。

ステップスケーリングポリシーを作成したら、次のいずれかのスケーリング調整タイプを指定する必要があります。

  • [Add] – 指定した数の容量ユニットまたは指定した割合の現在の容量で、スポット群のターゲット容量を増やします。

  • [Remove] – 指定した数の容量ユニットまたは指定した割合の現在の容量で、スポット群のターゲット容量を減らします。

  • [設定] – スポット群のターゲット容量を、指定した数の容量ユニットに設定します。

アラームがトリガーされると、自動スケーリングプロセスは、取得済み容量およびスケーリングポリシーを使用して新しいターゲット容量を計算し、必要に応じてターゲット容量を更新します。たとえば、ターゲット容量と取得済み容量がそれぞれ 10 で、スケーリングポリシーが 1 を加算するとします。アラームがトリガーされると、自動スケーリングプロセスは 10 に 1 を加えて 11 を得るため、スポットフリート は 1 つのインスタンスを起動します。

ターゲット容量が減ったために スポットフリート によってインスタンスが削除される場合、インスタンスは スポットインスタンス の中断通知を受け取ります。

制限

  • スポットフリート リクエストには、タイプが maintain のリクエストが必要です。自動スケーリングは 1 回限りのリクエストまたはスポットブロックではサポートされません。

前提条件

  • アプリケーションにとって重要な CloudWatch メトリクスを検討します。AWS または独自のカスタムメトリクスによって提供されるメトリクスに基づいて CloudWatch アラームを作成できます。

  • スケーリングポリシーで使用する AWS メトリクスについて、メトリクスを提供するサービスでデフォルトで有効にならない場合、CloudWatch メトリクスの収集を有効にします。

CloudWatch アラームを作成するには

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

  2. ナビゲーションペインで、[Alarms] を選択します。

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

  4. [Specify metric and conditions (メトリクスと条件を指定)] ページで、[メトリクスの選択] を選択します。

  5. [EC2 スポット]、[フリートリクエストのメトリクス] の順に選択し、メトリクス (CPUUtilization など) を選択して [メトリクスの選択] を選択します。

    [Specify metric and conditions (メトリクスと条件の指定)] ページに、選択したメトリクスに関するグラフや他の情報が表示されます。

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

    注記

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

  7. [条件] で、しきい値条件を定義してアラームを定義します。たとえば、メトリクスの値が 80% 以上になるたびにアラームをトリガーするように、しきい値を定義できます。

  8. [Additional configuration (追加設定)] の [Datapoints to alarm (アラームするデータポイント)] で、アラームをトリガーするために ALARM 状態になる必要があるデータポイント (評価期間) の数を指定します (3 個の評価期間のうち 1 個または 2 個の評価期間など)。これでアラームが作成されます。このアラームは、指定した数の期間で連続してしきい値を超過すると、ALARM 状態に移行します。詳細については、『Amazon CloudWatch ユーザーガイド』の「アラームを評価する」を参照してください。

  9. [Missing data treatment (不足しているデータの扱い)] で、いずれかのオプションを選択します (または、デフォルトの [Treat missing data as missing (不足しているデータを不足として扱う)] のままにします)。詳細については、『Amazon CloudWatch ユーザーガイド』の「CloudWatch アラームが欠落データを処理する方法の設定」を参照してください。

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

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

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

  13. [Add a description (説明の追加)] にアラームの名前と説明を入力し、[次へ] を選択します。

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

スポットフリート のステップスケーリングポリシーを設定するには (コンソール)

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

  2. ナビゲーションペインで、[Spot Requests] を選択します。

  3. スポットフリート リクエストを選択し、[Auto Scaling] を選択します。

  4. 自動スケーリングが設定されていない場合は、[Configure] を選択します。

  5. スポットフリートの最小容量および最大容量を設定するには、[Scale capacity between] を使用します。自動スケーリングにより、最小容量以下または最大容量以上にスポットフリートがスケールされることはありません。

  6. 初期状態では、[Scaling policies] には ScaleUp と ScaleDown という名前のポリシーが含まれています。これらのポリシーは、完了するか、[Remove policy] を選択して削除できます。[Add policy] を選択することもできます。

  7. ポリシーを定義するには、以下の作業を行います。

    1. [Policy name] に、ポリシーの名前を入力します。

    2. [ポリシートリガー] で、既存のアラームを選択するか、[新しいアラームの作成] を選択して Amazon CloudWatch コンソールを開き、アラームを作成します。

    3. [Modify capacity] でスケーリングの調整タイプ、数、単位を選択します。

    4. (オプション) ステップスケーリングを実行するには、[Define steps] を選択します。デフォルトでは、追加ポリシーには負の無限の下限値とアラームしきい値の上限値があります。デフォルトでは、削除ポリシーにはアラームしきい値の下限値と正の無限大の上限値があります。別のステップを追加するには、[Add step] を選択します。

    5. (オプション) クールダウン期間のデフォルト値を変更するには、[Cooldown period] から数値を選択します。

  8. [Save (保存)] を選択します。

AWS CLI を使用して スポットフリート のステップスケーリングポリシーを設定するには

  1. register-scalable-target コマンドを使用して、スケーラブルなターゲットとして スポットフリート リクエストを登録します。

  2. put-scaling-policy コマンドを使用してスケーリングポリシーを作成します。

  3. put-metric-alarm コマンドを使用してスケーリングポリシーをトリガーするアラームを作成します。