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

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

でAWS HealthのイベントのモニタリングAmazon CloudWatch Events

を使用して、 Amazon CloudWatch Events イベントの変更を検出し対応することができます。AWS Health次に、作成したルールで指定した値とイベントが一致すると、CloudWatch イベント で 1 つ以上のターゲットアクションが呼び出されます。イベントのタイプに応じて、通知の送信、イベント情報の取得、是正措置の実施、またはその他の対策を行うことができます。

CloudWatch イベント を使用する際には、AWS 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 および CloudWatch イベント を使用して、AWS Health イベントの発生時に Amazon SNS でカスタムテキスト通知または SMS 通知を送信できます。

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

注記

AWS Healthアカウントに固有の AWS イベントのみが に発行されますCloudWatch イベント。たとえば、Amazon Elastic Block Store(Amazon EBS) ボリュームの消失イベント、 Amazon Elastic Compute Cloud (Amazon EC2) インスタンスストアのドライブパフォーマンスの低下イベント、アカウントやリソースに影響する可能性のある他の予定された変更イベントなどがあります。

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

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

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

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

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

サービスヘルスダッシュボードの通知ツールを使用し、パブリックイベントの通知を受け取ることもできます。AWS Health詳細については、 ウェブサイトの「aws-health-tools」を参照してください。GitHub

重要

Personal Health Dashboard に表示されるイベントは、リージョン固有です。たとえば、AWS Health が 米国東部 (オハイオ) リージョン 内のリソース (Amazon EC2 インスタンスなど) に影響を与えるイベントを送信する場合、そのイベントの通知を受けるように、同じリージョンで CloudWatch イベント を設定する必要があります。

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

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

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

  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します。このオプションを選択すると、イベントタイプのカテゴリやイベントタイプのコードを指定することはできません。

    • 特定のヘルスイベント特定のサービスを選択し、リストからサービス名を選択します。これにより、1 つのサービスのみのイベントをモニタリングするルールが作成されます。たとえば、イベントのみをモニタリングするCloudWatch イベントように EC2 を選択できます。Amazon 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] を選択して、すべてのリソースに適用するルールを作成します。

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

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

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

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

  12. [詳細の設定] を選択します。

  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-EXAMPLEa1b2c3de4ID を持つインスタンス


          特定のCloudWatch イベントイベントについてのみAmazon EC2ルールを作成する方法のスクリーンショット。

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

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

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

リタイアが予定されている 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

    • イベントタイプの場合特定のヘルスイベント

    • Amazon EC2サービス

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

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

    • 任意のリソース

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

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

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

  6. ここに示すように、 を として、 {"Instances":"$.resources"}を入力テンプレートInputPathsMapとして、インプットトランスフォーマーを設定します{"InstanceId": <Instances>}

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

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

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

  1. IAM ポリシーを作成して、CloudWatch イベント 用の必要な IAM アクセス許可を設定します。次に、ポリシーを CloudWatch の IAM ロールに関連付けます。この例では、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::<AccountId>: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" } ] }