AmazonAWS Health によるイベントのモニタリングEventBridge - AWS Health

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

AmazonAWS Health によるイベントのモニタリングEventBridge

AmazonEventBridge を使用して、AWS Healthイベントを検出し、対応することができます。次に、作成したルールで指定した値とイベントが一致すると、1EventBridge つ以上のターゲットアクションを呼び出します。イベントのタイプに応じて、イベント情報の取得、追加イベントの開始、通知の送信、是正措置の実施、またはその他のアクションを実行することができます。例えば、更新が予定されている AWS リソース (Amazon Elastic Compute Cloud (Amazon EC2) インスタンスなど) が AWS アカウント内にある場合に、AWS Health を使用して E メール通知を受け取ることができます。

メモ
  • AWS Health は、ベストエフォートベースでイベントを配信します。イベントが常に EventBridge に配信されるとは限りません。

  • EventBridge作成したルールは、ユーザーのに関する通知しか受信できませんAWS アカウント。AWS Organizations 内にあるその他アカウントの組織イベントは受信できません。詳細については、「組織ビューでのアカウント全体の AWS Health イベントの集計」を参照してください。

EventBridgeAWS Healthワークフローの一環として、複数のターゲットタイプからターゲットを選択することが可能です。これには以下が含まれます。

  • AWS Lambda 関数

  • Amazon Kinesis Data Streams

  • Amazon Simple Queue Service (Amazon SQS) キュー

  • 組み込みターゲット (CloudWatchアラームアクションなど)

  • Amazon Simple Notification Service (Amazon SNS) のトピック

例えば、AWS Health イベントの発生時に、Lambda 関数を使用して通知を Slack チャネルに渡すことができます。または、Lambda を使用して、EventBridgeAWS Healthイベントが発生すると、Amazon SNS でカスタムテキストまたは SMS 通知を送信できます。

AWS Healthイベントに応じて作成できる自動化およびカスタマイズされたアラートのサンプルについては、AWS Healthのツールを参照してくださいGitHub。

AWS Health の AWS リージョンについて

AWS Healthイベントを受信するリージョンごとに作成する必要があります。EventBridgeルールを作成しなければ、イベントは受信されません。例えば、米国西部 (オレゴン) リージョンからイベントを受信するには、このリージョンのルールを作成する必要があります。

AWS Health公開イベントを監視する場合、バックアップリージョンに追加のルールを設定すると、プライマリルールが進行中の問題によって影響を受ける場合に備えて、ワークフローの回復力がさらに高まります。標準 AWS パーティションのすべてのリージョンについて、米国西部 (オレゴン) でバックアップとしてルールを設定すると、プライマリリージョンが進行中の問題の影響を受けても引き続きイベントを受信できます。米国西部 (オレゴン) リージョンのバックアップリージョンは、米国東部 (バージニア北部) リージョンです。

たとえば、ヨーロッパ (フランクフルト) リージョンのイベントを監視していて、そのリージョンが一時的に利用できない場合、そのイベントを米国西部 (オレゴン)AWS Health リージョンに再ルーティングします。次に、EventBridgeバックアップルールは、指定したターゲットにイベントを送信します。バックアップルールを作成するには、米国西部 (オレゴン) リージョンでのEventBridgeのルールの作成AWS Health手順を実行して使用してください。

AWS Health イベントにはリージョン固有ではないものもあります。リージョンに固有ではないイベントはグローバルイベントと呼ばれます。これには、AWS Identity and Access Management (IAM) について送信されるイベントが含まれます。グローバルイベントを受信するには、米国東部 (バージニア北部) リージョンのルールを作成する必要があります。

でグローバルイベントを受信するにはAWS GovCloud (US)、AWSGovCloud (米国西部) リージョンでルールを作成する必要があります。

AWS Health の公開イベントについて

EventBridgeイベントを監視するルールを作成するとAWS Health、そのルールでアカウント固有のイベントと公開イベントを配信できます。

  • アカウント固有のイベントは、Amazon EC2 インスタンスに必要な更新を通知するイベントや、スケジュールされた変更イベントなどです。

  • 公開イベントはAWS Healthダッシュボード — サービスヘルスビューに表示されます

  • パブリックイベントはAWS アカウント、リージョンでのサービスの可用性に関する情報を提供するものでもありません。

重要

両方のイベントタイプを受け取るには、"source": [ "aws.health"]ルールで正確な値を使用する必要があります。などのワイルドカードは"source": [ "aws.*"]、公開イベントの監視パターンと一致しません。

アジアパシフィック (メルボルン)、アジアパシフィック (ハイデラバード)、欧州 (スペイン)、欧州 (チューリッヒ)、中東 (アラブ首長国連邦)EventBridgeAWS リージョン の各リージョンを除く、パブリックイベントタイプはまだ利用できません。

からパブリックイベントをモニタリングする場合はAWS リージョン、バックアップルールを作成することをお勧めします。リージョンでサービスが停止した場合は、AWS Health代わりに公開イベント情報をバックアップルールに送信します。

eventScopeCodeパラメータを使用して、イベントがパブリックかアカウント固有かを識別できます。EventBridgeeventScopeCodeACCOUNT_SPECIFICPUBLICパラメータにはまたは値を指定できます。このパラメータでルールをフィルタリングすることもできます。

例:Amazon Elastic Compute Cloud のパブリックイベント

以下のイベントは、米国東部 (バージニア北部) リージョンでの Amazon EC2 の運用上の問題を示しています。

{ "version": "0", "id": "fd9d4512-1eb0-50f6-0491-d016ae56aef0", "detail-type": "AWS Health Event", "source": "aws.health", "account": "123456789012", "time": "2023-02-15T10:07:10Z", "region": "us-east-1", "resources": [], "detail": { "eventArn": "arn:aws:health:us-east-1::event/EC2/AWS_EC2_OPERATIONAL_ISSUE", "service": "EC2", "eventTypeCode": "AWS_EC2_OPERATIONAL_ISSUE", "eventTypeCategory": "issue", "eventScopeCode": "PUBLIC", "communicationID": "01b0993207d81a09dcd552ebd1e633e36cf1f09a", "startTime": "Wed, 15 Feb 2023 22:07:07 GMT", "lastUpdatedTime": "Wed, 15 Feb 2023 22:07:07 GMT", "statusCode": "open", "eventRegion": "us-east-1", "eventDescription": [ { "latestDescription": "We are investigating increased API Error rates and Latencies for Amazon Elastic Compute Cloud in the US-EAST-1 Region.", "language": "en_US", "eventStatus": 1 } ] } }

AWS Health Service Health Dashboard 通知ツールを使用して、パブリックイベントに関する通知を受けることもできます。詳細については、GitHub Web aws-health-toolsサイトのを参照してください。

EventBridgeのルールの作成AWS Health

アカウント内のEventBridgeAWS Healthイベントに関する通知を受け取るルールを作成することができます。AWS Health に対するイベントルールを作成する前に、以下を完了しておきます。

AWS Health 用の EventBridge ルールを作成するには
  1. https://console.aws.amazon.com/events/ で AmazonEventBridge コンソールを開きます。

  2. AWS リージョン を変更するには、ページの右上隅にあるリージョンセレクターを使用します。AWS Health イベントを追跡するリージョンを選択します。

  3. ナビゲーションペインで [Rules] (ルール) を選択します。

  4. [Create rule] (ルールを作成) を選択します。

  5. [Define rule detail] (ルールの詳細を定義) ページで、ルールの名前と説明を入力します。

  6. [Event bus] (イベントバス) と [Rule type] (ルールタイプ) のデフォルト値を維持して、[Next] (次へ) を選択します。

  7. [イベントパターンの作成] ページの [イベントソース] で、AWSEventBridgeイベントとパートナーイベントを選択します

  8. [イベントパターン] で [Health] を選択します。AWS のサービス

  9. [Event Type] (イベントタイプ) で、以下のいずれかのオプションを選択します。

    • [Specific Health Abuse Events] (特定の不正行為に関する Health イベント) – イベントタイプ名に Abuse という単語が含まれている AWS Health イベント用のルールを作成します。

    • [Specific Health events] (特定の Health イベント) – 特定の AWS のサービス (Amazon EC2 など) のイベント用のルールを作成します。

  10. [Any service] (任意のサービス) または [Specific service(s)] (特定のサービス) を選択できます。特定のサービスを選択する場合は、以下のオプションの 1 つを選択します。

    • すべてのイベントタイプのカテゴリに適用されるルールを作成するには、[Any event type category] (任意のイベントタイプのカテゴリ) を選択します。

    • [Specific event type category(s)] (特定のイベントタイプのカテゴリ) を選択してから、[issue][accountNotification]、または [scheduledChange] などの値をリストから選択します。

    ヒント
    • 特定のサービスのすべての AWS Health イベントをモニタリングする場合は、[Any event type category] (任意のイベントタイプのカテゴリ) と [Any resource] (任意のリソース) を選択することをお勧めします。これにより、指定したサービスに対して、新しいイベントタイプのコードを含む、すべての AWS Health イベントがルールで確実にモニタリングされます。ルールの例については、すべての Amazon EC2 イベントを参照してください。

    • 複数のサービスまたはイベントタイプのカテゴリをモニタリングするルールを作成できます。そのためには、ルールのイベントパターンを手動で更新する必要があります。詳細については、「複数のサービスおよびカテゴリに対するルールの作成」を参照してください。

  11. 特定のサービスおよびイベントタイプのカテゴリを選択した場合は、イベントタイプのコードに対して以下のいずれかのオプションを選択します。

    • すべてのイベントタイプのコードに適用されるルールを作成するには、[Any event type code] (任意のイベントタイプのコード) を選択します。

    • [Specific event type code(s)] (特定のイベントタイプのコード) を選択し、リストから 1 つ以上の値を選択します。これにより、特定のイベントタイプのコードにのみ適用されるルールが作成されます。例えば、AWS_EC2_INSTANCE_STOP_SCHEDULEDAWS_EC2_INSTANCE_RETIREMENT_SCHEDULED を選択すると、これらのイベントがアカウントで発生した場合に、それらのイベントのみにルールが適用されます。

  12. 影響を受けるリソースに対して、以下のいずれかのオプションを選択します。

    • すべてのリソースに適用されるルールを作成するには、[Any resource] (任意のリソース) を選択します。

    • [Specific resource(s)] (特定のリソース) を選択し、1 つ以上のリソースの ID を入力します。例えば、i-EXAMPLEa1b2c3de4 などの Amazon EC2 インスタンス ID を指定して、このリソースのみに影響を及ぼすイベントを監視できます。

  13. ルールのセットアップを見直して、イベントモニタリング要件を満たしていることを確認します。

  14. [Next] (次へ) を選択します。

  15. [Select target(s)] (ターゲットを選択) ページで、このルール用に作成したターゲットタイプを選択してから、そのタイプに必要な追加のオプションを設定します。例えば、イベントを Amazon SQS キューまたは Amazon SNS トピックに送信できます。

  16. [Next] (次へ) を選択します。

  17. (オプション) [Configure tags] (タグの設定) ページで、いずれかのタグを追加し、[Next] (次へ) を選択します。

  18. [Review and create] (確認および作成) ページで、ルールの設定を確認し、イベントモニタリング要件を満たしていることを確認してください。

  19. [ルールの作成] を選択します。

例 : すべての Amazon EC2 イベントに対するルール

以下の例では、イベントタイプのカテゴリ、イベントコード、およびリソースを含む、すべての Amazon EC2EventBridge イベントをモニタリングするルールを作成します。


          すべての Amazon EC2 イベントのみに対する、EventBridgeルールを作成する方法を示すスクリーンショット。
例 : 特定の Amazon EC2 イベントに対するルール

以下の例は、EventBridge以下を監視するルールを作成します。

  • Amazon EC2 サービス

  • scheduledChange イベントタイプのカテゴリ

  • AWS_EC2_INSTANCE_TERMINATION_SCHEDULED および AWS_EC2_INSTANCE_RETIREMENT_SCHEDULED のイベントタイプのコード

  • i-EXAMPLEa1b2c3de4 という ID を持つインスタンス


          特定の Amazon EC2 イベントのみに対する、EventBridgeルールを作成します。

複数のサービスおよびカテゴリに対するルールの作成

前の手順の例は、単一のサービスおよびイベントタイプのカテゴリに対してルールを作成する方法を示しています。複数のサービスやイベントタイプのカテゴリに対してルールを作成することもできます。つまり、モニタリングするサービスやカテゴリごとに個別のルールを作成する必要はありません。そのためには、イベントパターンを編集し、変更を手動で入力する必要があります。

次のオプションの 1 つを使用できます。

既存のルールにサービスとカテゴリを追加するには
  1. EventBridgeコンソールの「ルール」ページで、ルール名を選択します。

  2. 右上隅の[Edit] (編集) を選択します。

  3. [Next] (次へ) を選択します。

  4. [Event pattern] (イベントパターン) で [Edit pattern] (パターンを編集) をクリックしてから、変更内容をテキストフィールドに入力します。

  5. [Review and update] (確認と更新) ページが表示されるまで [Next] (次へ) を選択します。

  6. [Update rule] (ルールを更新) を選択して変更を保存します。

新しいルールにサービスとカテゴリを追加するには
  1. EventBridgeのルールの作成AWS Health」の手順をステップ 9 まで実行します。

  2. リストから単一のサービスまたはカテゴリを選択する代わりに、[Event pattern] (イベントパターン) で [Edit pattern] (パターンを編集) を選択します。

  3. テキストフィールドに変更を入力します。独自のイベントパターンを作成するためのモデルとして、以下のサンプルパターンを参照してください。

  4. イベントパターンを確認してから、「EventBridgeのルールの作成AWS Health」の残りの手順を実行してルールを作成します。

APIまたは AWS Command Line Interface (AWS CLI) の使用

新規または既存のルールの場合、PutRuleAPIaws events put-rule オペレーションまたはコマンドを使用してイベントパターンを更新します。AWS CLI コマンドの例については、AWS CLI コマンドリファレンスput-rule を参照してください。

例: 複数のサービスとイベントタイプのカテゴリ

以下のイベントパターンは、Amazon EC2、Amazon EC2 Auto Scaling、および Amazon VPC の 3 つの issue のサービスについて、accountNotificationscheduledChange、および AWS のイベントタイプカテゴリのイベントを監視するルールを作成します。

{ "detail": { "eventTypeCategory": [ "issue", "accountNotification", "scheduledChange" ], "service": [ "AUTOSCALING", "VPC", "EC2" ] }, "detail-type": [ "AWS Health Event" ], "source": [ "aws.health" ] }

AWS HealthAmazon EventBridgeイベントスキーマ

AWS Health以下はイベントのスキーマです。

AWS Healthイベントスキーマ

{ "version": "0", "id": "7bf73129-1428-4cd3-a780-95db273d1602", "detail-type": "AWS Health Event", "source": "aws.health", "account": "123456789012", "time": "2016-06-05T06:27:57Z", "region": "region", "resources": [], "detail": { "eventArn": "arn:aws:health:region::event/id", "service": "service", "eventTypeCode": "AWS_service_code", "eventScopeCode": "scopecode", "communicationID": "communicationid", "eventTypeCategory": "category", "startTime": "Wed, 05 Apr 2023 05:01:10 GMT", "endTime": "Wed, 05 Apr 2023 05:30:57 GMT", "lastUpdatedTime": "Mon, 27 Mar 2023 09:01:22 GMT", "statusCode": "open", "eventRegion": "af-south-1" "eventDescription": [{ "language": "lang-code", "latestDescription": "description" }] ... } }

eventTypeCategory

イベントのカテゴリコード 指定できる値は、issueaccountNotification、および scheduledChange です。

eventTypeCode

イベントタイプの一意の識別子。例には、AWS_EC2_INSTANCE_NETWORK_MAINTENANCE_SCHEDULEDAWS_EC2_INSTANCE_REBOOT_MAINTENANCE_SCHEDULED が含まれます。MAINTENANCE_SCHEDULED を含むイベントは、通常、startTime の約 2 週間前にプッシュアウトされます。

eventScopeCode

  • アカウント固有のイベントは、Amazon EC2 インスタンスに必要な更新を通知するイベントや、スケジュールされた変更イベントなどです。

  • 公開イベントはAWS Healthダッシュボード — サービスヘルスビューに表示されます

  • AWSパブリックイベントはアカウント固有ではなく、リージョンでのサービスの可用性に関する情報を提供します。

イベントアーン

このタイプのイベントのユニークなHealth サービス識別子

コミュニケーション ID

ヘルスイベントの特定の更新に使用される一意のHealth サービス識別子。たとえば、Health イベントに新しい文言が追加された場合、CommunicationIDAWS は更新を受け取るすべてのアカウントで同じになります。このフィールドを使用して、万が一状況が発生した場合に通信の重複を排除できます。

ID

EventBridgeEventBridgeこの識別子はイベントごとに異なります。コミュニケーション ID とは異なり、同じHealth イベントの更新でもアカウント間で一貫性が保たれません。

service

イベントに影響を受ける、AWSサービス。たとえば、EC2S3REDSHIFT、またはRDS

Amazon EC2 運用上の問題

{ "version": "0", "id": "7bf73129-1428-4cd3-a780-95db273d1602", "detail-type": "AWS Health Event", "source": "aws.health", "account": "123456789012", "time": "2023-01-27T09:01:22Z", "region": "af-south-1", "resources": [], "detail": { "eventArn": "arn:aws:health:af-south-1::event/EC2/AWS_EC2_OPERATIONAL_ISSUE/AWS_EC2_OPERATIONAL_ISSUE_7f35c8ae-af1f-54e6-a526-d0179ed6d68f", "service": "EC2", "eventTypeCode": "AWS_EC2_OPERATIONAL_ISSUE", "eventTypeCategory": "issue", "eventScopeCode": "PUBLIC", "communicationID": "01b0993207d81a09dcd552ebd1e633e36cf1f09a", "startTime": "Fri, 27 Jan 2023 06:02:51 GMT", "endTime": "Fri, 27 Jan 2023 09:01:22 GMT", "lastUpdatedTime": "Fri, 27 Jan 2023 09:01:22 GMT", "statusCode": "open", "eventRegion": "af-south-1" "eventDescription": [ { "language": "en_US", "latestDescription": "Current severity level: Operating normally\n\n[RESOLVED] \n\n [03:15 PM PST] We continue see recovery \n\nThe following AWS services were previously impacted but are now operating normally: APPSYNC, BACKUP, EVENTS." }, ] "affectedEntities":[] } }

Elastic Load Balancing API の問題

{ "version": "0", "id": "121345678-1234-1234-1234-123456789012", "detail-type": "AWS Health Event", "source": "aws.health", "account": "123456789012", "time": "2022-06-10T06:27:57Z", "region": "ap-southeast-2", "resources": [], "detail": { "eventArn": "arn:aws:health:ap-southeast-2::event/AWS_ELASTICLOADBALANCING_API_ISSUE_90353408594353980", "service": "ELASTICLOADBALANCING", "eventTypeCode": "AWS_ELASTICLOADBALANCING_API_ISSUE", "eventTypeCategory": "issue", "eventScopeCode": "ACCOUNT_SPECIFIC", "communicationID": "01b0993207d81a09dcd552ebd1e633e36cf1f09a", "startTime": "Fri, 10 Jun 2022 05:01:10 GMT", "endTime": "Fri, 10 Jun 2022 05:30:57 GMT", "statusCode": "open", "eventRegion": "ap-southeast-2" "eventDescription": [{ "language": "en_US", "latestDescription": "A description of the event will be provided here" } }

Amazon EC2 インスタンスストアドライブのパフォーマンス低下

{ "version": "0", "id": "121345678-1234-1234-1234-123456789012", "detail-type": "AWS Health Event", "source": "aws.health", "account": "123456789012", "time": "2022-06-03T06:27:57Z", "region": "us-west-2", "resources": [ "i-abcd1111" ], "detail": { "eventArn": "arn:aws:health:us-west-2::event/AWS_EC2_INSTANCE_STORE_DRIVE_PERFORMANCE_DEGRADED_90353408594353980", "service": "EC2", "eventTypeCode": "AWS_EC2_INSTANCE_STORE_DRIVE_PERFORMANCE_DEGRADED", "eventTypeCategory": "issue", "eventScopeCode": "ACCOUNT_SPECIFIC", "communicationID": "01b0993207d81a09dcd552ebd1e633e36cf1f09a", "startTime": "Fri, 3 Jun 2022 05:01:10 GMT", "endTime": "Fri, 3 Jun 2022 05:30:57 GMT", "statusCode": "open", "eventRegion": "us-west-2" "eventDescription": [{ "language": "en_US", "latestDescription": "A description of the event will be provided here" }], "affectedEntities": [{ "entityValue": "i-abcd1111", } }

AWS Chatbot を使用した AWS Health イベントの受信

Slack や Amazon Chime など、チャットクライアントで AWS Health イベントを直接受け取れます。このイベントを使用して、AWS のアプリケーションとインフラストラクチャに影響を及ぼす可能性がある、最近の AWS のサービス問題を特定することができます。その後、AWS Health Dashboard にサインインして、更新に関する詳細情報を確認できます。例えば、AWS アカウントで AWS_EC2_INSTANCE_STOP_SCHEDULED イベントタイプに対してモニタリングしている場合、AWS Health イベントを Slack チャネルに直接表示できます。

前提条件

開始する前に、以下のものが必要です。

  • AWS Chatbot で構成されたチャットクライアント。Amazon Chime と Slack を設定できます。詳細については、AWS Chatbot 管理者ガイドAWS Chatbot の開始方法を参照してください。

  • 作成した、およびサブスクライブした Amazon SNS トピック。SNS トピックが既にある場合、既存のトピックを使用できます。詳細については、「Amazon Simple Notification Service デベロッパーガイド」の「Amazon SNS の使用開始」を参照してください。

AWS Chatbot を使用して AWS Health イベントを受信するには
  1. EventBridgeのルールの作成AWS Health」の手順をステップ 13 まで実行します。

    1. ステップ 14 でターゲットを選択するときに、SNS トピックを選択します。これと同じ SNS トピックを AWS Chatbot コンソールで使用します。

    2. 残りの手順を完了して、ルールを作成します。

  2. AWS Chatbot コンソールに移動します。

  3. Slack チャネル名など、チャットクライアントを選択し、[Edit] (編集) を選択します。

  4. [Notifications - optional] (通知 – オプション) セクションの [Topics] (トピック) で、ステップ 1 で指定したものと同じ SNS トピックを選択します。

  5. [Save] (保存) を選択します。

    AWS HealthEventBridgeルールに一致するイベントを送信すると、AWS Healthイベントがチャットクライアントに表示されます。

  6. イベント名を選択して、AWS Health Dashboard で詳細情報を確認します。

例 : Slack に送信される AWS Health イベント

以下は、Slack チャネルに表示されている、米国東部 (バージニア北部) での Amazon EC2 と Amazon Simple Storage Service (Amazon S3) の 2 つの AWS Health イベントの例です。


          Slack チャネルで 2 つの AWS Health イベントがどのように表示されるかを示すスクリーンショット。

Amazon EC2 インスタンスのアクションの自動化

Amazon EC2 インスタンスに対してスケジュールされたイベントに対応するアクションを自動化することができます。AWS HealthAWSアカウントにイベントを送信すると、EventBridgeAWS 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 によって管理されている必要があります。

詳細については、Linux インスタンス用 Amazon EC2EventBridge での「Amazon EC2 の自動化を行う」を参照してください

前提条件

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

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

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. [Next: Review] (次のステップ: レビュー) を選択します。

  9. ポリシーの確認ページでAutomationEVRolePolicy などの名前とオプションで説明を入力します

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

このポリシーによって、このロールが実行できるアクションが定義されます。詳細については、IAM ユーザーガイド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. 作成したポリシー名 (AutomationEV) を入力しRolePolicy、ポリシーの横にあるチェックボックスをオンにします。

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

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

  9. [Next: Review] (次のステップ: レビュー) を選択します。

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

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

  12. ロール情報を確認し、[Create role (ロールの作成)] を選択します。

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

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

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

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

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

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

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

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

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

のルールを作成するEventBridge

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

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

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

  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. [Specific service(s)] (特定のサービス) を選択し、[EC2] を選択します。

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

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

    例えば、Amazon EC2 EBS-backed インスタンスの場合、AWS_EC2_PERSISTENT_INSTANCE_RETIREMENT_SCHEDULED を選択します。Amazon EC2 インスタンスの 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 オートメーションドキュメントターゲットを追加します。[Select targets] (ターゲットを選択) の [Target] (ターゲット) で [SSM Automation] (SSM オートメーション) を選択します。

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

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

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

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

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

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

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

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

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

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