SQSとCloud AutomatorによるEC2の起動停止制御を検証してみた

記事タイトルとURLをコピーする

はじめに

こんにちは!加齢による体力の低下に危機感を覚えているCS2課オールドルーキー有川です。 老眼にはびっくりしてます。ちょっと暗いともう携帯の漫画アプリの吹き出し文字が読めない・・・。

この記事の目的

さて、いきなり老化ネタぶっこんでしまいましたが気を取り直して。 この記事では、Amazon SQSと弊社サービスのCloudAutomatorを用いて、EC2の起動と停止を制御する方法を記載します。 検証ではSQSは手動でメッセージを飛ばしますが、ここに至るまでの前段の作りこみを行う事で、CloudAutomatorで制御可能な全てを制御可能です。 CloudAutomatorで制御可能なリソースなど、詳細についてはこちらをご覧いただければと思います。

検証リソース構築

本検証に必要な、作成が必要なリソースは以下3種です。

SQSのキュー

SQSキューは、標準キューで作成しないとCloudAutomatorで読み込むことが出来ない制約がありますのでご注意下さい。 (FIFOキュー使用不可)

制御先となるEC2

特に注意事項はありません。本検証では起動停止が確認出来れば良いだけなので、何も特殊なことはせず設置しています。

CloudAutomatorのジョブ

CloudAutomatorのジョブを作成しておきます。

動作検証(起動)

SQSの管理画面からキューを飛ばします。キューの中身は何でも構いませんが、記載は必須です

以下のようなメッセージが出れば送信成功です

EC2が起動したことを確認します

SQSメッセージにより、EC2の起動を行うことが出来ました。

動作検証(停止)

SQSの管理画面からキューを飛ばします。キューの中身は何でも構いませんが、記載は必須です

以下のようなメッセージが出れば送信成功です

EC2が停止したことを確認します

SQSメッセージにより、EC2の停止を行うことが出来ました。

終わりに

本検証ではSQSをキッカーに、CloudAutomatorのジョブ自動化を検証しました。 通常このような構成はSNSトピックからのメッセージやEventBridgeによるcron的なタイマーで制御するのが一般的かと思いますが、CloudAutomatorではSQSをキッカーに設定することが可能です。 これにより、SQSの特徴であるメッセージの受け取り信頼性を活用したジョブ制御システムを構築することが出来ます。 SQSの前段にLambdaやAPI Gateway、SNSなどを用いて作りこむことでより複雑な要件にも対応出来ると思います。 本検証が皆様のお仕事を減らす手助けになれば幸いです。

ありかわ りゅうた(執筆記事の一覧)

カスタマーサクセス部 CS2課

2024年11月中途入社
自動車、釣り、キャンプ、ギターが趣味です。
経験こそ至高と思っているので、趣味的な事柄は何でも手を出します。
妻(パート)と娘(小学低学年)と息子(小学高学年)と犬(ゴールデンレトリバー)と猫(ミックス)で暮らす日々が煩わしくてうるさくて面倒くさいのに、かけがえの無いものなのが不思議です。