

# スケジュールのリファレンス
<a name="schedule-reference"></a>

スケジュールでは、そのスケジュールでタグ付けされたインスタンスを実行するタイミングを指定します。各スケジュールには一意の名前が必要です。この名前は、タグ付けされたリソースに適用するスケジュールを識別するタグ*値*として使用されます。

## 期間
<a name="periods"></a>

各スケジュールには、インスタンスを実行する時間を定義する期間を少なくとも 1 つ含める必要があります。スケジュールには複数の期間を含めることができます。スケジュールで 1 つ以上の期間が使用されている場合、AWS での Instance Scheduler は、少なくとも 1 つの期間が true であれば、適切な開始アクションを適用します。詳細については、「[期間のリファレンス](period-reference.md)」を参照してください。

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

スケジュールのタイムゾーンを指定することもできます。タイムゾーンを指定しない場合は、ソリューションを起動するときに指定したデフォルトのタイムゾーンがスケジュールで使用されます。許容されるタイムゾーン値のリストについては、[TZ データベースのタイムゾーンのリスト](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)の **TZ** 列を参照してください。

## 新しいインスタンスの停止フィールド
<a name="stop-new-instances-field"></a>

stop\_new\_instances フィールドは、インスタンススケジューラが現在実行期間外に実行されている場合、スケジューリング用に最初にタグ付けされたときにインスタンスを停止するかどうかを制御します。デフォルトでは、このフィールドは true に設定されます。

true に設定すると、スケジュールされた実行期間外の実行中のインスタンスにタグを付けると、Instance Scheduler はインスタンスを直ちに停止します。false に設定すると、Instance Scheduler は次のスケジュールされた停止時間までインスタンスを実行したままにします。

## hibernate フィールド
<a name="hibernate-field"></a>

hibernate フィールドでは、Amazon EC2 インスタンスを停止させる際にハイバネーション (休止) を使用できます。このフィールドが true に設定されている場合、EC2 インスタンスではハイバネーションをサポートする Amazon マシンイメージ (AMI) を使用する必要があります。詳細については、*Amazon EC2 ユーザーガイド*の「[Linux AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hibernating-prerequisites.html#hibernation-prereqs-supported-amis)」を参照してください。休止状態に入ると、インスタンスメモリ (RAM) に置かれていた内容が、Amazon Elastic Block Store (Amazon EBS) のルートボリュームに保存されます。このフィールドを true に設定すると、ソリューションによってインスタンスが停止したときに、インスタンスは停止するのではなく休止状態になります。

ハイバネーションを使用するようにソリューションを設定しても、インスタンスが[ハイバネーションに設定](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/enabling-hibernation.html)がされていない、または[ハイバネーションの前提条件](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hibernating-prerequisites.html)を満たしていない場合、ソリューションは警告をログに記録し、インスタンスはハイバネーションなしで停止します。詳細については、*Amazon EC2 ユーザーガイド*の「[Amazon EC2 インスタンスの休止](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html)」を参照してください。

## enforced フィールド
<a name="enforced-field"></a>

スケジュールには、インスタンスが実行期間外に手動で起動されたり、実行期間中に手動で停止されたりすることを防ぐための enforced フィールドが含まれています。このフィールドを true に設定している状態でユーザーが実行期間外に手動でインスタンスを起動すると、ソリューションはインスタンスを停止します。このフィールドが true に設定されていると、実行期間中に手動で停止されるインスタンスも再起動されます。

## retain\_running フィールド
<a name="retain-running-field"></a>

retain\_running フィールドは、期間の開始前にインスタンスを手動で起動した場合に、ソリューションが実行期間の終了時にインスタンスを停止しないようにします。例えば、午前 9 時から午後 5 時まで実行する期間のインスタンスを午前 9 時より前に手動で起動した場合、ソリューションは午後 5 時にインスタンスを停止しません。

## Systems Manager メンテナンスウィンドウのフィールド (EC2 インスタンスのみに適用)
<a name="systems-manager-maintenance-window-field-only-applies-to-ec2-instances"></a>

ssm-maintenance-window フィールドでは、AWS Systems Manager のメンテナンスウィンドウを実行期間として自動的にスケジュールに追加できます。Amazon EC2 インスタンスと同じアカウントと AWS リージョンに存在するメンテナンスウィンドウの名前を指定すると、ソリューションはメンテナンスウィンドウの開始の少なくとも 10 分前にインスタンスを起動し、他の実行期間でインスタンスを実行するように指定されていない場合は、メンテナンスウィンドウの終了時にインスタンスを停止します。

SSM メンテナンスウィンドウが作成され、SSM メンテナンスウィンドウの名前でスケジュールが設定されると、次回にスケジュールされている Lambda の実行時に変更が反映されます。例えば、スケジューラー Lambda の実行頻度を 5 分に設定した場合、メンテナンスウィンドウの変更は次の 5 分間隔で Lambda によって反映されます。

AWS での Instance Scheduler では、メンテナンスウィンドウの開始の少なくとも 10 分前にインスタンスが起動されるようにします。**Scheduling Interval** AWS CloudFormation パラメータに設定した値によっては、インスタンスが少なくとも 10 分早く起動するように、インスタンスがメンテナンスウィンドウの開始の 10 分以上前に起動される場合があります。たとえば、Scheduling Interval を 30 分に設定した場合、スケジューラーはメンテナンスウィンドウが開始する 10～40 分前にインスタンスを起動します。

**注記**  
この機能を使用するには、ソリューションハブスタックの Enable EC2 SSM Maintenance Windows CloudFormation パラメータを `yes` に設定する必要があります。

詳細については、*AWS Systems Manager ユーザーガイド*の「[AWS Systems Manager Maintenance Windows](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-maintenance.html)」を参照してください。

## インスタンスタイプ
<a name="instance-type"></a>

Amazon EC2 インスタンスの場合のみ、スケジュールの各期間にオプションとしてインスタンスタイプを指定できます。期間にインスタンスタイプを指定すると、ソリューションはリクエストされたインスタンスタイプに合わせて EC2 インスタンスのサイズを自動的に変更します。

インスタンスタイプを指定するには、*<period-name>@<instance-type>* 構文を使用します。例えば、`weekends@t2.nano`。Amazon EC2 インスタンスと Amazon RDS のインスタンスをスケジュールする期間のインスタンスタイプを指定した場合、そのインスタンスタイプは Amazon RDS インスタンスでは無視されることに注意してください。

実行中のインスタンスのインスタンスタイプが、その期間に指定されたインスタンスタイプと異なる場合、ソリューションは実行中のインスタンスを停止し、指定されたインスタンスタイプでインスタンスを再起動します。詳細については、*Linux インスタンス用 Amazon EC2 ユーザーガイド*の「[Amazon EC2 インスタンスタイプの変更](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-resize.html#resize-limitations)」を参照してください。

## スケジュールの定義
<a name="schedule-definitions"></a>

Amazon DynamoDB の AWS での Instance Scheduler の設定テーブルには、スケジュールの定義が含まれています。スケジュールの定義には次のフィールドを含めることができます。


| フィールド | 説明 | 
| --- | --- | 
|  `description`  | スケジュールの説明 (オプション) | 
|  `hibernate`  | Amazon Linux を実行する Amazon EC2 インスタンスを休止するかどうかを選択します。このフィールドを true に設定すると、スケジューラはインスタンスを停止したときにインスタンスを休止状態にします。インスタンスの[ハイバネーションをオン](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html#enabling-hibernation)にして、[ハイバネーションの前提条件](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html#hibernating-prerequisites)を満たしている必要があることに注意してください。 | 
|  `enforced`  | スケジュールを強制するかどうかを選択します。このフィールドが true に設定されている場合は、スケジューラは実行中のインスタンスを実行期間外に手動で起動すると停止し、実行期間中に手動で停止した場合はインスタンスを起動します。 | 
|  `name`  | スケジュールを識別するために使用される名前。この名前は一意にする必要があり、英数字、ハイフン (-)、アンダースコア (\_) 以外は使用できません。 | 
|  `periods`  | このスケジュールで使用される期間の名前。期間の name フィールドに表示されているとおりに名前を入力します。<br />*<period-name>@<instance-type>* 構文を使用して、期間のインスタンスタイプを指定することもできます。例えば、`weekdays@t2.large`。 | 
|  `retain_running`  | 実行期間の開始前にインスタンスを手動で起動した場合、ソリューションが実行期間の終了時にインスタンスを停止しないようにするかどうかを選択します。 | 
|  `use_maintenance_window`  | 実行期間として Amazon RDS メンテナンスウィンドウを Amazon RDS インスタンススケジュールに含めるか、もしくは実行期間として AWS Systems Manager メンテナンスウィンドウを Amazon EC2 インスタンススケジュールに含めることを選択します。このフィールドはデフォルトで有効になっており、値を「false」に設定することで無効にできます。 | 
|  `ssm_maintenance_window`  | このスケジュールの追加実行期間として AWS Systems Manager のメンテナンスウィンドウを追加するかどうかを選択します。スケジュールされた EC2 インスタンスと同じアカウント/リージョンのウィンドウ名と照合される、メンテナンスウィンドウ名の StringSet を受け入れます。<br /> **注記:** この機能は EC2 インスタンスにのみ適用されます。 | 
|  `stop_new_instances`  | インスタンスが実行期間外に実行されている場合に、最初にタグ付けされたときにインスタンスを停止するかどうかを選択します。デフォルトでは、このフィールドは true に設定されます。 | 
|  `timezone`  | スケジュールが使用するタイムゾーン。タイムゾーンを指定しない場合は、デフォルトのタイムゾーン (UTC) が使用されます。許容されるタイムゾーン値のリストについては、[TZ データベースのタイムゾーンのリスト](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)の **TZ** 列を参照してください。 | 
|  `use_metrics`  | スケジュールレベルで CloudWatch メトリクスをオンにするかどうかを選択します。このフィールドは、デプロイ時に指定した CloudWatch メトリクスの設定を上書きします。<br /> **注記:** この機能を有効にすると、スケジュールまたはスケジュールされたサービスごとに 0.90 USD / 月の料金が発生します。 | 