

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

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

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

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

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

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

**Topics**
+ [スケジュールされたスケーリングの仕組み](scheduled-scaling-policy-overview.md)
+ [create-scheduled-action](create-scheduled-actions.md)
+ [スケジュールされたスケーリングを説明する](describe-scheduled-scaling.md)
+ [定期的なスケーリングアクションをスケジュールする](scheduled-scaling-using-cron-expressions.md)
+ [スケジュールされたスケーリングをオフにする](suspend-scheduled-scaling.md)
+ [スケジュールされたアクションの削除](delete-scheduled-action.md)

# Application Auto Scaling のスケジュールされたスケーリングの仕組み
<a name="scheduled-scaling-policy-overview"></a>

このトピックでは、スケジュールされたスケーリングがどのように機能するかを説明し、効果的に使用するために理解すべき重要な考慮事項を紹介します。

**Topics**
+ [仕組み](#scheduled-scaling-how-it-works)
+ [考慮事項](#scheduled-scaling-considerations)
+ [よく使われるコマンド](#scheduled-scaling-commonly-used-commands)
+ [関連リソース](#step-scaling-related-resources)
+ [制限事項](#scheduled-scaling-limitations)

## 仕組み
<a name="scheduled-scaling-how-it-works"></a>

スケジュールされたスケーリングを使用するには、*スケジュールされたアクション*を作成します。これは、特定の時間にスケーリングアクティビティを実行するよう Application Auto Scaling に指示します。スケジュールされたアクションを作成するときは、スケーラブルターゲット、スケーリングアクティビティを実行するタイミング、最小容量、および最大容量を指定します。スケジュールされたアクションは、1 度だけスケールする、または定期的なスケジュールに従ってスケールするものを作成できます。

指定された時間がくると、Application Auto Scaling は、現行の容量を指定された最小容量および最大容量と比較することによって、新しい容量値に基づいたスケーリングを実行します。
+ 現行の容量が指定された最小容量を下回る場合、Application Auto Scaling は指定された最小容量までスケールアウト (容量を増加) します。
+ 現行の容量が指定された最大容量を上回る場合、Application Auto Scaling は指定された最大容量までスケールイン (容量を低減) します。

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

スケジュールされたアクションを作成する場合、次の点に注意してください。
+ スケジュールされたアクションにより、指定された日時に、`MinCapacity` と `MaxCapacity` がスケジュールされたアクションで指定した容量に設定されます。リクエストには、オプションで、これらのサイズの 1 つだけを含めることができます。例えば、最小容量のみを指定してスケジュールされたアクションを作成できます。ただし、場合によっては、新しい最小容量が最大容量を上回らない、または新しい最大容量が最小容量を下回らないように、両方のサイズを含める必要があります。
+ デフォルトでは、設定した定期的なスケジュールは協定世界時 (UTC) です。ローカルタイムゾーンまたはネットワークの他の部分のタイムゾーンに対応するタイムゾーンに変更できます。夏時間を実施するタイムゾーンを指定すると、夏時間 (DST) に合わせて、アクションが自動的に調整されます。詳細については、「[Application Auto Scaling を使用して定期的なスケーリングアクションをスケジュールする](scheduled-scaling-using-cron-expressions.md)」を参照してください。
+ スケーラブルターゲットに対してスケジュールされたスケーリングをオフにできます。これにより、スケジュールされたアクションを削除せずにアクティブになるのを防ぐことができます。スケジュールされたスケーリングを再度使用する場合は、スケジュールされたスケーリングを再開できます。詳細については、「[Application Auto Scaling のスケーリングの一時停止と再開](application-auto-scaling-suspend-resume-scaling.md)」を参照してください。
+ スケジュールされたアクションが実行される順序は、同一のスケーラブルターゲットに対して保証されますが、複数のスケーラブルターゲットにまたがってスケジュールされたアクションに対しては保証されません。
+ スケジュールされたアクションが正常に完了するには、指定されたリソースがターゲットサービスでスケーラブルな状態になっている必要があります。その状態になっていない場合、リクエストは失敗し、エラーメッセージ (`Resource Id [ActualResourceId] is not scalable. Reason: The status of all DB instances must be 'available' or 'incompatible-parameters'` など) が返されます。
+ Application Auto Scaling とターゲットサービスには分散的な性質があるため、スケジュールされたアクションがトリガーされてからターゲットサービスがスケーリングアクションを引き受けるまでの遅延が数秒におよぶ可能性があります。スケジュールされたアクションは指定された順序で実行されるため、開始時刻が近いスケジュールされたアクションの実行にはより長い時間がかかる場合があります。

## スケジュールされたアクションの作成、管理、および削除用によく使用されるコマンド
<a name="scheduled-scaling-commonly-used-commands"></a>

スケジュールされたスケーリングの操作用によく使用されるコマンドには以下が含まれます。
+ [register-scalable-target](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/register-scalable-target.html) は、 AWS またはカスタムリソースをスケーラブルターゲット (Application Auto Scaling がスケーリングできるリソース) として登録し、スケーリングを停止して再開します。
+ [put-scheduled-action](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/put-scheduled-action.html) 既存のスケーラブルターゲットに対するスケジュールされたアクションを追加または変更します。
+  [describe-scaling-activities](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/describe-scaling-activities.html) は、 AWS リージョンのスケーリングアクティビティに関する情報を返します。
+  AWS リージョンでスケジュールされたアクションに関する情報を返す [describe-scheduled-actions](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/describe-scheduled-actions.html)。
+ [delete-scheduled-action](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/delete-scheduled-action.html) スケジュールされたアクションを削除します。

## 関連リソース
<a name="step-scaling-related-resources"></a>

スケジュールされたスケーリングを使用する詳細な例については、 AWS コンピューティングブログのブログ記事[AWS Lambda 「プロビジョニングされた同時実行の定期的なピーク使用のスケジュール](https://aws.amazon.com/blogs/compute/scheduling-aws-lambda-provisioned-concurrency-for-recurring-peak-usage/)」を参照してください。

Auto Scaling グループのスケジュールされたアクションの作成についての詳細は、「Amazon EC2 Auto Scaling ユーザーガイド」の「[Amazon EC2 Auto Scaling のスケジュールされたスケーリング](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-scheduled-scaling.html)」を参照してください。

## 制限事項
<a name="scheduled-scaling-limitations"></a>

以下は、スケジュールされたスケーリングの使用時における制限事項です。
+ スケジュールされたアクションの名前は、スケーラブルターゲットごとに一意である必要があります。
+ Application Auto Scaling は、スケジュール式で秒レベルの精度を提供しません。Cron 式を使用した場合の最も細かい粒度は 1 分です。
+ スケーラブルターゲットを Amazon MSK クラスターにすることはできません。Amazon MSK はスケジュールされたスケーリングをサポートしません。
+ スケーラブルリソースに対するスケジュールされたアクションを表示、追加、更新、削除するためのコンソールアクセスは、使用するリソースによって異なります。詳細については、「[AWS のサービス Application Auto Scaling で使用できる](integrated-services-list.md)」を参照してください。

# を使用して Application Auto Scaling のスケジュールされたアクションを作成する AWS CLI
<a name="create-scheduled-actions"></a>

次の例は、 AWS CLI [put-scheduled-action](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/put-scheduled-action.html) コマンドを使用してスケジュールされたアクションを作成する方法を示しています。新しい容量を指定するときは、最小容量、最大容量、またはその両方を指定できます。

これらの例では、Application Auto Scaling と統合するサービスのいくつかにスケーラブルターゲットを使用しています。別のスケーラブルターゲットを使用するには、`--service-namespace` でその名前空間、`--scalable-dimension` でそのスケーラブルディメンション、`--resource-id` でそのリソース ID を指定します。

を使用する場合 AWS CLI、コマンドはプロファイル用に AWS リージョン 設定された で実行されることに注意してください。別のリージョンでコマンドを実行する場合は、プロファイルのデフォルトのリージョンを変更するか、コマンドに `--region` パラメータを使用します。

**Topics**
+ [1 回だけ実行される、スケジュールされたアクションを作成する](#one-time-schedule)
+ [定期的な間隔で実行されるスケジュールされたアクションを作成する](#recurrence-schedule-rate)
+ [定期的なスケジュールで実行されるスケジュールされたアクションを作成する](#recurrence-schedule-cron)
+ [タイムゾーンを指定する 1 回限りのスケジュールされたアクションを作成する](#one-time-schedule-set-time-zone)
+ [タイムゾーンを指定する定期的なスケジュールされたアクションを作成する](#recurring-schedule-set-time-zone)

## 1 回だけ実行される、スケジュールされたアクションを作成する
<a name="one-time-schedule"></a>

指定した日時にスケーラブルターゲットを 1 度だけ自動的にスケーリングするには、`--schedule "at(yyyy-mm-ddThh:mm:ss)"` オプションを使用します。

**Example 例: 1 回限りのスケールアウト**  
以下は、特定の日時に容量をスケールアウトするためのスケジュールされたアクションを作成する例です。  
`--schedule` に指定された日時 (2021 年 3 月 31 日の午後 10:00 (UTC)) の時点で、`MinCapacity` に指定された値が現行の容量を超えている場合、Application Auto Scaling が `MinCapacity` にスケールアウトします。  
**Linux、macOS、または Unix**  

```
aws application-autoscaling put-scheduled-action --service-namespace custom-resource \
  --scalable-dimension custom-resource:ResourceType:Property \
  --resource-id file://~/custom-resource-id.txt \
  --scheduled-action-name scale-out \
  --schedule "at(2021-03-31T22:00:00)" \
  --scalable-target-action MinCapacity=3
```
**Windows**  

```
aws application-autoscaling put-scheduled-action --service-namespace custom-resource ^
  --scalable-dimension custom-resource:ResourceType:Property ^
  --resource-id file://~/custom-resource-id.txt ^
  --scheduled-action-name scale-out ^
  --schedule "at(2021-03-31T22:00:00)" ^
  --scalable-target-action MinCapacity=3
```
このスケジュールされたアクションの実行時に、最大容量が最小容量に指定された値を下回る場合は、新しい最小容量だけではなく、新しい最小容量と最大容量を指定する必要があります。

**Example 例: 1 回限りのスケールイン**  
以下は、特定の日時に容量をスケールインするためのスケジュールされたアクションを作成する例です。  
`--schedule` に指定された日時 (2021 年 3 月 31 日の午後 10:30 (UTC)) の時点で、`MaxCapacity` に指定された値が現行の容量を下回る場合、Application Auto Scaling が `MaxCapacity` にスケールインします。  
**Linux、macOS、または Unix**  

```
aws application-autoscaling put-scheduled-action --service-namespace custom-resource \
  --scalable-dimension custom-resource:ResourceType:Property \
  --resource-id file://~/custom-resource-id.txt \
  --scheduled-action-name scale-in \
  --schedule "at(2021-03-31T22:30:00)" \
  --scalable-target-action MinCapacity=0,MaxCapacity=0
```
**Windows**  

```
aws application-autoscaling put-scheduled-action --service-namespace custom-resource ^
  --scalable-dimension custom-resource:ResourceType:Property ^
  --resource-id file://~/custom-resource-id.txt ^
  --scheduled-action-name scale-in ^
  --schedule "at(2021-03-31T22:30:00)" ^
  --scalable-target-action MinCapacity=0,MaxCapacity=0
```

## 定期的な間隔で実行されるスケジュールされたアクションを作成する
<a name="recurrence-schedule-rate"></a>

定期的な間隔でスケーリングをスケジュールするには、`--schedule "rate(value unit)"` オプションを使用します。値は正の整数である必要があります。単位は、`minute`、`minutes`、`hour`、`hours`、`day`、または `days` にすることができます。詳細については、*Amazon EventBridge ユーザーガイドの*[rate 式](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-scheduled-rule-pattern.html#eb-rate-expressions)を参照してください。

以下は、rate 式を使用するスケジュールされたアクションの例です。

指定されたスケジュール (2021 年 1 月 30 日の午後 12:00 (UTC) から 5 時間ごとに実行され、2021 年 1 月 31 日の午後 10:00 (UTC) に終了) で、`MinCapacity` に指定された値が現行の容量を超えている場合、Application Auto Scaling が `MinCapacity` にスケールアウトします。`MaxCapacity` に指定された値が現行の容量を下回る場合は、Application Auto Scaling が `MaxCapacity` にスケールインします。

**Linux、macOS、または Unix**

```
aws application-autoscaling put-scheduled-action --service-namespace ecs \
  --scalable-dimension ecs:service:DesiredCount \
  --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
```

**Windows**

```
aws application-autoscaling put-scheduled-action --service-namespace ecs ^
  --scalable-dimension ecs:service:DesiredCount ^
  --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
```

## 定期的なスケジュールで実行されるスケジュールされたアクションを作成する
<a name="recurrence-schedule-cron"></a>

定期的なスケーリングをスケジュールするには、`--schedule "cron(fields)"` オプションを使用します。詳細については、「[Application Auto Scaling を使用して定期的なスケーリングアクションをスケジュールする](scheduled-scaling-using-cron-expressions.md)」を参照してください。

以下は、Cron 式を使用するスケジュールされたアクションの例です。

指定されたスケジュール (毎日午前 9:00 (UTC)) で、`MinCapacity` に指定された値が現行の容量を超えている場合、Application Auto Scaling が `MinCapacity` にスケールアウトします。`MaxCapacity` に指定された値が現行の容量を下回る場合は、Application Auto Scaling が `MaxCapacity` にスケールインします。

**Linux、macOS、または Unix**

```
aws application-autoscaling put-scheduled-action --service-namespace appstream \
  --scalable-dimension appstream:fleet:DesiredCapacity \
  --resource-id fleet/sample-fleet \
  --scheduled-action-name my-recurring-action \
  --schedule "cron(0 9 * * ? *)" \
  --scalable-target-action MinCapacity=10,MaxCapacity=50
```

**Windows**

```
aws application-autoscaling put-scheduled-action --service-namespace appstream ^
  --scalable-dimension appstream:fleet:DesiredCapacity ^
  --resource-id fleet/sample-fleet ^
  --scheduled-action-name my-recurring-action ^
  --schedule "cron(0 9 * * ? *)" ^
  --scalable-target-action MinCapacity=10,MaxCapacity=50
```

## タイムゾーンを指定する 1 回限りのスケジュールされたアクションを作成する
<a name="one-time-schedule-set-time-zone"></a>

スケジュールされたアクションは、デフォルトで UTC タイムゾーンに設定されます。別のタイムゾーンを指定するには、`--timezone` オプションを含めて、タイムゾーンの正規名 (`America/New_York` など) を指定します。詳細については、[https://www.joda.org/joda-time/timezones.html](https://www.joda.org/joda-time/timezones.html) を参照してください。このページには、[put-scheduled-action](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/put-scheduled-action.html) を呼び出すときにサポートされる IANA タイムゾーンに関する情報が記載されています。

以下は、特定の日時に容量をスケールするためのスケジュールされたアクションの作成時に `--timezone` オプションを使用する例です。

`--schedule` に指定された日時 (2021 年 1 月 31 日の午後 5:00 (ローカルタイム)) の時点で、`MinCapacity` に指定された値が現行の容量を超えている場合、Application Auto Scaling が `MinCapacity` にスケールアウトします。`MaxCapacity` に指定された値が現行の容量を下回る場合は、Application Auto Scaling が `MaxCapacity` にスケールインします。

**Linux、macOS、または Unix**

```
aws application-autoscaling put-scheduled-action --service-namespace comprehend \
  --scalable-dimension comprehend:document-classifier-endpoint:DesiredInferenceUnits \
  --resource-id arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE \
  --scheduled-action-name  my-one-time-action \
  --schedule "at(2021-01-31T17:00:00)" --timezone "America/New_York" \
  --scalable-target-action MinCapacity=1,MaxCapacity=3
```

**Windows**

```
aws application-autoscaling put-scheduled-action --service-namespace comprehend ^
  --scalable-dimension comprehend:document-classifier-endpoint:DesiredInferenceUnits ^
  --resource-id arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE ^
  --scheduled-action-name  my-one-time-action ^
  --schedule "at(2021-01-31T17:00:00)" --timezone "America/New_York" ^
  --scalable-target-action MinCapacity=1,MaxCapacity=3
```

## タイムゾーンを指定する定期的なスケジュールされたアクションを作成する
<a name="recurring-schedule-set-time-zone"></a>

以下は、キャパシティーを拡張するための定期的なスケジュール済みアクションを作成できる `--timezone` オプションの使用例です。詳細については、「[Application Auto Scaling を使用して定期的なスケーリングアクションをスケジュールする](scheduled-scaling-using-cron-expressions.md)」を参照してください。

指定されたスケジュール (毎週月曜日から金曜日までの午後 6:00 (ローカルタイム)) で、`MinCapacity` に指定された値が現行の容量を超えている場合、Application Auto Scaling が `MinCapacity` にスケールアウトします。`MaxCapacity` に指定された値が現行の容量を下回る場合は、Application Auto Scaling が `MaxCapacity` にスケールインします。

**Linux、macOS、または Unix**

```
aws application-autoscaling put-scheduled-action --service-namespace lambda \
  --scalable-dimension lambda:function:ProvisionedConcurrency \
  --resource-id function:my-function:BLUE \
  --scheduled-action-name my-recurring-action \
  --schedule "cron(0 18 ? * MON-FRI *)" --timezone "Etc/GMT+9" \
  --scalable-target-action MinCapacity=10,MaxCapacity=50
```

**Windows**

```
aws application-autoscaling put-scheduled-action --service-namespace lambda ^
  --scalable-dimension lambda:function:ProvisionedConcurrency ^
  --resource-id function:my-function:BLUE ^
  --scheduled-action-name my-recurring-action ^
  --schedule "cron(0 18 ? * MON-FRI *)" --timezone "Etc/GMT+9" ^
  --scalable-target-action MinCapacity=10,MaxCapacity=50
```

# を使用して Application Auto Scaling のスケジュールされたスケーリングを記述する AWS CLI
<a name="describe-scheduled-scaling"></a>

これらの AWS CLI コマンド例では、Application Auto Scaling と統合する サービスのリソースを使用したスケーリングアクティビティとスケジュールされたアクションについて説明します。別のスケーラブルターゲットについては、`--service-namespace` でその名前空間、`--scalable-dimension` でそのスケーラブルディメンション、`--resource-id` でそのリソース ID を指定します。

を使用する場合 AWS CLI、コマンドはプロファイル用に AWS リージョン 設定された で実行されることに注意してください。別のリージョンでコマンドを実行する場合は、プロファイルのデフォルトのリージョンを変更するか、コマンドに `--region` パラメータを使用します。

**Topics**
+ [サービスのスケーリングアクティビティを説明する](#describe-scaling-activities-service-namespace)
+ [サービスのスケジュールされたアクションを説明する](#describe-scheduled-actions-service-namespace)
+ [スケーラブルターゲットに対するスケジュールされたアクションを記述する](#describe-scheduled-actions-scalable-target)

## サービスのスケーリングアクティビティを説明する
<a name="describe-scaling-activities-service-namespace"></a>

指定されたサービス名前空間にあるすべてのスケーラブルターゲットに対するスケーリングアクティビティを表示するには、[describe-scaling-activities](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/describe-scaling-activities.html) コマンドを使用します。

以下の例は、`dynamodb` サービス名前空間に関連付けられているスケーリングアクティビティを取得します。

**Linux、macOS、または Unix**

```
aws application-autoscaling describe-scaling-activities --service-namespace dynamodb
```

**Windows**

```
aws application-autoscaling describe-scaling-activities --service-namespace dynamodb
```

**Output**  
成功すると、コマンドは以下のような出力を返します。

```
{
    "ScalingActivities": [
        {
            "ScalableDimension": "dynamodb:table:WriteCapacityUnits",
            "Description": "Setting write capacity units to 10.",
            "ResourceId": "table/my-table",
            "ActivityId": "4d1308c0-bbcf-4514-a673-b0220ae38547",
            "StartTime": 1561574415.086,
            "ServiceNamespace": "dynamodb",
            "EndTime": 1561574449.51,
            "Cause": "maximum capacity was set to 10",
            "StatusMessage": "Successfully set write capacity units to 10. Change successfully fulfilled by dynamodb.",
            "StatusCode": "Successful"
        },
        {
            "ScalableDimension": "dynamodb:table:WriteCapacityUnits",
            "Description": "Setting min capacity to 5 and max capacity to 10",
            "ResourceId": "table/my-table",
            "ActivityId": "f2b7847b-721d-4e01-8ef0-0c8d3bacc1c7",
            "StartTime": 1561574414.644,
            "ServiceNamespace": "dynamodb",
            "Cause": "scheduled action name my-second-scheduled-action was triggered",
            "StatusMessage": "Successfully set min capacity to 5 and max capacity to 10",
            "StatusCode": "Successful"
        },
        {
            "ScalableDimension": "dynamodb:table:WriteCapacityUnits",
            "Description": "Setting write capacity units to 15.",
            "ResourceId": "table/my-table",
            "ActivityId": "d8ea4de6-9eaa-499f-b466-2cc5e681ba8b",
            "StartTime": 1561574108.904,
            "ServiceNamespace": "dynamodb",
            "EndTime": 1561574140.255,
            "Cause": "minimum capacity was set to 15",
            "StatusMessage": "Successfully set write capacity units to 15. Change successfully fulfilled by dynamodb.",
            "StatusCode": "Successful"
        },
        {
            "ScalableDimension": "dynamodb:table:WriteCapacityUnits",
            "Description": "Setting min capacity to 15 and max capacity to 20",
            "ResourceId": "table/my-table",
            "ActivityId": "3250fd06-6940-4e8e-bb1f-d494db7554d2",
            "StartTime": 1561574108.512,
            "ServiceNamespace": "dynamodb",
            "Cause": "scheduled action name my-first-scheduled-action was triggered",
            "StatusMessage": "Successfully set min capacity to 15 and max capacity to 20",
            "StatusCode": "Successful"
        }
    ]
}
```

このコマンドを変更して、スケーラブルターゲットのうち 1 つのターゲットのみに関するスケーリングアクティビティを取得するようにするには、`--resource-id` オプションを追加します。

## サービスのスケジュールされたアクションを説明する
<a name="describe-scheduled-actions-service-namespace"></a>

指定されたサービス名前空間にあるすべてのスケーラブルターゲットに対するスケジュールされたアクションを記述するには、[describe-scheduled-actions](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/describe-scheduled-actions.html) コマンドを使用します。

以下の例は、`ec2` サービス名前空間に関連付けられているスケジュールされたアクションを取得します。

**Linux、macOS、または Unix**

```
aws application-autoscaling describe-scheduled-actions --service-namespace ec2
```

**Windows**

```
aws application-autoscaling describe-scheduled-actions --service-namespace ec2
```

**Output**  
成功すると、コマンドは以下のような出力を返します。

```
{
    "ScheduledActions": [
        {
            "ScheduledActionName": "my-one-time-action",
            "ScheduledActionARN": "arn:aws:autoscaling:us-west-2:123456789012:scheduledAction:493a6261-fbb9-432d-855d-3c302c14bdb9:resource/ec2/spot-fleet-request/sfr-107dc873-0802-4402-a901-37294EXAMPLE:scheduledActionName/my-one-time-action",
            "ServiceNamespace": "ec2",
            "Schedule": "at(2021-01-31T17:00:00)",
            "Timezone": "America/New_York",
            "ResourceId": "spot-fleet-request/sfr-107dc873-0802-4402-a901-37294EXAMPLE",
            "ScalableDimension": "ec2:spot-fleet-request:TargetCapacity",
            "ScalableTargetAction": {
                "MaxCapacity": 1
            },
            "CreationTime": 1607454792.331
        },
        {
            "ScheduledActionName": "my-recurring-action",
            "ScheduledActionARN": "arn:aws:autoscaling:us-west-2:123456789012:scheduledAction:493a6261-fbb9-432d-855d-3c302c14bdb9:resource/ec2/spot-fleet-request/sfr-107dc873-0802-4402-a901-37294EXAMPLE:scheduledActionName/my-recurring-action",
            "ServiceNamespace": "ec2",
            "Schedule": "rate(5 minutes)",
            "ResourceId": "spot-fleet-request/sfr-107dc873-0802-4402-a901-37294EXAMPLE",
            "ScalableDimension": "ec2:spot-fleet-request:TargetCapacity",
            "StartTime": 1604059200.0,
            "EndTime": 1612130400.0,
            "ScalableTargetAction": {
                "MinCapacity": 3,
                "MaxCapacity": 10
            },
            "CreationTime": 1607454949.719
        },
        {
            "ScheduledActionName": "my-one-time-action",
            "ScheduledActionARN": "arn:aws:autoscaling:us-west-2:123456789012:scheduledAction:4bce34c7-bb81-4ecf-b776-5c726efb1567:resource/ec2/spot-fleet-request/sfr-40edeb7b-9ae7-44be-bef2-5c4c8EXAMPLE:scheduledActionName/my-one-time-action",
            "ServiceNamespace": "ec2",
            "Schedule": "at(2020-12-08T9:36:00)",
            "Timezone": "America/New_York",
            "ResourceId": "spot-fleet-request/sfr-40edeb7b-9ae7-44be-bef2-5c4c8EXAMPLE",
            "ScalableDimension": "ec2:spot-fleet-request:TargetCapacity",
            "ScalableTargetAction": {
                "MinCapacity": 1,
                "MaxCapacity": 3
            },
            "CreationTime": 1607456031.391
        }
    ]
}
```

## スケーラブルターゲットに対するスケジュールされたアクションを記述する
<a name="describe-scheduled-actions-scalable-target"></a>

指定されたスケーラブルターゲットに対するスケジュールされたアクションの情報を取得するには、[describe-scheduled-actions](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/describe-scheduled-actions.html) コマンドを使用してスケジュールされたアクションを記述するときに `--resource-id` オプションを追加します。

以下の例にあるように、`--scheduled-action-names` オプションを含めて、スケジュールされたアクションの名前をその値として指定すると、コマンドは名前が一致するスケジュールされたアクションのみを返します。

**Linux、macOS、または Unix**

```
aws application-autoscaling describe-scheduled-actions --service-namespace ec2 \
  --resource-id spot-fleet-request/sfr-40edeb7b-9ae7-44be-bef2-5c4c8EXAMPLE \
  --scheduled-action-names my-one-time-action
```

**Windows**

```
aws application-autoscaling describe-scheduled-actions --service-namespace ec2 ^
  --resource-id spot-fleet-request/sfr-40edeb7b-9ae7-44be-bef2-5c4c8EXAMPLE ^
  --scheduled-action-names my-one-time-action
```

**Output**  
成功すると、コマンドは以下のような出力を返します。`--scheduled-action-names` に複数の値が指定されている場合、名前が一致するスケジュールされたアクションのすべてが出力に含まれます。

```
{
    "ScheduledActions": [
        {
            "ScheduledActionName": "my-one-time-action",
            "ScheduledActionARN": "arn:aws:autoscaling:us-west-2:123456789012:scheduledAction:4bce34c7-bb81-4ecf-b776-5c726efb1567:resource/ec2/spot-fleet-request/sfr-40edeb7b-9ae7-44be-bef2-5c4c8EXAMPLE:scheduledActionName/my-one-time-action",
            "ServiceNamespace": "ec2",
            "Schedule": "at(2020-12-08T9:36:00)",
            "Timezone": "America/New_York",
            "ResourceId": "spot-fleet-request/sfr-40edeb7b-9ae7-44be-bef2-5c4c8EXAMPLE",
            "ScalableDimension": "ec2:spot-fleet-request:TargetCapacity",
            "ScalableTargetAction": {
                "MinCapacity": 1,
                "MaxCapacity": 3
            },
            "CreationTime": 1607456031.391
        }
    ]
}
```



# Application Auto Scaling を使用して定期的なスケーリングアクションをスケジュールする
<a name="scheduled-scaling-using-cron-expressions"></a>

**重要**  
Amazon EC2 Auto Scaling の cron 式の詳細については、「Amazon EC2 Auto Scaling ユーザーガイド」の「[繰り返しのスケジュール](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-scheduled-scaling.html#scheduled-scaling-recurring-schedules)」トピックを参照してください。Amazon EC2 Auto Scaling では、Application Auto Scaling が使用するカスタム cron 構文の代わりに、従来の cron 構文を使用します。

cron 式を使用して、定期的なスケジュールで実行されるスケジュールされたアクションを作成できます。

定期的なスケジュールを作成する場合は、cron 式とタイムゾーンを指定して、スケジュールされたアクションがいつ繰り返されるのかを記述します。サポートされているタイムゾーン値は、[Joda-Time](https://www.joda.org/joda-time/timezones.html) でサポートされている IANA タイムゾーンの正規名です (`Etc/GMT+9`、`Pacific/Tahiti` など)。必要に応じて、開始時刻、終了時刻、またはその両方の日付と時刻を指定できます。を使用してスケジュールされたアクションを作成するコマンドの例については、 AWS CLI 「」を参照してください[タイムゾーンを指定する定期的なスケジュールされたアクションを作成する](create-scheduled-actions.md#recurring-schedule-set-time-zone)。

サポートされている cron 式の形式は、スペースで区切られた [Minutes] [Hours] [Day\$1of\$1Month] [Month] [Day\$1of\$1Week] [Year] の 6 つのフィールドで構成されます。例えば、cron 式 `30 6 ? * MON *` は毎週月曜日の午前 6:30 に繰り返すようスケジュールされたアクションを設定します。アスタリスクは、フィールドのすべての値を照合するワイルドカードとして使用されます。

Application Auto Scaling のスケジュールされたアクションの cron 構文の詳細については、「Amazon EventBridge ユーザーガイド」の「[cron 式のリファレンス](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-scheduled-rule-pattern.html#eb-cron-expressions)」を参照してください。

定期的なスケジュールを作成するときは、開始時刻と終了時刻を慎重に選択します。以下に留意してください。
+ 開始時刻を指定すると、Application Auto Scaling はこの時刻にアクションを実行し、その後は指定された反復周期に基づいてアクションを実行します。
+ 終了時刻を指定すると、その時刻以降はアクションが反復されなくなります。Application Auto Scaling は以前の値を記録せず、終了時刻後に以前の値に戻ることはありません。
+  AWS CLI または AWS SDKs を使用してスケジュールされたアクションを作成または更新する場合は、開始時刻と終了時刻を UTC で設定する必要があります。

**例**  
Application Auto Scaling のスケーラブルターゲットに対して定期的なスケジュールを作成する場合は、次の表を参照してください。次は、Application Auto Scaling を使用して、スケジュールされたアクションを作成または更新するための正しい構文の例です。


| 分 | 時間 | 日 | 月 | 曜日 | 年 | 意味 | 
| --- | --- | --- | --- | --- | --- | --- | 
|  0  |  10  |  \$1  |  \$1  |  ?  |  \$1  |  毎日午前 10:00 (UTC) に実行  | 
|  15  |  12  |  \$1  |  \$1  |  ?  |  \$1  |  毎日午後 12:15 (UTC) に実行  | 
|  0  |  18  |  ?  |  \$1  |  MON-FRI  |  \$1  |  毎週月曜日から金曜日まで午後 6:00 (UTC) に実行  | 
|  0  |  8  |  1  |  \$1  |  ?  |  \$1  |  毎月 1 日の午前 8:00 (UTC) に実行  | 
|  0/15  |  \$1  |  \$1  |  \$1  |  ?  |  \$1  |  15 分ごとに実行  | 
|  0/10  |  \$1  |  ?  |  \$1  |  MON-FRI  |  \$1  |  月曜日から金曜日まで 10 分ごとに実行  | 
|  0/5  |  8-17  |  ?  |  \$1  |  MON-FRI  |  \$1  |  毎週月曜日から金曜日まで午前 8:00 から午後 5:55 (UTC) の間に 5 分ごとに実行   | 

**例外**  
7 つのフィールドを含む文字列値を使用して cron 式を作成することもできます。この場合、最初の 3 つのフィールドを使用して、スケジュールされたアクションを実行する時間を秒単位で指定できます。完全な cron 式には、スペースで区切られた [Seconds] [Minutes] [Hours] [Day\$1of\$1Month] [Month] [Day\$1of\$1Week] [Year] のフィールドが含まれます。ただし、この方法は、スケジュールされたアクションが指定した秒に正確に実行されることを保証するものではありません。また、一部のサービスコンソールでは、cron 式の 2 番目のフィールドがサポートされていない場合があります。

# スケーラブルターゲットに対するスケジュールされたスケーリングをオフにする
<a name="suspend-scheduled-scaling"></a>

スケジュールされたスケーリングは、スケジュールされたアクションを削除せずに一時的に無効化することができます。詳細については、「[Application Auto Scaling のスケーリングの一時停止と再開](application-auto-scaling-suspend-resume-scaling.md)」を参照してください。

**スケジュールされたスケーリングを停止する**  
以下の例にあるように、`--suspended-state` オプションがある [register-scalable-target](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/register-scalable-target.html) コマンドを使用し、`ScheduledScalingSuspended` 属性の値として `true` を指定することによって、スケーラブルターゲットでスケジュールされたスケーリングを一時停止します。

**Linux、macOS、または Unix**

```
aws application-autoscaling register-scalable-target --service-namespace rds \
  --scalable-dimension rds:cluster:ReadReplicaCount --resource-id cluster:my-db-cluster \
  --suspended-state '{"ScheduledScalingSuspended": true}'
```

**Windows**

```
aws application-autoscaling register-scalable-target --service-namespace rds ^
  --scalable-dimension rds:cluster:ReadReplicaCount --resource-id cluster:my-db-cluster ^
  --suspended-state "{\"ScheduledScalingSuspended\": true}"
```

**Output**  
成功した場合、このコマンドはスケーラブルターゲットの ARN を返します。以下は出力の例です。

```
{
    "ScalableTargetARN": "arn:aws:application-autoscaling:region:account-id:scalable-target/1234abcd56ab78cd901ef1234567890ab123"
}
```

**スケーリングスケジュールを再開する**  
スケジュールされたスケーリングを再開するには、`ScheduledScalingSuspended` の値として `false` を指定して、**register-scalable-target** コマンドを再度実行します。

# を使用して Application Auto Scaling のスケジュールされたアクションを削除する AWS CLI
<a name="delete-scheduled-action"></a>

スケジュールされたアクションを使い終わったら削除することができます。

**スケジュールされたアクションを削除する**  
[delete-scheduled-action](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/put-scheduled-action.html) コマンドを使用します。このコマンドが正常に完了した場合は、出力が返されません。

**Linux、macOS、または Unix**

```
aws application-autoscaling delete-scheduled-action \
  --service-namespace ec2 \
  --scalable-dimension ec2:spot-fleet-request:TargetCapacity \
  --resource-id spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-37294EXAMPLE \
  --scheduled-action-name my-recurring-action
```

**Windows**

```
aws application-autoscaling delete-scheduled-action ^
  --service-namespace ec2 ^
  --scalable-dimension ec2:spot-fleet-request:TargetCapacity ^
  --resource-id spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-37294EXAMPLE ^
  --scheduled-action-name my-recurring-action
```

**スケーラブルなターゲットを登録解除する**  
スケーラブルターゲットも完了した場合は、登録解除できます。次の [deregister-scalable-target](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/deregister-scalable-target.html) コマンドを使用します。まだ削除されていないスケジュールされたアクションやスケーリングポリシーがある場合は、このコマンドによって削除されます。このコマンドが正常に完了した場合は、出力が返されません。

**Linux、macOS、または Unix**

```
aws application-autoscaling deregister-scalable-target \
  --service-namespace ec2 \
  --scalable-dimension ec2:spot-fleet-request:TargetCapacity \
  --resource-id spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-37294EXAMPLE
```

**Windows**

```
aws application-autoscaling deregister-scalable-target ^
  --service-namespace ec2 ^
  --scalable-dimension ec2:spot-fleet-request:TargetCapacity ^
  --resource-id spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-37294EXAMPLE
```