EC2 Run Command でコマンドを実行した後に Cloud Automator でアクションを実行する

 

この記事では EC2 Run Command による SNS 通知についての簡単な紹介と、EC2 Run Command を利用した Cloud Automator との連携についてご紹介します。

EC2 Run Command では、コマンドの実行結果を CloudWatch Events または SNS を通じて通知することが可能です。
SNSの通知先を Cloud Automator にすることで、Cloud Automator が用意している様々なアクションを行うことができます。

以下のように Cloud Automator で SNS トリガーを使うと、コマンドを実行したあとにさらに処理を行うような連携が簡単に実現できます。

ec2-run-command-trigger-using-sns-08.png

 

 

設定手順

EC2 Run Command の事前設定について

EC2 Run Command を実行するための事前準備などは、公式のドキュメントをご確認ください。

以降の説明では、EC2 インスタンス上で EC2 Run Command が実行可能な状態を前提として記述していきます。

 

Cloud Automator で SNS トリガーのジョブを作成

ここでは、EC2 Run Command でコマンドを実行した後に Cloud Automator で実行するジョブを作成します。
SNS トリガーを使ったジョブの作成方法は、下記マニュアルをご参照ください。


EC2 Run Command の設定

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

ec2-run-command-trigger-using-sns-01.png

 

Linux 上で ShellScript を実行するドキュメントを選択します。

ec2-run-command-trigger-using-sns-02.png


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

yum install -y nginx
chkconfig nginx on
service nginx start

ec2-run-command-trigger-using-sns-03.png


コマンドの実行結果用のS3バケットと、通知を行うための SNS Topic ARN ( 「Cloud Automator で SNS トリガーのジョブを作成」の手順で作成した Topic ) と、この SNS 通知を実行するための IAM Role ARN を指定します。
[ Run ] ボタンをクリックします。

ec2-run-command-trigger-using-sns-04.jpg




実行が成功すると以下の画面が表示され、指定した SNS Topic に通知がされているかと思います。

ec2-run-command-trigger-using-sns-07.png

 

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

 

EC2 Run Command と Cloud Automator を連携するメリット

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

事前に多少の準備が必要ですが、1度作業を行えばあとは簡単にコマンドを実行して SNS で通知を行うことができます。
コマンドの実行では EC2 に SSH 接続せずに実行できるので、実行結果の通知を活用することでより確実かつ簡単に操作を行えるようになります。

 

注意点

「EC2 Run Command の設定」 手順で指定する IAM Role については、権限が適切に設定されていないと SNS への正常に通知が行われないので注意が必要です。

ec2-run-command-trigger-using-sns-05.png 

また IAM Role の権限が適切なのにもかかわらず、EC2 Run Command 実行時に以下のようなエラーが出る場合は 信頼関係 が不足している可能性が考えられます。
公式のドキュメントをご確認ください。

ec2-run-command-trigger-using-sns-06.png

 

この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています
他にご質問がございましたら、リクエストを送信してください