EC2 Run Command のSNS通知をトリガーにしてジョブを実行する

Tips Trigger

Posted on Aug 5


はじめましてこんにちは、Cloud Automator の内田です。

先日のアップデートにて EC2 Run Command のステータス状況をCloudWatch Events または SNS を通じて通知できるようになりました。

今回は EC2 Run Command によるSNS通知についての簡単な紹介と、この機能を利用した Cloud Automator との連携についての紹介をしたいと思います。

EC2 Run Command によるSNS通知について

EC2 Run Command によるSNS通知の設定は、AWS マネジメントコンソール画面の [EC2→コマンド→コマンド履歴] にて新規にコマンドを実行する際に行えます。

EC2 Run Command を実行するための事前準備などは、公式のドキュメントをご確認ください。以降は、EC2 インスタンス上でEC2 Run Command が実行可能な状態を前提として記述していきます。

早速 [コマンドを実行] ボタンをクリックして設定を開始します。 Linux 上で ShellScript を実行するドキュメントを選択します。

コマンドを実行するEC2 インスタンスを選択して、実際に実行するコマンドを記述します。今回は Amazon Linuxnginx を新規にインストールして起動を行うコマンドを実行してみます。

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接続せずに実行できるので、実行結果の通知を活用することでより確実かつ簡単に操作を行えるようになります。

Cloud Automatorとの連携

EC2 Run Command によるSNS通知についての紹介をしましたが、SNSの通知先を Cloud Automator にすることで、Cloud Automator が用意している様々なアクションを行うことができます。

Cloud Automatorはリリース後も定期的に機能をリリースしているので、いくつものアクションをご用意しております

以下のように、SNSトリガーを使うとコマンドを実行したあとにさらに処理を行うような連携が簡単に実現出来るようになっています。

  1. こちら の記事を参考にSNSトリガーを使用したジョブを作成します。
  2. 以下のように EC2 Run Command による SNS 通知に利用する SNS TopicCloud Automator で払い出されたエンドポイントを Subscription として追加するだけで利用可能です。

コマンドが実行されてSNSへの通知が行われると、それをトリガーとしてジョブが実行されます。

例えば今回のようにEC2インスタンスに何かソフトウェアをインストールして、それが成功したらSNSで通知するとCloud Automatorの「AMIを作成」アクションが動作して指定したEC2インスタンスからAMIを作成したり、ELBにアタッチしたりすることが出来ます。

まとめ

EC2 Run Command によるSNS通知のリリースはユーザーにとって、これまで以上に簡単かつ確実に操作を行えるようになるだけでなく、外部のサービスやAWSの他サービスとの連携も行える素晴らしいリリースだと感じました。

Cloud Automator のユーザーにとっても、このように連携することで新しいトリガーとして使うことが出来ますので、是非ご活用下さい。



Search

Tags

By year

  1. 2016 (30)
  2. 2015 (31)
  3. 2014 (42)