あまぶろぐ

インフラと趣味のゆるいブログ

Run Commandでシェルを実行、その結果をメール通知

(やったこと)

AWS Systems ManagerのRun CommandからEC2へPowerShellのコマンドを投げる
・その結果をAmazon SNSでメール通知

ここでいう「結果」とは、PowerShell実行の「成功」「失敗」であり、EC2上で実行されたPowerShellの結果が通知されるものではなかった・・・この検証を始めた目的は、「EC2上で実行されたPowerShellの結果を通知させる」だったので残念な結果となりました。

 

(流れ、手順)

  1. SNS、IAM関連の設定
    下記サイトを参考に、SNS、IAMポリシー、ロールの設定を行います。私は「タスク5」の設定を間違ったため、「ハマり」ました。SNSからのメールが届かず何度も設定を見直しました。

    docs.aws.amazon.com

  2. Systems Manager Run Command の設定
    Systems Manager の画面より、Run Command を選択します。

    f:id:risooh:20210715223002p:plain

    Systems Manager
    Run Command より、EC2上で実行したスクリプトを選択します。今回はWindowsOSなので、PowerShellを検索します。

    f:id:risooh:20210715223353p:plain

    PowerShellで検索

    f:id:risooh:20210715223450p:plain

    PowerShellを実行できるコマンド
    上記を選択後、EC2のWindowsOS上で流したいコマンドを入力します。今回はCドライブの容量をチェックしたかったので、「fsutil」を実行します。

    f:id:risooh:20210715223603p:plain

    コマンド
    次の対象のEC2を選択します。

    f:id:risooh:20210715223734p:plain

    EC2を選択
    SNS及びロールを紐づけます。

    f:id:risooh:20210715223829p:plain

    以上で設定完了です。Run Commandを実行し、その結果を確認する画面が以下です。

    f:id:risooh:20210715223933p:plain

    結果
    EC2のCドライブの状況を確認できました。その結果の通知メールが以下です。

    f:id:risooh:20210715224033p:plain

    メール
    冒頭に記載したように「Run Command」の実行結果が通知され、Cドライブの状況は記載がありませんでした。ロール、ポリシー関連で「ハマった」ため時間がかかった上に、期待した結果が得られず、とても疲れました。