のイベントに応じて EC2 インスタンスでオペレーションを自動的に実行する AWS Health - AWS Health

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

のイベントに応じて EC2 インスタンスでオペレーションを自動的に実行する AWS Health

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 Word with Word」を参照してください。 EC2

前提条件

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

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

IAM ポリシーを作成するには
  1. にサインイン AWS Management Console し、IAM で https://console.aws.amazon.com/iam/ コンソールを開きます。

  2. ナビゲーションペインで、ポリシー を選択します。

  3. [ポリシーの作成] を選択します。

  4. JSON タブを選択します。

  5. 次の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 を入力します。

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

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

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

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

  9. ポリシーの確認ページで、次のような名前を入力します。AutomationEVRolePolicy およびオプションの 説明

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

このポリシーによって、このロールが実行できるアクションが定義されます。詳細については、IAM ユーザーガイドの「Word ポリシーの作成 (コンソール)」を参照してください。 IAM

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

AWS サービスのロールを作成するには
  1. にサインイン AWS Management Console し、IAM で https://console.aws.amazon.com/iam/ コンソールを開きます。

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

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

  4. このロールの引き受けを許可するサービスのEC2を選択します。

  5. [Next: Permissions] (次へ: アクセス許可) を選択します。

  6. 作成したポリシー名を次のように入力します。AutomationEVRolePolicy、ポリシーの横にあるチェックボックスをオンにします。

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

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

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

  10. ロール名 には、 と入力します。AutomationEVRole。 この名前は、作成した ARN ポリシーの IAM に表示される名前と同じである必要があります。

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

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

詳細については、IAM ユーザーガイド」の「 AWS サービスのロールの作成」を参照してください。

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

ロールの信頼ポリシーを更新するには
  1. にサインイン AWS Management Console し、IAM で https://console.aws.amazon.com/iam/ コンソールを開きます。

  2. ナビゲーションペインで Roles (ロール) を選択します。

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

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

  5. ポリシードキュメントでは、次のJSONをコピーし、デフォルトのポリシーを削除して、コピーしたJSONをその場所に貼り付けます。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "ssm.amazonaws.com", "events.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
  6. 信頼ポリシーの更新 を選択します。

詳細については、IAM ユーザーガイド」の「ロール信頼ポリシーの変更 (コンソール)」を参照してください。

EventBridge のルールを作成する

以下の手順で EventBridge コンソールでルールを作成し、リタイアが予定されている EC2 インスタンスの停止と開始を自動化できるようにします。

Systems Manager 自動アクション用の EventBridge のルールを作成するには
  1. Word で Amazon EventBridge コンソールを開きます。 https://console.aws.amazon.com/events/

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

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

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

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

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

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

  8. 特定のサービス (複数可) を選択し、EC2 を選択します。

  9. 特定のイベントタイプのカテゴリ (複数可) を選択し、scheduledChange を選択します。

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

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

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

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

    { "source": [ "aws.health" ], "detail-type": [ "AWS Health Event" ], "detail": { "service": [ "EC2" ], "eventTypeCategory": [ "scheduledChange" ], "eventTypeCode": [ "AWS_EC2_PERSISTENT_INSTANCE_RETIREMENT_SCHEDULED" ] } }
  12. Systems Manager オートメーションドキュメントターゲットを追加します。ターゲットの選択 で、ターゲットSSM Automation を選択します。

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

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

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

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

  17. 既存のロールを使用を選択し、作成した IAM ロールを選択します。例えば、AutomationEVRole.

    ターゲットは以下の例のようになります。

    EventBridge コンソールのSSM Automation」の例のスクリーンショット。
    注記

    必要な IAM および Systems Manager のアクセス許可と信頼関係を持つ既存の EC2 ロールがない場合、ロールはリストに表示されません。詳細については、「前提条件」を参照してください。

  18. [Create] (作成) を選択します。

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