CloudWatch アラームをモニタリングするための Automation の設定
CloudWatch アラームをモニタリングするように Automation ランブック実行を設定できます。指定されたアラームが ALARM 状態になると、Automation は実行を停止します。レート制御モードを使用している実行や、複数のアカウントで行われている実行の場合、Automation は保留中のすべての実行をキャンセルします。ランブックで onCancel ステップを定義すると、これらのステップは実行が終了する前に実施されます。これにより、モニタリング対象のリソースに異常がある場合にランブックが続行されるのを防ぐことができます。
開始する前に
CloudWatch アラームモニタリングを設定する前に、以下の前提条件を満たしてください。
-
CloudWatch アラームの作成 – Automation 実行の影響を受けるリソースをモニタリングするアラームを作成してください。詳細については、「Using Amazon CloudWatch alarms」(Amazon CloudWatch アラームを使用する) を参照してください。
-
実行 ID アクセス許可の設定 – Automation で使用される実行 ID には、CloudWatch アラームモニタリングが正しく機能するための次のアクセス許可が必要です。
-
cloudwatch:DescribeAlarms– アラームの状態をモニタリングするために必要です。 -
ssm:StopAutomationExecution– アラームがアクティブ化されたときに実行を停止するために必要です。
実行 ID は、オートメーションランブックの
assumeRoleフィールドで指定された IAM ロール ARN によって決まります。assumeRole値を指定しない場合、ランブックはStartAutomationExecutionを呼び出した IAM プリンシパルの ID を使用して実行されます。 -
次の例は、CloudWatch アラームモニタリングに必要なアクセス許可を付与する最小限の IAM ポリシーを示しています。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudwatch:DescribeAlarms", "ssm:StopAutomationExecution" ], "Resource": "*" } ] }
アラームモニタリングの設定 (コンソール)
Systems Manager コンソールからオートメーションを開始するときに CloudWatch アラームモニタリングを設定するには、次の手順に従います。
アラームモニタリングを設定するには
AWS Systems Manager コンソール (https://console.aws.amazon.com/systems-manager/
-
ナビゲーションペインで [オートメーション] を選択します。
-
[Execute automation (自動化の実行)] を選択してください。
-
ランブックを選択し、実行の入力パラメータを設定します。
-
[CloudWatch アラーム] セクションで、実行中にモニタリングするアラームを選択します。
-
(オプション) Automation がアラームを取得できない場合に動作を制御するには、[アラーム状態を取得できない場合にオートメーションを続行する] をトグルします。有効になっている場合、アラーム状態が判断不能でも実行は続行されます。無効 (デフォルト) になっている場合、アラーム状態を取得できないと実行は停止します。
-
[実行] を選択してください。
アラームモニタリングの設定 (AWS CLI)
aws ssm
start-automation-execution コマンドがある --alarm-configuration パラメータを使用して、モニタリングする CloudWatch アラームを指定します。
--alarm-configuration パラメータは、次のフィールドがある JSON 構造を受け入れます。
-
Alarms(必須) – モニタリングする CloudWatch アラームを識別するNameフィールド付きアラームオブジェクト。 -
IgnorePollAlarmFailure(オプション、ブール値) – Automation がアラーム状態を取得できない場合の動作を制御します。アラーム状態が判断不能の場合に実行を停止する場合はfalse(デフォルト) に、とにかく実行を続行する場合はtrueに設定します。
次の例では、my-alarm という名前の CloudWatch アラームをモニタリングするオートメーションを開始します。IgnorePollAlarmFailure が false に設定されているため、アラーム状態を取得できない場合はオートメーションが停止します。
aws ssm start-automation-execution \ --document-name "AWS-RestartEC2Instance" \ --parameters '{"InstanceId":["i-02573cafcfEXAMPLE"]}' \ --alarm-configuration '{"IgnorePollAlarmFailure":false,"Alarms":[{"Name":"my-alarm"}]}'
クロスアカウントとクロスリージョンのアラームモニタリング
複数のアカウントとリージョンに渡って実行されるオートメーションの場合、TargetLocations 内の TargetLocationAlarmConfiguration フィールドを使用して、ターゲットの場所ごとにアラームモニタリングを設定できます。各ターゲットアカウントの実行ロール (AWS-SystemsManager-AutomationExecutionRole など) には、アクセス許可 cloudwatch:DescribeAlarms と ssm:StopAutomationExecution が必要です。
クロスアカウントロールの設定の詳細については、「マルチリージョンおよびマルチアカウントのオートメーションのための管理アカウントアクセス許可の設定」を参照してください。