はじめに

re:Invent2024で発表されたAmazon Q Business(生成AIアシスタント)とPagerDutyの連携機能について検証した内容を紹介します。
PagerDutyとAmazon Q Businessを連携させることで、インシデント対応を効率化できると期待される8つの機能が提供されています。今回、これらの機能の中から「Get incidents」機能を利用し、プロンプトから指示を出してPagerDutyインシデント状況のサマリを出力させることができたので紹介します。

PagerDutyとは

PagerDutyは、インシデント管理や運用の自動化を提供するプラットフォームで、システムの安定運用や障害対応の効率化を支援します。

Amazon Q Businessとは

Amazon Q Businessは、生成AIを活用して企業の業務効率を支援するツールです。クラウド上でデータから洞察を得て、業務の効率化を図ることができます。
Amazon QおよびAmazon Q Businessについては、以前書いた個別記事もありますので、こちらも参考にしてください。

今回アップデートされた機能

Amazon Q Businessを使って、PagerDutyのインシデント情報を取得する機能です。
Amazon Q Businessは、PagerDutyなどの外部アプリケーションと連携し、インシデント管理タスクを直接実行できるようになりました。
これにより、ユーザーはAmazon Qのチャットインターフェースから直接PagerDutyのインシデント情報にアクセスし、管理することができます。

利用できるPagerDutyの機能

Amazon Q BusinessとPagerDutyのプラグインで提供される機能は以下の8つです。

  1. Get incidents:自分のアカウント内のインシデントを表示する。
  2. Similar incidents:特定のインシデントに類似したインシデントを見つける。
  3. Root cause incident:インシデントの根本原因を調査する。
  4. Find recent changes:サービス内で最近変更があったかを確認する。
  5. Who is on-call:インシデント対応中のオンコール担当者を確認する。
  6. Status update on incident:インシデントのステータス更新を書き込む。
  7. Customer impact:インシデントが顧客に与える影響を調査する。
  8. Update incident:インシデント情報を更新する。

設定手順

公式ドキュメント
途中で詰まった点もあったので、手順を共有します。
AWS側とPagerDuty側の設定は、同時に進めていく形になります。

AWS側: Amazon Q Businessコンソールでアプリケーション作成

Amazon Q Businessコンソールを開き、Applications を作成します。

作成したQ Businessアプリを開き、左側のメニューから Plugins を開き、Add plugin をクリックしてプラグインを追加します。

「PagerDuty Advance」を選択します。

OAuth2.0 Authorization の設定で「Create and use a new secret」を選択し、AWS Secrets Manager に認証情報を保存します。

「Client ID」と「Client secret」はPagerDuty側のアプリ作成後に表示されるものなので、PagerDutyのアプリを作成します。

PagerDuty側: OAuth 2.0 アプリケーション作成

PagerDuty の開発者コンソール(例:https://○○○.pagerduty.com/developer/applications/)にアクセスし、+ New App をクリックします。
アプリケーション名や説明を入力し、認証タイプとして OAuth 2.0 を選択します。
認証タイプは Classic User OAuth を選択します。

Scoped OAuthは細かい単位(リソース単位)でアクセス権を設定できますが、インシデント情報へのアクセスでデータ取得ができない問題が発生しました。すべてのリソースにフル権限を付与しても解消されなかったため、AWSサポートに問い合わせて確認する予定です。

Redirect URL(例: https://〇〇/oauth/callback)を入力します。
〇〇はAmazon Q側の指定したエンドポイントです。

Permission Scope(権限スコープ)は Read & Write を選択します。
Amazon Q Business との連携には、write スコープが必要です。

Register App をクリックしてアプリケーションを作成します。

アプリケーション作成後、クライアントID と クライアントシークレット が表示されます。これらの情報は、Amazon Q Business の設定時に必要となるため、安全な場所に保存してください。

AWS側: PagerDutyのアプリ作成後にクライアントIDとシークレットを設定

PagerDuty側でアプリを作成後、表示される「Client ID」と「Client secret」をAmazon Q Businessに入力します。

作成したシークレットを選択します。

必要項目を入力します。以下のURLは固定です。

  • Domain URL: https://api.pagerduty.com
  • Access token URL: https://identity.pagerduty.com/oauth/token
  • Authorization URL: https://identity.pagerduty.com/oauth/authorize

AWS側: サブスクリプションの設定

アプリケーションへのアクセス権を持つグループとユーザーを追加・割り当てます。
プラグイン機能を利用するには、Amazon Q Business Proプランが必要です。

これで、Amazon Q Business から PagerDuty の機能を利用する準備が整いました!🎉

試してみた内容

Amazon Q Businessを利用して、自分のPagerDutyアカウント内のインシデント情報を取得する「Get incidents」を試しました。
プロンプトとして「今日1日で発生したインシデント数が多いサービスの上位3つを教えてください」と投げたところ、3つのサービスが返されました。

結果が正しいか確認したところ、件数は実際より少ないものの、サービス名は合っているようでした。確かに本日インシデントが多く発生しているサービスが含まれており、インシデント状況の把握には有用だと感じました。

所感

現時点では一部の機能のみ確認できましたが、インシデント情報を素早く取得できる点は便利だと感じました。
正確な回答が得られない場合もあるため、今後はAWSの改善状況を確認しつつ、プロンプトの工夫を試していきたいと思います。
今回試せなかった機能についても、引き続き確認していく予定です。