0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWS Systems Manager Documents (Automation runbook) で自動開閉局を実装してみた

0
Posted at

001samune.png

概要

外部公開しているサイトにおいて、日時開閉局が必要というシステム要件を想定した自動開閉局の構成をAWS Systems Manager Documents (Authomation runbook) を使って実装してみました。


システム概要

  • 環境コードは以下 GitHub にあげてますので、よかったら覗いてみてください

システム構成

システム構成図は以下の通りです。
フロントに ALB をおき、バックエンドの EC2 が静的ページを返すだけのシンプルな構成です。
監視を想定して AWS User NotificationsEC2 のプロセス監視を担う CloudWatch Alarm を検知するようにしています。

architecture.drawio.png

自動開閉局構成

流れは以下のとおりです。

  1. サイトの稼働時間を Systems Manager Change Calender で管理
  2. Change Calender から発行されたイベントを EventBridge で検知
  3. 開閉局を実施する Systems Manager Documents (Automation runbook) を実行
  • Change Calender はカレンダーへ登録した時刻に対して OPEN or CLOSED のイベントを EventBridge に連携してくれます
  • もしくは GetCalenderState API により直接 OPEN or CLOSED を返してくれます

Documents (Automation runbook) 構成

ワークフローの全体構成は以下の通りです。

EventBridge からキックされた後、GetCalenderState API でカレンダーの状態が OPEN or CLOSED かを取得し分岐させます。

開局閉局の肝は、ALB の固定レスポンスを返すリスナールールの優先度を変更してる点です。
また今回の構成上、User Notifications の通知構成に関連付けている配信チャネルの登録・解除をスクリプトで実装しています。User Notifications の裏では EventBridge Rule が動いているのですが、このルールはAWS管理のもので無効化・削除ができません。そのため閉局時の通知抑止のためこのようにしています。

Custom-AutoOpenClose.png


動作確認

閉局

Change Calender に登録したイベントの時刻を、数分後に終了するようにしています。
image.png

イベント終了時刻になったタイミングでイベントが発行されて、作成したEventBridge Rule が検知して Documents を実行してくれています。
image.png

実際にサイトを確認してみると固定レスポンスになっています。
image.png

開局

続けて確認するため、イベントの時刻が作業時刻を含むように修正します。
image.png

すると Change Calender のステータスが CLOSEDOPEN に変わり、作成したEventBridge Rule が検知して Documents を実行してくれています。
image.png

実際にサイトを確認してみると、静的ページを返してくれます。
image.png


おわりに

今回は AWS Systems Manager Documents (Automation runbook) で自動開閉局を実装してみました。
Documents でワークフローを組みましたが、Step Functions でも同様に組めます。

Documents には、Step Functions にある Catch がないのと、ステートをループさせることができない点が惜しいですが、今回のように一方向のフローだけならシンプルに組めるのでおすすめです。


🌟この記事が誰かの役に立てば幸いです!
また、ご質問やフィードバックもお待ちしています。


参考資料

リファレンス

ブログ

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?