概要
今回は HTTP トリガーと SQS トリガーの使い方の例をご紹介したいと思います。
AWS で環境を構築する上での設計方針の1つに Design For Failure (障害に備えた設計) というものがあるように、AWS を使っていても障害に備えなければなりません。
例えばお使いの EC2 インスタンスが稼働している物理サーバに障害が発生する場合もあるので、障害の影響を受けた EC2 インスタンスを監視サーバーと Cloud Automator を使って復旧させる方法をご紹介したいと思います。
構成例
今回ご紹介する全体構成は以下のようになります。
監視サーバーが EC2 インスタンスの監視に失敗すると、Cloud Automator に HTTP リクエストを送ってEC2インスタンスの停止をします。
Cloud Automator は EC2 インスタンスの停止が完了すると SQS にメッセージを送り、さらにそのメッセージをトリガーにして EC2 インスタンスの起動をします。
Cloud Automator で作成するジョブ
Cloud Automator では以下のように HTTP トリガーと SQS トリガーの2つのジョブを作成します。
ポイントは「EC2: インスタンスを停止」ジョブの実行後の処理で SQS にメッセージを入れること、「EC2: インスタンスを起動」のジョブでは先ほどと同じ SQS をトリガーに指定することです。
こうする事で Cloud Automator でジョブを数珠つなぎにして実行させる事が出来ます。
EC2: インスタンスを停止ジョブ

EC2: インスタンスを起動ジョブ
Cloud Automator は AWS のリソースを操作するジョブの実行に特化したサービスとなります。
そのため、既存の監視サーバーや、ジョブ管理サーバとも親和性が高いと思います。