Amazon Elastic Compute Cloud
Linux インスタンス用ユーザーガイド

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

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

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

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

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

  • [Set to] — スポットフリートのターゲット容量を、指定した数の容量ユニットに設定します。

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

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

制限

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

前提条件

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

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

  • スポット群 の自動スケーリングを有効にするために AWS マネジメントコンソール を使用すると、ポリシーのアラームを記述し、スポットフリートの現在の容量をモニタリングして、スポットフリートの容量を変更するアクセス許可を Amazon EC2 Auto Scaling に付与する、aws-ec2-spot-fleet-autoscale-role という名前のロールが作成されます。AWS CLI または API を使用して自動スケーリングを設定した場合、このロール (すでにあれば) を使用できます。または、この目的に独自のロールを手動で作成できます。

    サービスロールを手動で作成するには

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

    2. ナビゲーションペインで [Roles (ロール) ] を選択します。

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

    4. [Select type of trusted entity] ページの [AWS Service] で [EC2]、[EC2 - Spot Fleet Auto Scaling]、[Next: Permissions] の順に選択します。

    5. [Attached permissions policy] ページで、[Next: Review] を選択します。

    6. [Review] ページで、ロールの名前を入力し、[Create role] を選択します。

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

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

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

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

  4. [CloudWatch Metrics by Category] で、カテゴリを選択します。たとえば、[EC2 Spot Metrics]、[Fleet Request Metrics] を選択します。

  5. メトリクスを選択して、[Next] を選択します。

  6. [Alarm Threshold] で、アラームの名前と説明を入力して、アラームのしきい値と期間の数を設定します。

  7. (オプション) スケーリングイベントの通知を受信するには、[Actions] の [New list] を選択し、E メールアドレスを入力します。それ以外の場合は、通知を削除し、必要に応じて後で追加できます。

  8. [Create Alarm] を選択します。

コンソールを使用して スポット群 のステップスケーリングポリシーを設定するには

  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. [Policy trigger] で、既存のアラームを選択するか、[Create new alarm] を選択して 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 コマンドを使用してスケーリングポリシーをトリガーするアラームを作成します。