[アップデート] AWS Systems Manager Incident Manager でオンコールスケジュールを管理して、自動でオンコール状態の連絡先をインシデントにエンゲージ出来るようになりました

2023.03.29

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

いわさです。

AWS Systems Manager Incident Manager を使うと、検出されたイベントをインシデントとして管理し、解決までの時系列をトレースしたり事後分析したりすることが出来ます。
また、エンゲージメント機能を使うことで、人の介入や承認が必要なタイミングで特定の連絡先を割り当てて通知する機能もあります。

従来は次の記事のように連絡先を管理して、インシデントに直接連絡先をエンゲージメント設定したり、あるいはエスカレーションプランを構成して複数の連絡先を自動でエスカレーションさせることが出来ました。

これまでは、それぞれの連絡先がオンコール状態であるかの管理は出来なかったので、エンゲージメント設定する連絡先やタイミングによってはインシデントの対応スピードに影響が出る場合がありました。

本日のアップデートでオンコールスケジュールという機能が導入されました。

どの時間帯にどの連絡先がオンコール状態であるかを管理し、またローテーション出来るのでオンコールシフトのようなものをインシデントマネージャー上で定義し、エンゲージメント設定時にはスケジュールを選択することでオンコール状態の連絡先を自動で割り当てることが出来ます。

オンコールスケジュールを作成

まずはオンコールスケジュールというやつを作成してみましょう。
事前に適当な連絡先をいくつか作成済みです。有効なエンゲージメントチャネルなども設定済みです。

インシデントマネージャーのサブメニュー内に「オンコールスケジュール」というメニューが追加されていると思いますのでそちらを選択します。
画面によって「通話中スケジュール」というメニュー名に変わったりしているのですが、この記事では一旦「オンコール」という表現で統一したいと思います。

オンコールスケジュールメニューから新しいスケジュールを作成します。
スケジュールごとにローテーションルールを複数構成していきます。

1 つのスケジュールに作成出来るローテーションルールは最大 8 つまでです。
また、ローテーションの開始から終了までは最短 30 分からとなっています。

ローテーション毎に連絡先を設定します。
ローテーションごとに追加出来る連絡先は 30 人までとなっています。

今回は 2 つのローテーションを作成して適当に連絡先を分散してみました。

オンコールスケジュールの管理

作成したオンコールスケジュールの詳細情報から構成されたローテーションや、カレンダーを確認することが出来ます。

カレンダーではローテーションごとに対応可能な時間帯と連絡先が表示されています。

ローテーションには複数の連絡先を設定し、順番が設定されています。
hoge-rotation1 では連絡先 A と連絡先 B が設定されており、水曜始まりで 1 週間ローテーションとなっているため A と B が交互にカレンダー上に表示されています。

オーバーライドシフト

基本的にローテーションに従ったスケジュールとなっていますが、日付を選択して例外の設定が出来ます。
カレンダーの詳細から「オーバーライドシフト」を選択します。

3/31 の 15:00-18:00 に関しては、スケジュールされた B ではなく A をオンコールとするように更新します。

そうすると次のように指定した時間帯のみ例外的なオンコール体制を用意することが出来ます。
柔軟で良いですね。

オンコールスケジュールを使う

では実際にインシデントを作成し、先程用意したオンコールスケジュールを使ってみたいと思います。

まずは直接オンコールスケジュールを使うパターンです。
作成したインシデントのエンゲージメントを設定します。

通常はここで連絡先かエスカレーションプランを選択していましたが、オンコールスケジュールを選択出来るようになっています。

オンコールスケジュールをエンゲージさせると、連絡先 C が自動で割りあたっていることがわかると思います。
該当時間帯でオンコール状態だったのが連絡先 C のみだったためです。

インシデントのタイムラインを確認すると、オンコールスケジュールから連絡先 C が自動で割り当てられていることも確認が出来ますね。

また、連絡先 C のエンゲージチャネルに承認用のコードが送信されていることも確認出来ました。
連絡先 A と B には送信されていません。

エスカレーションプラン

先程は直接インシデントにオンコールスケジュールを割り当てました。
今回のアップデートではエスカレーションプランにもオンコールスケジュールを割り当てることが出来るようになっています。

また、エスカレーションプランにオンコールスケジュールを割り当てて、エンゲージさせる方法はインシデントマネージャーのベストプラクティスとして推奨されています。

As a best practice, we recommend adding contacts and on-call schedules as the escalation channels in an escalation plan. You should then choose an escalation plan as the engagement in a response plan. This approach provides the fullest coverage for incident response in your organization.

Working with on-call schedules in Incident Manager - Incident Manager より引用

使い方は簡単です。
エスカレーションチャネルとして連絡先と同様にオンコールスケジュールが追加出来るようになっています。

あとは先程と同様にインシデント発生時にエンゲージさせるのですが、エスカレーションプランを選択します。

タイムラインを確認すると、エスカレーションプランからオンコールスケジュールが参照され、そこから連絡先 C がエンゲージされていることが確認出来ると思います。

さいごに

本日は AWS Systems Manager Incident Manager でオンコールスケジュールを管理出来るようになったので試してみました。

オンコールスケジュールを使いこなすのでより迅速にインシデントに対応することが出来そうです。
というか AWS Systems Manager Incident Manager めちゃくちゃ良くないですか?こういう人が介入せざるを得ないところを極力自動化する仕組みとても好きですね。使いこなしたい。