AWS Systems ManagerのAutomationとChange Calendarが統合されました
AWS Systems Manager AutomationとAWS Systems Manager Change Calendarが統合されました。
これにより、カレンダーで指定した期間のみAutomationの実行を許可/拒否できるようになるので、検証してみました。
アップデート概要
- AWS Systems Manager AutomationとAWS Systems Manager Change Calendarが統合された
- これまでは、ドキュメントでカレンダーをチェックする処理をユーザが実装する必要があったが、今回のアップデートでオートメーションとカレンダーを関連付けることで、ユーザが実装することなく手軽に統合できるようになった
オートメーションを実行する
統合前にAutomationを実行して挙動を確認します。
テスト用のEC2インスタンスを用意します。
「AWS Systems Manager」→「オートメーション」→「オートメーションの実行」を押下します。
EC2インスタンスを再起動するドキュメント「AWS-RestartEC2Instance」が標準で用意されているので、今回はそれを使用します。
入力パラメータで用意したEC2インスタンスを選択して実行します。
しばらく待つと実行が完了します。
カレンダーを設定する
それでは、カレンダーを設定して先ほどの手順を実行してみます。
「オートメーション」→「設定」→「設定」を押下します。
「Turn on Change Calendar integration」にチェックを入れます。
「Create Change Calender」を押下します。
今回は、カレンダータイプを「デフォルトで開く」にして作成します。
カレンダータイプは以下の違いがあるので、要件に応じて設定するとよいです。
- 「デフォルトで開く」はイベント期間中は実行を拒否
例えば、メンテナンスやリリース作業の時間帯は実行拒否したい場合に、拒否する時間帯をイベントとして登録 - 「デフォルトで閉じる」はイベント期間中のみ実行を許可
例えば、実行頻度が低く限られた時間帯に実行許可したい場合に、許可する時間帯をイベントとして登録
カレンダーが作成できたので、イベントを作成してみます。
今回のカレンダータイプは「デフォルトで開く」なので、イベントスケジュールの時間帯は実行を拒否できます。
イベントが作成されました。
オートメーションの画面で作成したカレンダーを選択し、保存します。
オートメーションの実行拒否を確認
先ほどオートメーションを実行した手順で、「AWS-RestartEC2Instance」を実行してみます。
すると、「Cannot Start Automation Execution because calendar(test-calender) is in CLOSED state」と表示され実行が拒否されました。
Change Managerの実行拒否を確認
AWS Systems ManagerにはChange Managerという機能があり、オートメーションに承認機能を追加したものです。
このChange Managerも同様に実行拒否されるのか確認します。
Change Managerテンプレートを作成します。
ランブックは「AWS-RestartEC2Instance」を指定します。
このテンプレートでリクエストを作成します。
ランブックのパラメータは、テスト用のEC2インスタンスを選択します。
リクエストを作成しました。
指定した承認者の画面で、「承認」を押下します。
ステータスが「完了 (エラーあり)」と表示されています。
詳細を確認すると、「Failed to start runbook due to: Cannot Start Automation Execution because calendar(test-calender) is in CLOSED state」と表示され実行が拒否されました。
まとめ
オートメーションやChange Managerは便利ですが、メンテナンスやリリース作業時には実行して欲しくない要件があると思います。
これまでは、ドキュメントでカレンダーをチェックする処理をユーザが実装する必要がありましたが、今回のアップデートで手軽に統合ができるようになりました。
本番環境に対するリスク低減や内部統制の観点でも、非常に使い勝手が良い機能だと思います。