[レポート] ChatOps でインシデント管理を自動化するセッションに参加してみた #AWSreinvent #COP313

re:Invent 2023 の COP313 | Automate incident management of modern workloads using ChatOps に参加してきました!初めて Chatbot を使ったので、とても新鮮でした! 帰ってから権限周り再度見直してみたくなりました!
2023.11.28

こんにちは! AWS 事業本部コンサルティング部のたかくに(@takakuni_)です。

re:Invent 2023 でラスベガスにきています。

「Automate incident management of modern workloads using ChatOps」という、 ChatOps の面白そうなワークショップがあったので参加してみました。また、 ChatBot を触ったことなかったので、試してみたく参加しました。

セッション概要

タイトル

COP313 | Automate incident management of modern workloads using ChatOps

説明

It’s critical to act quickly and efficiently to address issues, minimize outages, and improve incident response. In this builders’ session, learn how to implement ChatOps using AWS services, including AWS Chatbot and AWS Systems Manager, and popular communication and collaboration platforms, such as Microsoft Teams and Slack. Explore how you can implement chat-driven operational workflows to assist in diagnosing and remediating operational issues of modern workloads. You must bring your laptop to participate.

スピーカー

  • Abhijit Barde
    • Principal Product Manager
    • AWS
  • Nitin Verma
    • Sr.Manager, Solutions Architecture
    • AWS
  • Rodney Bozo
    • Sr.Solutions Architect
    • AWS
  • Shashi Pemmasani
    • Sr.Specialist Solutions Architect
    • AWS
  • Terri Johnson
    • Principal Specialist Solutions Architect
    • AWS

内容

アジェンダ

  • Module 1: Configuring AWS Chatbot in chat channels to monitor and operate AWS accounts
  • Module 2: Configuring observability (alert notifications)
  • Module 3: Initial triaging
  • Module 4: Root cause analysis and remediation

構成図

構成図は以下の通りです。今回のハンズオンは Teams または Slack のどちらかをクライアントとして選べる形式でした。最近、 Teams を触る機会が多くなったため、 Teams でハンズオンを進めました。バナナの在庫システムの SRE として、障害時の ChatOps システムを作成するシナリオでした。

※各モジュールに構成図が添付されていたのですが時間内に終われず保存できませんでした...

Configuring AWS Chatbot in chat channels to monitor and operate AWS accounts

モジュール1 ではチャネル( Teams チャンネル) と ChatBot をつなげる部分でした。チャンネルのリンク 1 つでリンクできる部分大変便利だなと感じました。

また、チャネルロール, ユーザーレベルのロール, チャネルガードレールポリシー の違い、ユースケースなどが細くしてあり初心者でもわかりやすい内容でした。

Configuring observability (alert notifications)

バッチ処理を担う ECS タスクのメトリクスと在庫確認 API を担う Lambda に対して、SNS 通知を設定しました。モジュール 2 では SNS の宛先に Chatbot を指定することで、後続のチャネルに通知を飛ばす仕組みを理解しました。 CloudWatch Event から Chatbot までの仕組みが字どかされているポイントが実践的だなと思いました。

Initial triaging

通知結果を Teams に送る処理ができたため、モジュール3 では実際に通知を飛ばしてみます。

S3 でホスティングされた静的ページから API Gateway + Lambda を実行し在庫を確認します。バッチ処理がうまく動いていないため、エラーが Teams に送信されていることがわかります。

トリアージ手法として、 SSM Run Command のドキュメントを登録し、バッチ処理の再実行を行いました。

今後アラートが発生した時ボタン1つで、処理の自動化できる部分とても便利に思いました。

「Run Command で再起動して終わり!」と見せかけて、Run Command が失敗します。

Root cause analysis and remediation

モジュール4では Run Command が失敗した原因を調査します。 Run Command の実行ログを Teams で確認し、事象を解決するための SSM Document を登録します。なぜ起動しないのか含めて、実際にハンズオンしていただけると良いのかなと思いました。

まとめ

以上、「ChatOps でインシデント管理を自動化するセッションに参加してみた」でした。

インシデント発見から通知までの自動化、細かく修正することなくリッチな通知内容の可視化あたりが Chatbot の素晴らしいところだなと思いました。そのまま AWS CLI を Teams から実行もできるみたいなので、お家に帰ってロールまわりを後で学習してみたくなる内容でした。

前提知識も難易度もそこまで求められているわけではなかったため、さくっとハンズオンしたい!方向けのセッションだったと思います。

この記事がどなたかの参考になれば幸いです。AWS 事業本部コンサルティング部のたかくに(@takakuni_)でした!

あとがき

セッションをクリアした時、バナナが会場でもらえました。(海外オフラインらしいなと思いました)