JAWS-UG GameTech #1 2022/06/14木村俊彦 / 株式会社インフィニットループIncident Managerでインシデント発生時のエスカレーションを自動化する
View Slide
● Incident Managerをエスカレーション目的で利用・運用しています● 導入に至った経緯● 検証してわかったこと● 等々お話します本日の内容
● 導入の経緯● 実際に構築● 運用前検証● まとめ目次
導入の経緯
● 新規構築時にエスカレーションの管理について検討● 「連絡がつかない場合」のエスカレーションをどうするか○ 特に休日や夜中など● 可能な限りAWS内で完結できないか検討経緯
● 本来はコンタクトセンターの構築運用向け● 「問い合わせフロー」と、それを起動するLambdaの組み合わせで検討● 電話番号の利用料+発信料金と料金もシンプル● 日本の携帯電話番号(090/080/070)への発信は制限解除申請が必要Amazon Connect
フローやLambdaを構築し検証
しかし...
● エスカレーションの各種管理をどうするかの設計が必要○ 順番、発信済みかどうかの管理、受諾したかどうかのチェック● 電話番号どこに保持するかの検討が必要○ メンバーの入れ替え時に番号も入れ替えが必要● 管理するリソースが多いのではないかという疑問○ フロー、Lambda、それら付随する様々○ 特にLambdaはメンテナンス性を考慮する必要がある検証してわかったこと
● 正確には AWS Systems Manager Incident Manager○ Systems Manager内のサービス● インシデントの起票や管理、呼び出し(エスカレーション)を行ってくれるサービス○ CloudWatch Alermと組み合わせれば自動化できる● SlackやAmazon Chimeとも連動● 対応プランの数に応じて課金○ インシデント起票時のテンプレートのようなものIncident Manager
● エスカレーション開始時に、「誰に」「どの方法で」「どの間隔で」通知するか設定できる● 通知先はメール・SMS・通話● 間隔やトータルの実行時間、件数はクォータの範囲内で設定エスカレーションプラン
これで行こう!
構築する
初期の構成
● アラートはIncident ManagerとSlackへ送信○ 回復通知はSlackのみ● 事前設定した対応プランに沿ってインシデントが開始● 対応プランに紐付けられた設定でエスカレーションも開始シンプルに設計
そんなある日
レベルによって調整したい+別システムにも通知してほしい
● 基本的な構図は変わらず● Alertからの橋渡しはEventBridge● 1つめのLambdaはレベルの切り分け○ EventBridgeから渡されたデータに基づいて判定○ それを元に対応プランとエンゲージメントを起動● 2つめのLambdaは別システムへの通知要望に合わせて改良
結局複雑なのでは...
● それぞれの処理はシンプル○ メインロジックは30行以内● 用途は異なるので、1つで済ませず、別々に構築Lambdaはシンプルに
● アラームとLambdaをルールで紐付けるのみ● 入力トランスフォーマーでレベルを付与EventBridgeもシンプルに
いざ検証
● Incident Managerからの通話は英語● アクティベーションの確認番号は聞き取れる● エスカレーション時の通話が辛い...○ とにかく早口で長い○ 通話中に「1」を押すと確認済みになり、「9」を押してしまうとリストから外されてしまう○ 周知することで対処通話が英語
● もしくは非通知、番号は変わる場合もある● いたずら電話と思われたり、拒否設定にしていると届かない可能性がある○ 許容できない場合は、Amazon Connectが選択肢になる● あらかじめ周知して対策○ 最悪取らなくてもチャットは見てほしい電話の発信元がアメリカ
● いきなり電話は考え物● 呼び出し時は最初メールで通知○ エンゲージメントを承認するコードが記載されている● それにも気づかれていないようであれば電話というフロー○ 間隔は10分~15分後順番を考慮する
● こだわりが少なければシンプルな構成○ 既存のアラートに埋め込める○ こだわっても何とかなるはず● 英語という壁こそありますが、乗り越えられれば最有力?● 一連のフローについては定期的に訓練という形で検証を行い、問題ないことを確認する予定○ 肝心な時に動かないのでは意味がない● ぜひ検証からはじめてみてはいかがでしょうかまとめ
● 木村俊彦 / @taiko19xx● 株式会社インフィニットループ● 主な業務○ バックエンド構築(PHP/C#) / インフラ構築(AWS)● 好きなゲーム○ Civilization / Age of Empires / Rize of Nations etc…● 好きなAWSのサービス○ LambdaとDynamoDB自己紹介
ありがとうございました