

# スケジュールされたアクションを使用して Amazon ECS サービスをスケールする
<a name="service-autoscaling-schedulescaling"></a>

スケジュールされたスケーリングでは、特定の時間にタスク数を増減するスケジュールアクションを作成することで、予測可能な負荷の変化に基づいてアプリケーションの自動スケーリングを設定できます。これにより、予測可能な負荷の変化に合わせてアプリケーションを事前対応的にスケーリングできます。

これらのスケジュールされたスケーリングアクションにより、コストとパフォーマンスを最適化できます。アプリケーションには、週半ばのトラフィックのピークを処理するのに十分な数のタスクがありますが、それ以外の時間帯にタスクを過剰にプロビジョニングすることはありません。

スケジュールされたスケーリングとスケーリングポリシーを併用して、スケーリングに事前対応型アプローチと即応型アプローチの両方のメリットを得ることができます。スケジュールされたスケーリングアクションの実行後、スケーリングポリシーはタスクをさらにスケールするかどうかの判断を引き続き行うことができます。これは、アプリケーションの負荷を処理するために十分なタスク数を確保する上で役立ちます。アプリケーションは需要に合わせてスケールしますが、現行のキャパシティは、スケジュールされたアクションによって設定された最小タスク数と最大タスク数の範囲内に収まる必要があります。

スケジュールスケーリングは AWS CLI を使用して設定できます。スケジュールに基づくスケーリングの詳細については、「*Application Auto Scaling ユーザーガイド*」の「[スケジュールに基づくスケーリング](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-scheduled-scaling.html)」を参照してください。

# Amazon ECS サービスの自動スケーリングのスケジュールされたアクションを作成する
<a name="scheduled-action-create-policy"></a>

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

## コンソール
<a name="scheduled-action-policy-aws-console"></a>

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

1. **[クラスター]** ページで、クラスターを選択します。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

   リストされているすべてのタイムゾーンは、IANA タイムゾーンデータベースから取得されます。詳細については、「[List of tz database time zones](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)」を参照してください。

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

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

1. [**Recurrence (反復)**] で、使用可能なオプションの 1 つを選択します。
   + 反復スケジュールに基づいてスケールするには、Amazon ECS がスケジュールされたアクションを実行する頻度を選択します。
     + **[レート]** で始まるオプションを選択した場合、cron 式が作成されます。
     + [**Cron**] を選択した場合は、いつアクションを実行するかを Cron 式を入力します。
   + 1 回だけスケールするには、**[1 回]** を選択します。

1. **[タスク調整]** で、次の操作を行います。
   + **[最小]** で、サービスが実行する最小タスク数を入力します。
   + **[最大]** で、サービスが実行する最大タスク数を入力します。

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

## CLI
<a name="scheduled-action-aws-cli"></a>

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

**例: 1 回のみスケールするには**  
次の [put-scheduled-action](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/put-scheduled-action.html) コマンドを、`--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](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/put-scheduled-action.html) コマンドを使用します。*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](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)」を参照してください。