

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

# のイベントに応じて EC2 インスタンスでオペレーションを自動的に実行する AWS Health
<a name="automating-instance-actions"></a>

Amazon EC2 インスタンスに対してスケジュールされたイベントに対応するアクションを自動化することができます。が AWS アカウントにイベント AWS Health を送信すると、EventBridge ルールは AWS Systems Manager 自動化ドキュメントなどのターゲットを呼び出して、ユーザーに代わってアクションを自動化できます。

例えば、Amazon EC2 インスタンスのリタイアイベントが Amazon Elastic Block Store (Amazon EBS)-backed EC2 インスタンスにスケジュールされている場合、 AWS Health は`AWS_EC2_PERSISTENT_INSTANCE_RETIREMENT_SCHEDULED`イベントタイプを AWS Health Dashboard に送信します。ルールでこのイベントタイプが検出されると、インスタンスの停止と開始を自動化できます。この方法では、これらのアクションを手動で実行する必要はありません。

**注記**  
Amazon EC2 インスタンスに対するアクションを自動化するには、そのインスタンスが Systems Manager によって管理されている必要があります。

詳細については、「Amazon EC2 ユーザーガイド」の「[EventBridge で Amazon EC2 を自動化する](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/automating_with_cloudwatch_events.html)」を参照してください。

## 前提条件
<a name="prerequisites-automation-ec2-instances"></a>

ルールを作成する前に、 AWS Identity and Access Management (IAM) ポリシーを作成し、IAM ロールを作成し、ロールの信頼ポリシーを更新する必要があります。

### IAM ポリシーを作成する
<a name="create-iam-role-for-ssm-automation"></a>

ロール用のカスタマー管理ポリシーを作成するには、次の手順に従います。このポリシーは、ユーザーに代わってアクションを実行するためのロールアクセス許可を付与します。この手順では、IAM コンソールの JSON ポリシーエディタを使用します。

**IAM ポリシーを作成するには**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) で IAM コンソールを開きます。

1. ナビゲーションペインで、**ポリシー** を選択してください。

1. **[Create policy]** (ポリシーを作成) を選択します。

1. **JSON** タブを選択します。

1. 次の JSON をコピーし、エディタでデフォルトの JSON を置き換えます。

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": [
           "ec2:StartInstances",
           "ec2:StopInstances",
           "ec2:DescribeInstanceStatus"
         ],
         "Resource": [
           "*"
         ]
       },
       {
         "Effect": "Allow",
         "Action": [
           "ssm:*"
         ],
         "Resource": [
           "*"
         ]
       },
       {
         "Effect": "Allow",
         "Action": [
           "sns:Publish"
         ],
         "Resource": [
           "arn:aws:sns:*:*:Automation*"
         ]
       },
       {
         "Effect": "Allow",
         "Action": [
           "iam:PassRole"
         ],
         "Resource": "arn:aws:iam::123456789012:role/AutomationEVRole"
       }
     ]
   }
   ```

------

   1. `Resource` パラメータで、Amazon リソースネーム (ARN) に AWS アカウント ID を入力します。

   1. ロール名を置き換えることも、デフォルトを使用することもできます。この例は *AutomationEVRole* を使用します。

1. **[Next: Tags]** (次へ: タグ) を選択します。

1. (オプション) キーバリューペアとしてのタグを使用して、メタデータをポリシーに追加することができます。

1. **[次へ: レビュー]** を選択します。

1. **[Review policy]** (ポリシーの確認) ページで、*AutomationEVRolePolicy* などの **[Name]** (名前) と、オプションの **[Description]** (説明) を入力します。

1. **[Summary]** (概要) ページで、ポリシーが許容する許可を確認します。ポリシーが適切であれば、**[Create policy]** (ポリシーの作成) を選択します。

このポリシーによって、このロールが実行できるアクションが定義されます。詳細については、IAM ユーザーガイドの[IAM ポリシーの作成 (コンソール)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html) を参照してください。

### IAM ロールを作成する
<a name="creating-an-iam-role-for-ssm-automation"></a>

このポリシーを作成したら、IAM ロールを作成し、そのロールにポリシーをアタッチする必要があります。

**AWS サービスのロールを作成するには**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) で IAM コンソールを開きます。

1. ナビゲーションペインで **[Roles]** (ロール) を選択してから、**[Create role]** (ロールを作成する) を選択します。

1. **信頼できるエンティティの種類の選択** で、**AWS サービス** を選択します。

1. このロールを引き受けることを許可するサービスに **[EC2]** を選択します。

1. **[Next: Permissions]** (次のステップ: 許可) を選択します。

1. 作成したポリシー名 (*AutomationEVRolePolicy* など) を入力してから、そのポリシーの横にあるチェックボックスをオンにします。

1. **[次へ: タグ]** を選択します。

1. (オプション) キーと値のペアとしてタグを使用し、メタデータをロールに追加できます。

1. **[次へ: レビュー]** を選択します。

1. **[Role name]** (ロール名) には *AutomationEVRole* を入力します。この名前は、作成した IAM ポリシーの ARN に表示される名前と同じものにする必要があります。

1. (オプション) **[Role description]** (ロールの説明) に、ロールの説明を入力します。

1. ロール情報を確認し、**ロールの作成** を選択します。

詳細については、*IAM* [ユーザーガイドの「 AWS サービスのロールの作成](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html#roles-creatingrole-service-console)」を参照してください。

### 信頼ポリシーの更新
<a name="modify-trust-policy"></a>

最後に、作成したロールの信頼ポリシーを更新できます。この手順を完了して、EventBridge コンソールでこのロールを選択できるようにする必要があります。

**ロールの信頼ポリシーを更新するには**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) で IAM コンソールを開きます。

1. ナビゲーションペインで **Roles (ロール) ** を選択してください。

1.  AWS アカウントのロールのリストで、*AutomationEVRole* など、作成したロールの名前を選択します。

1. [**Trust relationships**] タブを選択し、続いて [**Edit trust relationship**] を選択します。

1. **[Policy Document]** (ポリシードキュメント) には、以下の JSON をコピーし、デフォルトポリシーを削除して、その代わりにコピーした JSON を貼り付けます。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "Service": [
                       "ssm.amazonaws.com",
                       "events.amazonaws.com"
                   ]
               },
               "Action": "sts:AssumeRole"
           }
       ]
   }
   ```

------

1. **信頼ポリシーの更新** を選択します。

詳細については、IAM ユーザーガイドの[ロールの信頼ポリシーの変更 (コンソール)](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-managingrole-editing-console.html#roles-managingrole_edit-trust-policy) を参照してください。

## EventBridge のルールを作成する
<a name="create-rule-for-ssm-automation"></a>

EventBridge コンソールでこの手順を実行してルールを作成し、使用停止がスケジュールされている EC2 インスタンスの停止と起動を自動化できるようにします。

**Systems Manager 自動アクションのための EventBridge のルールを作成する**

1. Amazon EventBridge コンソール ([https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/)) を開きます。

1. ナビゲーションペインの **イベント** で、**ルール** を選択します。

1. **[Create rule]** (ルールの作成) ページで、ルールの **[Name]** (名前) と **[Description]** (説明) を入力します。

1. **[Define pattern]** (パターンの定義) で、**[Event pattern]** (イベントパターン) を選択してから、**[Pre-defined pattern by service]** (サービスごとに事前定義されたパターン) を選択します。

1. [**Service provider (サービスプロバイダー)**] で、「**AWS**」を選択します。

1. **[Service name]** (サービス名) には **[Health]** を選択します。

1. **[Event type]** (イベントタイプ) には **[Specific Health events]** (特定の Health イベント) を選択します。

1. **[Specific service(s)]** (特定のサービス) を選択し、**[EC2]** を選択します。

1. **[Specific event type category(s)]** (特定のイベントタイプのカテゴリ) を選択し、**[scheduledChange]** を選択します。

1. **[Specific event types code(s)]** (特定のイベントタイプのコード) を選択し、イベントタイプのコードを選択します。

   例えば、Amazon EC2 EBS-backed インスタンスの場合、**`AWS_EC2_PERSISTENT_INSTANCE_RETIREMENT_SCHEDULED`** を選択します。Amazon EC2 インスタンスの store-backed インスタンスの場合、**`AWS_EC2_INSTANCE_RETIREMENT_SCHEDULED`** を選択します。

1. [**任意のリソース**] を選択します。

   **[Event pattern]** (イベントパターン) は以下の例のようになります。  
**Example**  

   ```
   {
     "source": [
       "aws.health"
     ],
     "detail-type": [
       "AWS Health Event"
     ],
     "detail": {
       "service": [
         "EC2"
       ],
       "eventTypeCategory": [
         "scheduledChange"
       ],
       "eventTypeCode": [
         "AWS_EC2_PERSISTENT_INSTANCE_RETIREMENT_SCHEDULED"
       ]
     }
   }
   ```

1. Systems Manager オートメーションドキュメントターゲットを追加します。**[Select targets]** (ターゲットを選択) の **[Target]** (ターゲット) で **[SSM Automation]** (SSM オートメーション) を選択します。

1. [**ドキュメント**] で、[`AWS-RestartEC2Instance`] を選択します。

1. **[Configure automation parameters(s)]** (オートメーションパラメータの構成) を展開し、**[Input Transformer]** (入力トランスフォーマー) を選択します。

1. **[Input Path]** (入力パス) フィールドに、**`{"Instances":"$.resources"}`** を入力します。

1. 2 番目のフィールドに、**`{"InstanceId": <Instances>}`** を入力します。

1. **[Use existing role]** (既存のロールを使用) を選択してから、作成した IAM ロール (*AutomationEVRole* など) を選択します。

   ターゲットは以下の例のようになります。  
![\[EventBridge コンソールの「SSM オートメーション」例のスクリーンショット。\]](http://docs.aws.amazon.com/ja_jp/health/latest/ug/images/event-bridge-event-pattern-ssm-automation.png)
**注記**  
必要な EC2 と Systems Manager のアクセス許可と、信頼されたリレーションシップを持つ既存の IAM ロールがない場合、ロールはリストに表示されません。詳細については、「[前提条件](#prerequisites-automation-ec2-instances)」を参照してください。

1. **[作成]** を選択します。

   ルールに一致するイベントがアカウント内で発生すると、EventBridge が指定されたターゲットにイベントを送信します。