による AWS Health イベントのモニタリング Amazon CloudWatch Events - AWS Health

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

による AWS Health イベントのモニタリング Amazon CloudWatch Events

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

Notes
  • このトピックでは、 CloudWatch イベント コンソールを使用してルールを作成します。Amazon EventBridge コンソールを使用してルールを作成することもできます。詳細については、 AWS ユーザーガイドの「 サービスのルールAmazon EventBridgeの作成」を参照してください

  • どちらのサービスでも、 AWS Health はベストエフォートベースでイベントを配信します。イベントは必ずしも CloudWatch イベント または に配信されるとは限りませんEventBridge。

CloudWatch イベント を使用する際には、AWS Health ワークフローの一部として次のターゲットタイプを選択できます。

  • AWS Lambda 関数

  • Amazon Kinesis Data Streams

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

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

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

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

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

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

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

一部のAWS Healthイベントはリージョン固有ではなく、代わりに AWS Identity and Access Management (IAM) に送信されたイベントなど、グローバルです。グローバルイベントを受信するには米国東部(バージニア北部)、リージョンの ルールを作成する必要があります。

のパブリックイベントについて AWS Health

AWS Health アカウントに固有のAWSイベントのみが に配信されますCloudWatch イベント。たとえば、Amazon EC2インスタンスへの必須の更新などのイベントや、アカウントやリソースに影響する可能性があるその他の予定された変更イベントなどがあります。

現在、 を使用してCloudWatch イベント、サービスヘルスダッシュボードからパブリックイベントを返すことはできません。Service Health Dashboard のイベントは、リージョンでのサービスの可用性に関する公開情報を提供します。これらのイベントはAWSアカウントに固有のものではないため、 には配信されませんCloudWatch イベント。

代わりに、 AWS Health コンソールと DescribeEventDetails オペレーションを使用できます。いずれかのオプションを使用してイベントに関する情報を返すと、それがサービスヘルスダッシュボードからのパブリックイベントであるか、アカウントに影響するアカウント固有のイベントであるかを特定できます。

次のオプションを使用して、イベントがパブリックかアカウント固有かを識別できます。

  • Personal Health Dashboard で、[Event log (イベントログ)] ページの [Affected resources (影響を受けるリソース)] タブを選択します。リソースがあるイベントは、アカウントに固有です。リソースのないイベントはパブリックであり、アカウント固有のものではありません。詳細については、「AWS Personal Health Dashboard の開始方法」を参照してください。

  • AWS Health API を使用して、eventScopeCode パラメータを返します。イベントには PUBLICACCOUNT_SPECIFIC、または NONE の値を指定できます。詳細については、AWS Health API リファレンスの「DescribeEventDetails」オペレーションを参照してください。

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

CloudWatch イベント の AWS Health ルールの作成

ルールを作成して、 アカウントの CloudWatch イベント イベントについて通知AWS Healthを受け取ることができます。AWS Health のイベントルールを作成する前に、以下のことを行う必要があります。

CloudWatch イベント 用の AWS Health ルールを作成するには

  1. https://console.aws.amazon.com/cloudwatch/ にある CloudWatch コンソールを開きます。

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

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

  4. Create rule] を選択し、次に [Event Source] の下の [Service Name] で [Health.] を選択します。

  5. [イベントタイプ] で、次のいずれかのオプションを選択します。

    • [All Events (すべてのイベント)] を選択して、すべてのAWSサービスに適用されるルールを作成します。このルールは、 からのすべてのイベントをモニタリングAWS Healthします。このオプションを選択すると、イベントタイプのカテゴリまたはイベントタイプのコードを指定することはできません。

    • [Specific Health events (特定のヘルスイベント)]、[Specific service(s) (特定のサービス)] の順に選択し、リストからサービス名を選択します。これにより、1 つのサービスのみのイベントをモニタリングするルールが作成されます。たとえば、 が イベントのみをモニタリングするように CloudWatch イベントEC2Amazon EC2 を選択できます。複数のサービスを選択することはできません。

    ヒント

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

  6. 特定のサービスを選択した場合は、次のいずれかのオプションを選択します。

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

    • [特定のイベントタイプのカテゴリ] を選択し、リストから値を選択します。これにより、 などの 1 つのイベントタイプのカテゴリにのみ適用されるルールが作成されますscheduledChange。 複数のカテゴリを選択することはできません。

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

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

    • [特定のイベントタイプのコード] を選択し、リストから 1 つ以上の値を選択します。これにより、特定のイベントタイプのコードにのみ適用されるルールが作成されます。たとえば、[AWS_EC2_INSTANCE_STOP_SCHEDULED] および [AWS_EC2_PERSISTENT_INSTANCE_RETIREMENT_SCHEDULED] を選択した場合、ルールはアカウントで発生したこれらのイベントにのみ適用されます。

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

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

    • [特定のリソース] を選択しIDs、1 つ以上のリソースの を入力します。たとえばAmazon EC2、インスタンス ID を指定して、このリソースにのみ影響するイベントをi-EXAMPLEa1b2c3de4モニタリングできます。

  9. ルール設定を確認して、イベントモニタリング要件を満たします。

  10. Targets] エリアで、[Add target*.] を選択します。

  11. [Select target type] リストで、このルールで使用するために準備したターゲットのタイプを選択し、そのタイプに必要な追加オプションを設定します。

  12. Configure details.] を選択します。

  13. [Configure rule details (ルールの詳細の設定)] ページで、ルールの名前と説明を入力し、[State (状態)] チェックボックスをオンにして、ルールを作成したらすぐに有効にします。

  14. Create rule.] を選択します。

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

次の例では、ルールを作成して、イベントタイプのカテゴリCloudWatch イベント、イベントコード、リソースなど、 がすべてのイベントAmazon EC2をモニタリングするようにします。


          すべてのCloudWatch イベントイベントのみのAmazon EC2ルール方法のスクリーンショット。

例 : 特定のAmazon EC2イベントのルール

次の例では、ルールを作成して、 が以下CloudWatch イベントをモニタリングするようにします。

  • Amazon EC2 サービス

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

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

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


          特定のCloudWatch イベントイベントのみのAmazon EC2ルール方法のスクリーンショット。

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

EC2 インスタンスの新しいスケジュールされたイベントに応じて、アクションを自動化することができます。たとえば、CloudWatch イベント サービスによって生成された EC2 の予定されたイベントに対して AWS Health ルールを作成できます。次に、これらのルールは、AWS Systems Manager 自動化ドキュメントなどのターゲットをトリガーして、アクションを自動化できます。詳細については、の「 を使用した Amazon EC2の自動化」を参照してくださいEventBridgeLinux インスタンス用 Amazon EC2 ユーザーガイド

たとえば、Amazon EC2 インスタンスのリタイアイベントが Amazon Elastic Block Store (Amazon EBS) - backed EC2 インスタンスに対してスケジュールされている場合、これらのアクションを手動で実行しなくても済むように、インスタンスの停止と起動を自動化できます。

注記

この手順では、 CloudWatch イベント コンソールを使用してルールを作成します。EventBridge コンソールを使用してルールを作成することもできます。詳細については、 AWS ユーザーガイドの「 サービスのルールAmazon EventBridgeの作成」を参照してください

リタイアが予定されている EBS-backed EC2 インスタンスの停止と起動を自動化するには

  1. CloudWatch コンソールを開いて CloudWatch イベント ルールを作成する:

    1. に移動します。https://console.aws.amazon.com/cloudwatch/.

    2. イベント] の [ルール.] を選択します。

  2. [イベントパターンのプレビュー] を編集し、次の入力を入力します。

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

    コンソールに次のフィールドが表示されます。

    • [サービス名] で、 AWS Health

    • [Event Type (イベントタイプ)] 、[Specific Health (特定のヘルス)] イベント

    • Amazon EC2 サービス

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

    • AWS_EC2_INSTANCE_RETIREMENT_SCHEDULED イベントタイプコード

    • 任意のリソース

    
              AWS Health スクリーンショットの「イベントパターン」を作成します。
  3. Save.] を選択します。

  4. Systems Manager オートメーションドキュメントターゲットを追加します。次の図に示すように、[Add target* (ターゲットの追加)] を選択し、[SSM Automation] を選択します。

    
              CloudWatch イベント コンソールでの「SSM Automation」の例のスクリーンショット。
  5. リストから [AWS-RestartEC2Instance] Systems Manager ドキュメントを選択します。

  6. ここに示すように Input Transformer を設定します。 {"Instances":"$.resources"} を 、 InputPathsMap {"InstanceId": <Instances>}を入力テンプレートとして使用します。

  7. 既存のIAMロールを選択し、SSM オートメーションドキュメントを実行するためのアクセス許可を持つ新しいロールを作成します。

必要な EC2 と IAM アクセス許可を持つ既存の Systems Manager ロールがない場合は、ロールを作成します。

EC2 と IAM アクセス許可を持つ Systems Manager ロールを作成するには

  1. IAM ポリシーを作成して、CloudWatch イベント 用の必要な IAM アクセス許可を設定します。次に、ポリシーを IAM の CloudWatch. ロールに関連付けます。この例では、IAM ロールに AutomationCWRole. という名前を付けます。

    例 : IAM ポリシー

    { "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/AutomationCWRole" } ] }
  2. ロール Amazon リソースネーム (ARN) をアカウント ID とロール名で更新します。また、ロールに events.amazonaws.com があり、以下の例のようにssm.amazonaws.comロールの信頼されたエンティティとしてIAM設定されていることを確認します。

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