サンプルスケジュール - AWS での Instance Scheduler

サンプルスケジュール

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

標準の午前 9 時 〜 午後 5 時までの労働時間

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

期間

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

フィールド タイプ

begintime

String

09:00

endtime

String

16:59

name

String

weekdays-9-5

weekdays

StringSet

mon-fri

スケジュール

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

フィールド タイプ

name

String

london-working-hours

periods

StringSet

weekdays-9-5

timezone

String

Europe/London

インスタンスのタグ

このスケジュールをインスタンスに適用するには、Schedule=london-working-hours タグをインスタンスに追加する必要があります。AWS CloudFormation の Instance Scheduler tag name パラメータでデフォルトのタグ名を変更すると、タグが変わります。例えば、タグ名として Sked と入力した場合、タグは Sked=london-working-hours になります。詳細については、Amazon Elastic Compute Cloud ユーザーガイドの「Amazon EC2 リソースのタグ付け」を参照してください。

Scheduler CLI

Instance Scheduler CLI を使用して上記のスケジュールを設定するには、次のコマンドを使用します。

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

カスタムリソース

次の CloudFormation テンプレートは、スケジュールのカスタムリソースを使用して前述のスケジュールを作成します。

このテンプレートをデプロイするには、ServiceInstanceScheduleServiceToken ARN を指定する必要があります。この ARN は、以前にデプロイした Instance Scheduler のハブスタックを選択してから、[出力] を選択すると、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 時以降にインスタンスを停止する

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

期間

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

フィールド タイプ

endtime

String

16:59

name

String

stop-at-5

スケジュール

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

フィールド

name

String

stop-at-5-new-york

periods

StringSet

stop-at-5

timezone

String

America/New York

インスタンスのタグ

このスケジュールをインスタンスに適用するには、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 リソースのタグ付け」を参照してください。

Scheduler CLI

Instance Scheduler CLI を使用して上記のスケジュールを設定するには、次のコマンドを使用します。

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

カスタムリソース

次の CloudFormation テンプレートは、スケジュールのカスタムリソースを使用して前述のスケジュールを作成します。

このテンプレートをデプロイするには、ServiceInstanceScheduleServiceToken ARN を指定する必要があります。この ARN は、以前にデプロイした Instance Scheduler のハブスタックをクリックしてから、[出力] を選択すると、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'

週末にインスタンスの停止

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

期間

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

スケジュール

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

フィールド

name

String

mon-9am-fri-5pm

periods

StringSet

mon-start-9am,tue-thu-full-day,fri-stop-5pm

timezone

String

America/New_York

インスタンスのタグ

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

Scheduler CLI

Instance Scheduler CLI を使用して上記のスケジュールを設定するには、次のコマンドを使用します。

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

カスタムリソース

次の CloudFormation テンプレートは、スケジュールのカスタムリソースを使用して前述のスケジュールを作成します。

このテンプレートをデプロイするには、ServiceInstanceScheduleServiceToken ARN を指定する必要があります。この ARN は、以前にデプロイした Instance Scheduler のハブスタックを選択してから、[出力] を選択すると、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

ソリューションリソース

次のリソースは、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 メールアドレスに警告メッセージとエラーメッセージを送信します。