Run Commandでシェルを実行、その結果をメール通知
(やったこと)
・AWS Systems ManagerのRun CommandからEC2へPowerShellのコマンドを投げる
・その結果をAmazon SNSでメール通知
ここでいう「結果」とは、PowerShell実行の「成功」「失敗」であり、EC2上で実行されたPowerShellの結果が通知されるものではなかった・・・この検証を始めた目的は、「EC2上で実行されたPowerShellの結果を通知させる」だったので残念な結果となりました。
(流れ、手順)
- SNS、IAM関連の設定
下記サイトを参考に、SNS、IAMポリシー、ロールの設定を行います。私は「タスク5」の設定を間違ったため、「ハマり」ました。SNSからのメールが届かず何度も設定を見直しました。
- Systems Manager Run Command の設定
Systems Manager の画面より、Run Command を選択します。
Run Command より、EC2上で実行したスクリプトを選択します。今回はWindowsOSなので、PowerShellを検索します。
上記を選択後、EC2のWindowsOS上で流したいコマンドを入力します。今回はCドライブの容量をチェックしたかったので、「fsutil」を実行します。 次の対象のEC2を選択します。 SNS及びロールを紐づけます。 以上で設定完了です。Run Commandを実行し、その結果を確認する画面が以下です。 EC2のCドライブの状況を確認できました。その結果の通知メールが以下です。 冒頭に記載したように「Run Command」の実行結果が通知され、Cドライブの状況は記載がありませんでした。ロール、ポリシー関連で「ハマった」ため時間がかかった上に、期待した結果が得られず、とても疲れました。