Systems Manger のメンテナンスウィンドウの使用を開始および停止するように Amazon EC2 インスタンスをスケジュールするにはどうすればよいですか?

最終更新日: 2021 年 5 月 7 日

AWS Systems Manager のメンテナンスウィンドウを使用して、Amazon Elastic Compute Cloud (Amazon EC2) マネージドインスタンスを開始および停止したいと考えています。

解決方法

Systems Manager のメンテナンスウィンドウを使用して Amazon EC2 マネージドインスタンスを開始または停止するようにスケジュールするには、AWS-StartEC2Instance または AWS-StopEC2Instance オートメーションタスクをメンテナンスウィンドウに登録します。メンテナンスウィンドウは、設定された EC2 インスタンスを対象とし、指定されたオートメーションドキュメントステップを使用して、選択したスケジュールに従ってインスタンスを停止または開始します。

IAM ロールとポリシーの作成

メンテナンスウィンドウの開始または停止アクションをスケジュールするには、ec2:StartInstances および ec2:StopInstances のアクセス許可を持つ AWS Identity and Access Management (IAM) ロールを使用する必要があります。

注意: IAM ロールに必要なのは、メンテナンスウィンドウに登録したオートメーションタスクに対するアクセス許可だけです。例えば、AWS-StartEC2Instance を登録し、AWS-StopEC2Instance を登録しない場合、IAM ロールに必要なのは ec2:StartInstances アクセス許可だけです。

  1. IAM コンソールを開き、ナビエ―ションペインから [ロール] を選択し、[ロールの作成] を選択します。
    [信頼されたエンティティの種類を選択] で、[AWS サービス] を選択します。
    [ユースケースの選択] で 、[Systems Manager] を選択します。
    [ ユースケースの選択] で、[Systems Manager] を選択します。
  2. [次のステップ: アクセス権限] を選択します。
  3. [ポリシーの作成] を選択します。注意: 新しいタブで [ポリシーの作成] ページが開きます。手順 7 を完了すると元のタブに戻ります。
    [サービス] で、[EC2] を選択します。
    [アクション] で、ユースケースに応じて [StartInstances] と [StopInstances] のいずれかまたは両方を検索して選択します。
    [ リソース ] では、[指定] を選択してインスタンスリソース ARN を追加するのがセキュリティのベストプラクティスです。特定のインスタンスを選択すると、特定のアカウントの特定のリソースに対するアクセス許可のみを定義できます。
    [リクエスト条件] で、開始アクションと停止アクションが使用できる条件を制限するために [条件の追加] を選択します。次に、条件の詳細を設定します。条件が必要ない場合は、リクエスト条件を変更しないでください。
  4. [次のステップ: タグ] を選択します。(オプション) タグを追加します。
  5. [次のステップ: 確認] を選択します。
    [名前] にポリシー名を入力します。たとえば、「SSM_StartStopEC2Policy」と入力します。
  6. [ポリシーの作成] を選択します。
  7. 手順 3. の開いていたタブの [ロールの作成] ページに戻ります。[次のステップ: タグ] を選択します。(オプション) タグを追加します。
  8. [次のステップ: 確認] を選択します。
    [ロール名] にロール名を入力します。例えば、「SSM_StartStopEC2Role」と入力します。
  9. [ロールの作成] を選択します。

詳細については、「AWS のサービス用ロールの作成 (コンソール)」を参照してください。

メンテナンスウィンドウを作成する

メンテナンスウィンドウを作成していない場合は、メンテナンスウィンドウを作成します。

注意: ターゲットとして登録していないマネージドインスタンスでメンテナンスウィンドウを実行するには、[未登録ターゲットを許可] を選択する必要があります。

すでにメンテナンスウィンドウがある場合は、「オートメーションタスクを登録する」に進みます。

オートメーションタスクを登録する

  1. Systems Manager コンソールを開き、ナビゲーションペインで [メンテナンスウィンドウ] を選択します。
  2. 目的のメンテナンスウィンドウのラジオボタンを選択し、[アクション]、[オートメーションタスクの登録] の順に選択します。
  3. (オプション) [メンテナンスウィンドウタスクの詳細] に名前と説明を入力します。
  4. オートメーションドキュメントの場合は、ユースケースに応じて、次のいずれかのドキュメントを検索して選択します。
    AWS-StartEC2Instance
    AWS-StopEC2Instance

    注意: 一度に登録できるオートメーションドキュメントは 1 つだけです。両方を登録するには、各ドキュメントに対して「オートメーションタスクを登録する」すべてのプロセスを繰り返す必要があります。
  5. [ドキュメントのバージョン] で、[ランタイムのデフォルトバージョン] を選択します。
  6. (オプション) デフォルトでは、タスクの優先順位は 1 に設定されています。同じメンテナンスウィンドウに他のタスクを登録している場合は、タスクの優先順位を変更して、タスクの実行順序を決定できます。
  7. メンテナンスウィンドウにターゲットインスタンスを登録した場合は、[ターゲット] で [登録済みのターゲットグループを選択] を選択します。メンテナンスウィンドウにターゲットインスタンスを登録していない場合は、[登録されていないターゲットを選択] を選択します。次に、タグの指定、手動でのインスタンスの選択、またはリソースグループの指定を行って、オートメーションタスクを実行するインスタンスを特定します。
  8. [レートコントロール] で、[同時実行性] と [エラーのしきい値] を指定します。
  9. [IAM サービスロール] で、[Systems Manager サービスにリンクされたロールを作成し使用する] を選択します。
  10. [入力パラメータ] セクションで、以下のパラメータを指定します。
    InstanceId: 疑似パラメータ {{RESOURCE_ID}} を入力して複数のリソースをターゲットに指定します。
    AutomationAssumeRole: 必要な ec2:StartInstances または ec2:StopInstances アクセス許可がある IAM ロールの完全なロール ARN を入力します。例えば、「arn:aws:iam::123456789101:role/SSM_StartStopEC2Role」と入力します。
  11. [オートメーションタスクの登録] を選択します。
  12. (オプション) オートメーションタスクを登録して停止アクションと開始アクションの両方をスケジュールするには、2 番目のドキュメントで「オートメーションタスクを登録する」のステップを繰り返します。

詳細については、「メンテナンスウィンドウにタスクを割り当てる (コンソール)」を参照してください。