Posted on Aug 5
はじめましてこんにちは、Cloud Automator の内田です。
先日のアップデートにて EC2 Run Command のステータス状況をCloudWatch Events または SNS を通じて通知できるようになりました。
今回は EC2 Run Command によるSNS通知についての簡単な紹介と、この機能を利用した Cloud Automator との連携についての紹介をしたいと思います。
EC2 Run Command によるSNS通知の設定は、AWS マネジメントコンソール画面の [EC2→コマンド→コマンド履歴]
にて新規にコマンドを実行する際に行えます。
EC2 Run Command を実行するための事前準備などは、公式のドキュメントをご確認ください。以降は、EC2 インスタンス上でEC2 Run Command が実行可能な状態を前提として記述していきます。
早速 [コマンドを実行]
ボタンをクリックして設定を開始します。 Linux
上で ShellScript
を実行するドキュメントを選択します。
コマンドを実行するEC2 インスタンスを選択して、実際に実行するコマンドを記述します。今回は Amazon Linux
に nginx
を新規にインストールして起動を行うコマンドを実行してみます。
yum install -y nginx
chkconfig nginx on
service nginx start
最後にコマンドの実行結果用のS3バケットと、通知を行うための SNS Topic ARN
と、このSNS通知を実行するための IAM Role ARN
を指定します。
IAM Role
については権限が適切に設定されていないと、SNSへの正常に通知が行われないので注意が必要です。
また IAM Role
の権限が適切なのにもかかわらず、以下のようなエラーが出る場合は 信頼関係
が不足している可能性が考えられます。 公式のドキュメントをご確認ください。
実行が成功すると以下の画面が表示され、指定した SNS Topic
に通知がされているかと思います。
{"commandId":"af5e5032-087f-49ab-a1e2-fa829bb8be63","documentName":"AWS-RunShellScript","expiresAfter":"2016-08-04T09:11:27.390Z","outputS3BucketName":"run-cmd","requestedDateTime":"2016-08-04T09:01:27.390Z","status":"Success","eventTime":"2016-08-04T09:01:28.526Z"}
事前に多少の準備が必要ですが、1度作業を行えばあとは簡単にコマンドを実行してSNSで通知を行うことができます。コマンドの実行ではEC2にSSH接続せずに実行できるので、実行結果の通知を活用することでより確実かつ簡単に操作を行えるようになります。
EC2 Run Command によるSNS通知についての紹介をしましたが、SNSの通知先を Cloud Automator にすることで、Cloud Automator が用意している様々なアクションを行うことができます。
Cloud Automatorはリリース後も定期的に機能をリリースしているので、いくつものアクションをご用意しております。
以下のように、SNSトリガーを使うとコマンドを実行したあとにさらに処理を行うような連携が簡単に実現出来るようになっています。
EC2 Run Command
による SNS 通知に利用する SNS Topic
に Cloud Automator
で払い出されたエンドポイントを Subscription として追加するだけで利用可能です。コマンドが実行されてSNSへの通知が行われると、それをトリガーとしてジョブが実行されます。
例えば今回のようにEC2インスタンスに何かソフトウェアをインストールして、それが成功したらSNSで通知するとCloud Automatorの「AMIを作成」アクションが動作して指定したEC2インスタンスからAMIを作成したり、ELBにアタッチしたりすることが出来ます。
EC2 Run Command によるSNS通知のリリースはユーザーにとって、これまで以上に簡単かつ確実に操作を行えるようになるだけでなく、外部のサービスやAWSの他サービスとの連携も行える素晴らしいリリースだと感じました。
Cloud Automator のユーザーにとっても、このように連携することで新しいトリガーとして使うことが出来ますので、是非ご活用下さい。