

# サンプルスケジュール
<a name="sample-schedules"></a>

AWS での Instance Scheduler を使用すると、Amazon Elastic Compute Cloud (Amazon EC2) と Amazon Relational Database Service (Amazon RDS) のインスタンスを自動的に開始および停止できます。次のセクションでは、多くの一般的なユースケースに適応できるスケジュールの例をいくつか紹介します。

## 標準の午前 9 時 〜 午後 5 時までの労働時間
<a name="standard-9-5-working-hours"></a>

このスケジュールは、ロンドンで、平日の午前 9 時から午後 5 時までインスタンスを実行する方法を示しています。

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

この期間では、平日 (月～金) の午前 9 時にインスタンスを開始し、午後 5 時にインスタンスを停止します。


| フィールド | タイプ | 値 | 
| --- | --- | --- | 
|  `begintime`  |  `String`  |  `09:00`  | 
|  `endtime`  |  `String`  |  `16:59`  | 
|  `name`  |  `String`  |  `weekdays-9-5`  | 
|  `weekdays`  |  `StringSet`  |  `mon-fri`  | 

### スケジュール
<a name="schedule"></a>

スケジュール名では、使用するインスタンスとタイムゾーンに適用する必要があるタグ値を提供します。


| フィールド | タイプ | 値 | 
| --- | --- | --- | 
|  `name`  |  `String`  |  `london-working-hours`  | 
|  `periods`  |  `StringSet`  |  `weekdays-9-5`  | 
|  `timezone`  |  `String`  |  `Europe/London`  | 

### インスタンスのタグ
<a name="instance-tag"></a>

このスケジュールをインスタンスに適用するには、`Schedule=london-working-hours` タグをインスタンスに追加する必要があります。AWS CloudFormation の **Instance Scheduler tag name** パラメータでデフォルトのタグ名を変更すると、タグが変わります。例えば、タグ名として `Sked` と入力した場合、タグは `Sked=london-working-hours` になります。詳細については、*Amazon Elastic Compute Cloud ユーザーガイド*の「[Amazon EC2 リソースのタグ付け](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#tag-ec2-resources-table)」を参照してください。

### Scheduler CLI
<a name="scheduler-cli-1"></a>

[Instance Scheduler CLI](scheduler-cli-4.md) を使用して上記のスケジュールを設定するには、次のコマンドを使用します。

```
scheduler-cli create-period --stack <stackname> --name weekdays-9-5 --weekdays mon-fri --begintime 9:00 --endtime 16:59

scheduler-cli create-schedule --stack <stackname> --name london-working-hours --periods weekdays-9-5 --timezone Europe/London

Europe/London
```

### カスタムリソース
<a name="custom-resource"></a>

次の CloudFormation テンプレートは、[スケジュールのカスタムリソース](manage-schedules-using-infrastructure-as-code-iac.md)を使用して前述のスケジュールを作成します。

このテンプレートをデプロイするには、**ServiceInstanceScheduleServiceToken** ARN を指定する必要があります。この ARN は、[以前にデプロイした Instance Scheduler のハブスタック](step-1-launch-the-instance-scheduler-hub-stack.md)を選択してから、**[出力]** を選択すると、AWS CloudFormation コンソールに表示されます。

```
AWSTemplateFormatVersion: 2010-09-09
Parameters:
  ServiceInstanceScheduleServiceTokenARN:
    Type: String
    Description: (Required) service token arn taken from InstanceScheduler outputs
Metadata:
  'AWS::CloudFormation::Designer': {}
Resources:
  LondonWorkingWeek:
    Type: 'Custom::ServiceInstanceSchedule'
    Properties:
      NoStackPrefix: 'True'
      Name: london-working-hours
      Description: run instances from 9am to 5pm in London on weekdays
      ServiceToken: !Ref ServiceInstanceScheduleServiceTokenARN
      Timezone: Europe/London
      Periods:
     - Description: 9am to 5pm on weekdays
        BeginTime: '09:00'
        EndTime: '16:59'
        WeekDays: mon-fri
```

## 午後 5 時以降にインスタンスを停止する
<a name="stop-instances-after-5-pm"></a>

インスタンスは日中いつでも自由に起動できます。このスケジュールにより、毎日午後 5 時 (ET) に停止コマンドが自動的に送信されます。

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

この期間では、毎日午後 5 時にインスタンスを停止します。


| フィールド | タイプ | 値 | 
| --- | --- | --- | 
|  `endtime`  |  `String`  |  `16:59`  | 
|  `name`  |  `String`  |  `stop-at-5`  | 

### スケジュール
<a name="schedule-1"></a>

スケジュール名では、使用するインスタンスとタイムゾーンに適用する必要があるタグ値を提供します。


| フィールド |  | 値 | 
| --- | --- | --- | 
|  `name`  |  `String`  |  `stop-at-5-new-york`  | 
|  `periods`  |  `StringSet`  |  `stop-at-5`  | 
|  `timezone`  |  `String`  |  `America/New York`  | 

### インスタンスのタグ
<a name="instance-tag-1"></a>

このスケジュールをインスタンスに適用するには、`Schedule=stop-at-5-new-york` タグをインスタンスに追加する必要があります。AWS CloudFormation の **Instance Scheduler tag name** パラメータでデフォルトのタグ名を変更した場合、タグが変わります。例えば、タグ名として `Sked` と入力した場合、タグは `Sked=stop-at-5-new-york` になります。詳細については、*Amazon Elastic Compute Cloud ユーザーガイド*の「[Amazon EC2 リソースのタグ付け](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#tag-ec2-resources-table)」を参照してください。

### Scheduler CLI
<a name="scheduler-cli-2"></a>

[Instance Scheduler CLI](scheduler-cli-4.md) を使用して上記のスケジュールを設定するには、次のコマンドを使用します。

```
scheduler-cli create-period --stack <stackname> --name stop-at-5 --endtime 16:59

scheduler-cli create-schedule --stack <stackname> --name stop-at-5-new-york --periods stop-at-5 --timezone America/New_York
```

### カスタムリソース
<a name="custom-resource-1"></a>

次の CloudFormation テンプレートは、[スケジュールのカスタムリソース](manage-schedules-using-infrastructure-as-code-iac.md)を使用して前述のスケジュールを作成します。

このテンプレートをデプロイするには、**ServiceInstanceScheduleServiceToken** ARN を指定する必要があります。この ARN は、[以前にデプロイした Instance Scheduler のハブスタック](step-1-launch-the-instance-scheduler-hub-stack.md)をクリックしてから、**[出力]** を選択すると、AWS CloudFormation コンソールに表示されます。

```
AWSTemplateFormatVersion: 2010-09-09
Parameters:
  ServiceInstanceScheduleServiceTokenARN:
    Type: String
    Description: (Required) service token arn taken from InstanceScheduler outputs
Metadata:
  'AWS::CloudFormation::Designer': {}
Resources:
  StopAfter5:
    Type: 'Custom::ServiceInstanceSchedule'
    Properties:
      NoStackPrefix: 'True'
      Name: stop-at-5-new-york
      Description: stop instances at 5pm ET every day
      ServiceToken: !Ref ServiceInstanceScheduleServiceTokenARN
      Timezone: America/New_York
      Periods:
      - Description: stop at 5pm
        EndTime: '16:59'
```

## 週末にインスタンスの停止
<a name="stop-instances-over-the-weekend"></a>

このスケジュールは、月曜日の午前 9 時 (ET) から金曜日の午後 5 時 (ET) までのインスタンスの実行方法を示しています。月曜日と金曜日は終日ではないため、このスケジュールには、月曜日、火曜日から木曜日、金曜日の 3 つの期間が含まれます。

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

1 つ目の期間は、タグ付けされたインスタンスを月曜日の午前 9 時に開始し、深夜に停止します。この期間には、次のフィールドと値が含まれます。


| フィールド | タイプ | 値 | 
| --- | --- | --- | 
|  `begintime`  |  `String`  |  `09:00`  | 
|  `endtime`  |  `String`  |  `23:59`  | 
|  `name`  |  `String`  |  `mon-start-9am`  | 
|  `weekdays`  |  `StringSet`  |  `mon`  | 

2 つ目の期間は、火曜日から木曜日までにタグ付けされたインスタンスを毎日実行します。この期間には、次のフィールドと値が含まれます。


| フィールド |  | 値 | 
| --- | --- | --- | 
|  `name`  |  `String`  |  `tue-thu-full-day`  | 
|  `weekdays`  |  `StringSet`  |  `tue-thu`  | 

3 つ目の期間は、タグ付けされたインスタンスを金曜日の午後 5 時に停止します。この期間には、次のフィールドと値が含まれます。


| フィールド |  | 値 | 
| --- | --- | --- | 
|  `begintime`  |  `String`  |  `00:00`  | 
|  `endtime`  |  `String`  |  `16:59`  | 
|  `name`  |  `String`  |  `fri-stop-5pm`  | 
|  `weekdays`  |  `StringSet`  |  `fri`  | 

### スケジュール
<a name="schedule-2"></a>

スケジュールは、3 つの期間をタグ付けされたインスタンスのスケジュールに結合します。スケジュールには、次のフィールドと値が含まれます。


| フィールド |  | 値 | 
| --- | --- | --- | 
|  `name`  |  `String`  | mon-9am-fri-5pm | 
|  `periods`  |  `StringSet`  | mon-start-9am,tue-thu-full-day,fri-stop-5pm | 
|  `timezone`  |  `String`  | America/New\_York | 

### インスタンスのタグ
<a name="instance-tag-2"></a>

このスケジュールをインスタンスに適用するには、`Schedule=mon-9am-fri-5pm` タグをインスタンスに追加する必要があります。AWS CloudFormation の **Instance Scheduler tag name** パラメータでデフォルトのタグ名を変更した場合、タグが変わることにご注意ください。例えば、タグ名として Sked と入力した場合、タグは `Sked=mon-9am-fri-5pm` になります。詳細については、*Amazon Elastic Compute Cloud ユーザーガイド*の「[Amazon EC2 リソースのタグ付け](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#tag-ec2-resources-table)」を参照してください。

### Scheduler CLI
<a name="scheduler-cli-3"></a>

[Instance Scheduler CLI](scheduler-cli-4.md) を使用して上記のスケジュールを設定するには、次のコマンドを使用します。

```
scheduler-cli create-period --stack <stackname> --name
mon-start-9am --weekdays mon --begintime 9:00 --endtime 23:59
scheduler-cli create-period --stack <stackname> --name
tue-thu-full-day --weekdays tue-thu
scheduler-cli create-period --stack <stackname> --namefri-stop-5pm --weekdays fri --begintime 0:00 --endtime 17:00

scheduler-cli create-schedule --stack <stackname> --name
mon-9am-fri-5pm --periods
mon-start-9am,tue-thu-full-day,fri-stop-5pm -timezone
America/New_York
```

### カスタムリソース
<a name="custom-resource-2"></a>

次の CloudFormation テンプレートは、[スケジュールのカスタムリソース](manage-schedules-using-infrastructure-as-code-iac.md)を使用して前述のスケジュールを作成します。

このテンプレートをデプロイするには、**ServiceInstanceScheduleServiceToken** ARN を指定する必要があります。この ARN は、[以前にデプロイした Instance Scheduler のハブスタック](step-1-launch-the-instance-scheduler-hub-stack.md)を選択してから、**[出力]** を選択すると、AWS CloudFormation コンソールに表示されます。

```
AWSTemplateFormatVersion: 2010-09-09
Parameters:
  ServiceInstanceScheduleServiceTokenARN:
    Type: String
    Description: (Required) service token arn taken from InstanceScheduler outputs
Metadata:
  'AWS::CloudFormation::Designer': {}
Resources:
  StopOnWeekends:
    Type: 'Custom::ServiceInstanceSchedule'
    Properties:
      NoStackPrefix: 'True'
      Name: mon-9am-fri-5pm
      Description: start instances at 9am on monday and stop them at 5pm on friday
      ServiceToken: !Ref ServiceInstanceScheduleServiceTokenARN
      Timezone: America/New_York
      Periods:
      - Description: 9am monday start
        BeginTime: '09:00'
        EndTime: '23:59'
        WeekDays: mon
      - Description: all day tuesday-thursday
        WeekDays: tue-thu
      - Description: 5pm friday stop
        BeginTime: '00:00'
        EndTime: '16:59'
        WeekDays: fri
```

## ソリューションリソース
<a name="solution-resources"></a>

次のリソースは、AWS での Instance Scheduler スタックの一部として作成されます。


| リソース名 | 型 | 説明 | 
| --- | --- | --- | 
|  ** Main**  |  `AWS::Lambda::Function`  | AWS Lambda 関数のインスタンススケジューラ。 | 
|  ** Scheduler Config Helper**  |  `Custom::ServiceSetup`  | グローバル構成設定を Amazon DynamoDB に保存します。 | 
|  ** Scheduler Invoke Permission**  |  `AWS::Lambda::Permission`  | Amazon CloudWatch イベントが Instance Scheduler の AWS Lambda 関数を呼び出すことを許可します。 | 
|  ** Scheduler Logs**  |  `AWS::Logs::LogGroup`  | Instance Scheduler 用の Amazon CloudWatch ロググループ | 
|  ** Scheduler Policy**  |  `AWS::IAM::Policy`  | スケジューラがアクションの開始と停止の実行、Amazon EC2 インスタンス属性の変更、タグの設定、スケジューラリソースへのアクセスを許可するポリシー。 | 
|  ** Scheduler Rule**  |  `AWS::Events::Rule`  | スケジューラの Lambda 関数を呼び出す Amazon EventBridge のイベントルール。 | 
|  ** Configuration Metrics Event Rule**  |  `AWS::Events::Rule`  | 設定記述の匿名化されたメトリクスの関数を定期的に呼び出す Amazon EventBridge イベントルール。匿名化されたメトリクスが無効になっている場合は、無効になります。 | 
|  ** State Table**  |  `AWS::DynamamoDB::Table`  | インスタンスの最後の目的の状態を保存する DynamoDB テーブル。 | 
|  ** Config Table**  |  `AWS::DynamamoDB::Table`  | グローバル設定、スケジュール、および期間のデータを保存する DynamoDB テーブル。 | 
|  ** Instance Scheduler SNS Topic**  |  `AWS::SNS::Topic`  | サブスクライブした E メールアドレスに警告メッセージとエラーメッセージを送信します。 | 