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

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

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

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

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

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

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

アラームがトリガーされると、自動スケーリングプロセスは、取得済み容量およびスケーリングポリシーを使用して新しいターゲット容量を計算し、必要に応じてターゲット容量を更新します。たとえば、ターゲット容量と取得済み容量がそれぞれ 10 で、スケーリングポリシーが 1 を加算するとします。アラームがトリガーされると、自動スケーリングプロセスは 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. ナビゲーションペインで [ロール]、[ロールの作成] の順に選択します。

    3. [Select type of trusted entity (信頼されたエンティティのタイプの選択)] で、[AWS サービス] を選択します。

    4. [このロールを使用するサービスを選択] で、[EC2] を選択します。

    5. [ユースケースの選択] セクションで、[EC2 - スポットフリート Auto Scaling]、[Next: Permissions (次の手順: アクセス許可)] の順に選択します。

    6. [アタッチされたアクセス許可ポリシー] に、[AmazonEC2SpotFleetAutoscaleRole] ポリシーが自動的に表示されます。[次へ: タグ]、[次へ: レビュー] の順に選択します。

    7. [Review] ページにロールの名前を入力し、[ロールの作成] を選択します。

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