

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Amazon EC2 Auto Scaling のスケジュールされたスケーリング
<a name="ec2-auto-scaling-scheduled-scaling"></a>

スケジュールされたスケーリングでは、予測可能な負荷の変化に基づいてアプリケーションに自動スケーリングを設定できます。特定の時間にグループの希望するキャパシティを増減するスケジュールされたアクションを作成します。

例えば、負荷が週の半ばに増加し、週の終わりに近づくと減少する、週ごとの定期的なトラフィックパターンが発生しているとします。Amazon EC2 Auto Scaling では、このパターンに合わせてスケーリングのスケジュールを次のように設定できます。
+ 水曜日の朝、Auto Scaling グループの前もって設定した希望するキャパシティを増やすというスケジュールされた 1 つのアクションでキャパシティが増加します。
+ 金曜日の夜、Auto Scaling グループの前もって設定した希望するキャパシティを減らすという別のスケジュールされたアクションでキャパシティが減少します。

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

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

**Topics**
+ [スケジュールされたスケーリングのしくみ](#scheduled-scaling-how-it-works)
+ [繰り返しのスケジュール](#scheduled-scaling-recurring-schedules)
+ [タイムゾーン](#scheduled-scaling-time-zone)
+ [考慮事項](#scheduled-scaling-considerations)
+ [制限事項](#scheduled-scaling-limitations)
+ [スケジュールされたアクションの作成](scheduled-scaling-create-scheduled-action.md)
+ [スケジュールされたアクションの詳細を表示する](scheduled-scaling-view-scheduled-actions.md)
+ [スケジュールされたアクションの削除](scheduled-scaling-delete-scheduled-action.md)

## スケジュールされたスケーリングのしくみ
<a name="scheduled-scaling-how-it-works"></a>

*スケジュールされたスケーリング*を使用するには、スケジュールされたアクションを作成します。これは、特定の時刻にスケーリングアクティビティを実行するよう Amazon EC2 Auto Scaling に指示します。スケジュールされたアクションを作成するときは、Auto Scaling グループ、スケーリングアクティビティを実行するタイミング、新しい希望するキャパシティを指定し、必要に応じて、新しい最小キャパシティと新しい最大キャパシティも指定します。スケジュールされたアクションは、一度だけスケールする、または定期的なスケジュールに従ってスケールするものを作成できます。

指定された時刻に、Amazon EC2 Auto Scaling は、現在のキャパシティを指定された希望するキャパシティと比較することによって、新しいキャパシティの値に基づいてスケールします。
+ 現在のキャパシティが指定された希望するキャパシティよりも小さい場合、Amazon EC2 Auto Scaling は指定された希望するキャパシティになるようにスケールアウト (つまりインスタンスを追加) します。
+ 現在のキャパシティが指定された希望するキャパシティよりも大きい場合、Amazon EC2 Auto Scaling は指定された希望するキャパシティになるようにスケールイン (つまりインスタンスを削除) します。

スケジュールされたアクションは、指定された日時に、グループの希望するキャパシティ、最小キャパシティ、最大キャパシティを設定します。一度に作成できるスケジュールされたアクションは、これらのキャパシティのいずれか (例えば、希望するキャパシティ) に対してのみです。ただし、最小キャパシティと最大キャパシティを含めてアクションで指定した希望するキャパシティがこれらの制限を超えないようにすることが必要な場合があります。

## 繰り返しのスケジュール
<a name="scheduled-scaling-recurring-schedules"></a>

 AWS CLI または SDK を使用して定期的なスケジュールを作成するには、cron 式とタイムゾーンを指定して、そのスケジュールされたアクションがいつ繰り返されるかを記述します。必要に応じて、開始時刻、終了時刻、またはその両方の日付と時刻を指定できます。

を使用して定期的なスケジュールを作成するには AWS マネジメントコンソール、スケジュールされたアクションの繰り返しパターン、タイムゾーン、開始時刻、オプションの終了時刻を指定します。すべての反復パターンオプションは、cron 式に基づいています。または、独自のカスタム cron 式を記述することもできます。

このサポートされた cron 式は、スペースで区切られた 5 つのフィールド ([分] [時間] [日] [月] [曜日]) で構成されます。例えば、cron 式 `30 6 * * 2` は毎週火曜日の午前 6:30 に繰り返されるスケジュールされたアクションを設定します。アスタリスクは、フィールドのすべての値を照合するワイルドカードとして使用されます。cron 式の他の例については、([https://crontab.guru/examples.html](https://crontab.guru/examples.html)) を参照してください。この形式で独自の cron 式を記述する方法については、[クロンタブ](http://crontab.org)を参照してください。

開始時刻と終了時刻を慎重に選択します。以下に留意してください。
+ 開始時刻を指定した場合、Amazon EC2 Auto Scaling はこの時刻にアクションを実行し、指定された反復に基づくアクションを実行します。
+ 終了時刻を指定すると、その時刻以降はアクションが反復されなくなります。スケジュールされたアクションは、終了時刻に達するとアカウントに残りません。
+ 繰り返し時刻が終了時刻とちょうど一致した場合、Amazon EC2 Auto Scaling はスケジュールされたアクションを終了時刻に実行しません。
+  AWS CLI または SDK を使用する場合は、開始時刻と終了時刻を UTC で設定する必要があります。

## タイムゾーン
<a name="scheduled-scaling-time-zone"></a>

デフォルトでは、設定した定期的なスケジュールは協定世界時 (UTC) です。ローカルタイムゾーンまたはネットワークの他の部分のタイムゾーンに対応するタイムゾーンに変更できます。夏時間 (DST) を遵守するタイムゾーンを指定すると、DST に合わせてアクションが自動的に調整されます。

有効な値は、Internet Assigned Numbers Authority (IANA) タイムゾーンデータベースのタイムゾーンの正規名です。例えば、米国東部時間を識別する正規名は `America/New_York` です。詳細については、[https://www.iana.org/time-zones](https://www.iana.org/time-zones) を参照してください。

`America/New_York` のようなロケーションベースのタイムゾーンは DST に合わせて自動的に調整されます。ただし、`Etc/UTC` のようなUTC ベースのタイムゾーン は絶対時刻であるような DST に調整されません。

例えば、タイムゾーンが `America/New_York` である繰り返しのスケジュールがります。最初のスケーリングアクションは、DST が始まる前の `America/New_York` でのタイムゾーンで発生します。次のスケーリングアクションは、DST が始まった後の `America/New_York` でのタイムゾーンで発生します。最初のアクションは現地時間の午前 8:00 UTC-5 から始まり、2 番目のアクションは現地時間の午前 8:00 UTC-4 から始まります。

を使用してスケジュールされたアクションを作成し、DST を監視するタイムゾーンを指定する AWS マネジメントコンソール と、定期的なスケジュールと開始時刻と終了時刻の両方が DST に合わせて自動的に調整されます。

## 考慮事項
<a name="scheduled-scaling-considerations"></a>

スケジュールされたアクションを作成する場合、次の点に注意してください。
+ スケジュールされたアクションの実行順序は、それらのアクションが同じグループ内で実行される場合は維持されますが、複数のグループ間で実行される場合は必ずしも維持されません。
+ 通常、スケジュールされたアクションは数秒以内に実行されます。ただし、アクションは、スケジュールされた開始時間から最大 2 分遅れる場合があります。Auto Scaling スケジュールされたグループ内のアクションは指定された順序で実行されるため、開始時間が互いに近い、スケジュールされたアクションの実行には時間がかかる可能性があります。
+ Auto Scaling グループのスケジュールされたスケーリングを一時的にオフにするには、`ScheduledActions` プロセスを一時的停止します。これにより、スケジュールされたアクションを削除せずにアクティブになるのを防ぐことができます。スケジュールされたスケーリングを再度使用する場合は、スケジュールされたスケーリングを再開できます。詳細については、「[Amazon EC2 Auto Scaling プロセスの中断と再開](as-suspend-resume-processes.md)」を参照してください。
+ スケジュールされたアクションを作成した後、名前以外のすべての設定を更新できます。
+ 同じ Auto Scaling グループ内の複数のスケジュールされたアクションが同じ cron 式を持つ場合、実行順序が任意で未定義になります。動作を予測可能にするために、スケジュールされたアクションごとに一意のスケジュールされた開始時間を使用できます。

## 制限事項
<a name="scheduled-scaling-limitations"></a>
+ スケジュールされたアクションの名前は、Auto Scaling グループごとに一意である必要があります。
+ スケジュールされたアクションには、一意の時間値が必要です。別のスケーリングアクティビティがすでにスケジュールされているときにアクティビティをスケジュールしようとすると、呼び出しは拒否され、このスケジュールされた開始時間を持つスケジュールされたアクションがすでに存在していることを示すエラーが返されます。
+ 1 つの Auto Scaling グループあたり最大 125 のスケジュールされたアクションを作成できます。

# スケジュールされたアクションの作成
<a name="scheduled-scaling-create-scheduled-action"></a>

Auto Scaling グループにスケジュールされたアクションを作成するには、次のいずれかの方法を使用します。

------
#### [ Console ]

**スケジュールされたアクションを作成するには**

1. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) でAmazon EC2 コンソールを開き、ナビゲーションペインで [**Auto Scaling グループ**] を選択します。

1. Auto Scaling グループの横にあるチェックボックスを選択します。

   ページの下部にスプリットペインが開きます。

1. [**Automatic scaling (自動スケーリング)**] タブの [**Scheduled actions (スケジュールされたアクション)**] で、[**Create scheduled action (スケジュールされたアクションの作成)**] を選択します。

1. スケジュールされたアクションに [**Name (名前)**] を入力します。

1. **[希望する容量]**、**[最小]**、**[最大]** で、グループの新しい希望するキャパシティと、新しい最小キャパシティと最大キャパシティを選択します。希望するキャパシティは、グループの最小サイズ以上、最大サイズ以下である必要があります。

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

1. [**Time zone (タイムゾーン)**] でタイムゾーンを選択。デフォルト値は `Etc/UTC` です。

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

1. **特定の開始時間**には、以下の日付と時刻を定義します。
   + 定期的なスケジュールを選択した場合、開始時間によって、定期的なシリーズの最初のスケジュールされたアクションが実行されるタイミングが定義されます。
   + [**Once (一度)**] を反復として使用する場合、開始時刻は、スケジュールアクションを実行する日付と時刻を定義します。

1.  (オプション) 定期的なスケジュールの場合は、[**Set End Time (終了時刻の設定)**] を選択して終了時間を特定し、[**End By (までに終了)**] に日付と時刻を選択します。

1. **[作成]** を選択します。コンソールに Auto Scaling グループのスケジュールされたアクションが表示されます。

------
#### [ AWS CLI ]

スケジュールされたアクションを作成するには、次のいずれかのコマンド例を使用します。各*ユーザー入力プレースホルダー*を独自の情報に置き換えます。

**例: 1 回のみスケールするには**  
`--start-time "YYYY-MM-DDThh:mm:ssZ"` オプションおよび `--desired-capacity` オプションとともに、次のように [put-scheduled-update-group-action](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/put-scheduled-update-group-action.html) コマンドを使用します。

```
aws autoscaling put-scheduled-update-group-action --scheduled-action-name my-one-time-action \
  --auto-scaling-group-name my-asg --start-time "2021-03-31T08:00:00Z" --desired-capacity 3
```

**例: 定期的なスケーリングをスケジュールするには**  
`--recurrence "cron expression"` オプションおよび `--desired-capacity` オプションとともに、次のように [put-scheduled-update-group-action](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/put-scheduled-update-group-action.html) コマンドを使用します。

```
aws autoscaling put-scheduled-update-group-action --scheduled-action-name my-recurring-action \
  --auto-scaling-group-name my-asg --recurrence "0 9 * * *" --desired-capacity 3
```

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

```
--time-zone "America/New_York"
```

詳細については、[https://en.wikipedia.org/wiki/List\$1of\$1tz\$1database\$1time\$1zones](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) を参照してください。

------

# スケジュールされたアクションの詳細を表示する
<a name="scheduled-scaling-view-scheduled-actions"></a>

Auto Scaling グループの今後のスケジュールされたアクションの詳細を表示するには、次のいずれかの方法を使用します。

------
#### [ Console ]

**スケジュールされたアクションの詳細を表示するには**

1. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) でAmazon EC2 コンソールを開き、ナビゲーションペインで [**Auto Scaling グループ**] を選択します。

1. Auto Scaling スケーリンググループを選択します。

1. **[自動スケーリング]** タブの **[予定されたアクション]** セクションで、今後のスケジュールされたアクションを表示できます。

コンソールには、ローカルタイムの **[開始時刻]** および **[終了時刻]** が、指定された日時に有効な UTC オフセットとともに表示されることに注意してください。UTC オフセットは、現地時間から UTC までの差を時間と分単位で表したものです。**タイムゾーン**の値は、例えば `America/New_York` のようにリクエストされたタイムゾーンが表示されます。

------
#### [ AWS CLI ]

以下の [describe-scheduled-actions](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/describe-scheduled-actions.html) コマンドを使用します。

```
aws autoscaling describe-scheduled-actions --auto-scaling-group-name my-asg
```

正常に完了した場合、このコマンドは以下のような出力を返します。

```
{
  "ScheduledUpdateGroupActions": [
    {
      "AutoScalingGroupName": "my-asg",
      "ScheduledActionName": "my-recurring-action",
      "Recurrence": "30 0 1 1,6,12 *",
      "ScheduledActionARN": "arn:aws:autoscaling:us-west-2:123456789012:scheduledUpdateGroupAction:8e86b655-b2e6-4410-8f29-b4f094d6871c:autoScalingGroupName/my-asg:scheduledActionName/my-recurring-action",
      "StartTime": "2020-12-01T00:30:00Z",
      "Time": "2020-12-01T00:30:00Z",
      "MinSize": 1,
      "MaxSize": 6,
      "DesiredCapacity": 4
    }
  ]
}
```

------

## スケーリングアクティビティを検証する
<a name="scheduled-scaling-verify-scaling-activities"></a>

スケジュールされたスケーリングに関連するスケーリングアクティビティを検証するには、「[Auto Scaling グループのスケーリングアクティビティを検証する](as-verify-scaling-activity.md)」を参照してください。

# スケジュールされたアクションの削除
<a name="scheduled-scaling-delete-scheduled-action"></a>

スケジュールされたアクションを削除するには、次のいずれかの方法を使用します。

------
#### [ Console ]

**スケジュールされたアクションを削除するには**

1. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) でAmazon EC2 コンソールを開き、ナビゲーションペインで [**Auto Scaling グループ**] を選択します。

1. Auto Scaling スケーリンググループを選択します。

1. [**Automatic scaling (自動スケーリング)**] タブの [**Scheduled actions (スケジュールされたアクション)**] で、スケジュールされたアクションを選択します。

1. [** Actions**] で、[**Delete **] を選択します。

1. 確認を求めるメッセージが表示されたら、[**Yes、Delete**] を選択します。

------
#### [ AWS CLI ]

次の [delete-scheduled-action](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/delete-scheduled-action.html) コマンドを使用します。

```
aws autoscaling delete-scheduled-action --auto-scaling-group-name my-asg \
  --scheduled-action-name my-recurring-action
```

------