Amazon ECS サービスの自動スケーリングのスケジュールされたアクションを作成する - Amazon Elastic Container Service

Amazon ECS サービスの自動スケーリングのスケジュールされたアクションを作成する

スケジュールされたアクションを作成して、Amazon ECS でサービスが実行するタスク数を日付と時刻に基づいて増減させます。

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

  2. [Clusters] (クラスター) ページで、クラスターを選択します。

  3. [クラスターの詳細] ページの [サービス] セクションで、サービスを選択します。

    [サービス詳細] ページが表示されます。

  4. [サービスの自動スケーリング] を選択します。

    [サービスの自動スケーリング] ページが表示されます。

  5. [サービスの自動スケーリング] を設定していない場合は、[タスク数の設定] を選択します。

    Amazon ECS サービスタスク数 のセクションが表示されます。

    Amazon ECS サービスタスク数 で、[サービスの自動スケーリングを使用してサービスの必要なタスク数を調整する] を選択します。

    [タスク数セクション] が表示されます。

    1. [タスクの最小数] に、サービスの自動スケーリングで使用するタスクの下限数を入力します。必要な数がこの数を下回ることはありません。

    2. [最大] に、サービスの自動スケーリングで使用するタスクの上限数を入力します。必要な数がこの数を超えることはありません。

    3. [保存] を選択します。

      [ポリシー] ページが表示されます。

  6. [スケジュールされたアクション] を選択し、[作成] を選択します。

    [スケジュールされたアクションを作成] ページが表示されます。

  7. バケット名に、一意の名前を入力します。

  8. [Time zone (タイムゾーン)] でタイムゾーンを選択。

    リストされているすべてのタイムゾーンは、IANA タイムゾーンデータベースから取得されます。詳細については、「List of tz database time zones」を参照してください。

  9. [開始時刻] で、アクションが開始される [日付][時刻] を入力します。

    定期的なスケジュールを選択した場合、開始時間によって、定期的なシリーズの最初のスケジュールされたアクションが実行されるタイミングが定義されます。

  10. [Recurrence (反復)] で、使用可能なオプションの 1 つを選択します。

    • 反復スケジュールに基づいてスケールするには、Amazon ECS がスケジュールされたアクションを実行する頻度を選択します。

      • [レート] で始まるオプションを選択した場合、cron 式が作成されます。

      • [Cron] を選択した場合は、いつアクションを実行するかを Cron 式を入力します。

    • 1 回だけスケールするには、[1 回] を選択します。

  11. [タスク調整] で、次の操作を行います。

    • [最小] で、サービスが実行する最小タスク数を入力します。

    • [最大] で、サービスが実行する最大タスク数を入力します。

  12. [スケジュールされたアクションの作成] を選択してください。

次のように AWS CLI を使用して、サービスのスケジュールされたスケーリングポリシーを設定します。各ユーザー入力プレースホルダーを独自の情報に置き換えます。

例: 1 回のみスケールするには

次の put-scheduled-action コマンドを、--start-time "YYYY-MM-DDThh:mm:ssZ"--MinCapacity および --MaxCapacity オプションのいずれかまたは両方と併用します。

aws application-autoscaling put-scheduled-action --service-namespace ecs \ --resource-id service/my-cluster/my-service \ --scheduled-action-name my-one-time-schedule \ --start-time 2021-01-30T12:00:00 \ --scalable-target-action MinCapacity=3,MaxCapacity=10
例: 定期的なスケーリングをスケジュールするには

次の put-scheduled-action コマンドを使用します。user-input を独自の値に置き換えます。

aws application-autoscaling put-scheduled-action --service-namespace ecs \ --resource-id service/my-cluster/my-service \ --scheduled-action-name my-recurring-action \ --schedule "rate(5 hours)" \ --start-time 2021-01-30T12:00:00 \ --end-time 2021-01-31T22:00:00 \ --scalable-target-action MinCapacity=3,MaxCapacity=10

指定された繰り返しスケジュールは、UTC タイムゾーンに基づいて実行されます。別のタイムゾーンを指定するには、次の例のように、--time-zone オプションと IANA タイムゾーンの名前を含めます。

--time-zone "America/New_York"

詳細については、「List of tz database time zones」を参照してください。