7
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Amazon Q Developerを利用してSlackからAWSサービスのデータをクエリしてみた

Last updated at Posted at 2025-08-06

こんにちは。株式会社日本オープンシステムズの坂高です。
この記事は「2025 Japan AWS Jr. Chanpions 夏のQiitaリレー 」の34日目の記事です。

過去の投稿(リンク集)はこちらからご覧ください!

はじめに

2025年7月9日、AWS マネジメントコンソールのAmazon Q Developerチャット機能において、AWS のサービスに保存されているデータを直接クエリして分析できるようになりました。

また、2025年7月31日に多言語サポートを拡大し、 AWS マネジメントコンソールのAmazon Q Developerで日本語対応が可能となりました。

これにより、SlackやTeamsから自然言語での会話によるクエリが容易になりました。
本記事では、実際にSlackから自然言語でAmazon DynamoDB テーブル内のレコード取得を試してみようと思います。

Amazon Q Developer in chat applications (旧称: AWS Chatbot)とは

AWS Chatbot は、Microsoft Teams および Slack チャンネルで AWS のリソースをより簡単にモニタリングおよび操作できるようにしてくれるインタラクティブエージェントです。AWS Chatbot を使用することで、アラートを受信することや、診断情報の取得、AWS Lambda 関数の呼び出し、AWS サポートケースの作成を行うコマンドを実行することができ、チームでの共同作業やイベント対応がさらに迅速になります。

とのことです。
CodeBiuildのビルド状態やEC2インスタンスの起動/停止をSlackで通知するなど、ChatOpsを実現するためのサービスです。

ChatOpsとは、主にチャットツール(Slack、Microsoft Teams、Mattermostなど)を用いて、ITオペレーションや開発プロセスを管理・自動化する技術や手法のことです。

なお、 AWS Chatbot は2025 年 2 月 26 日にAmazon Q Developerへ名称変更されました。
マネジメントコンソール上では、「Amazon Q Developer in chat applications (旧称: AWS Chatbot)」と表示されるようになっています。

通常のAmazon Qと混合しやすく分かりづらくなってしまうため、本記事では AWS Chatbotと記載させていただきます。

やってみる

1. AWS Chatbotの設定

まずは、AWS Chatbotのコンソールに移動します。

AWS ChatbotとSlackの連携を可能とするために、チャットクライアントでSlackを選択し、クライアントを設定していきます。
screenshot-1754382732596.png

チャットを許可するSlackワークスペースを選択し、許可します。
※ここの操作はSlackに対して管理者権限のある方しか操作できないようです。
スクリーンショット_5-8-2025_173259_jops.slack.com.jpeg

許可したワークスペースを選択し、「新しいチャネルを設定」をクリックします。
スクリーンショット_5-8-2025_173432_us-east-2.console.aws.amazon.com.jpeg

設定名やロール名は、任意の名前を登録してください。
ポリシーテンプレートは、デフォルトで以下が設定されていると思うので、そのままで問題ないです。
(今回はDynamoDBのデータを取得したいので、のちほど「AmazonDynamoDBReadOnlyAccess」を設定します)

  • 通知のアクセス許可
  • Amazon Q Developerのアクセス許可

ガードレールポリシーは、デフォルトで設定されているReadOnlyAccessに加えて、以下2つを追加していきます。

  • AmazonQDeveloperAccess
  • AmazonDynamoDBReadOnlyAccess

通知 - オプションは、AWS側トリガーから通知したい場合に設定するため、今回は設定不要です。
スクリーンショット_5-8-2025_171133_us-east-2.console.aws.amazon.com.jpeg

2. Slackの設定

通知を受け取りたいチャンネルで、「@Amazon Q」と入力し、Amazon Qアプリを追加します。
スクリーンショット 2025-08-05 183439.jpg

一旦確認してみる

「DynamoDBとはなんですか。」とプロンプトを入力してみます。
スクリーンショット 2025-08-05 185108.jpg
日本語でAmazon Qとやり取りできることを確認できました。

3. IAMロールに許可ポリシーを追加

チャットでDynamoDBをクエリするために、AWS Chatbotを作成した際に一緒に作成されたIAMロールに対し、以下のポリシーを追加します。

  • AmazonDynamoDBReadOnlyAccess
    スクリーンショット 2025-08-05 190106.jpg

4. DynamoDBテーブルの準備

DynamoDBテーブルには、下記の属性を持つレコードを5件登録しました。

  • id(パーティションキー)
  • create_date
  • name

DynamoDBテーブルの作成手順は、今回の趣旨から外れるため割愛させていただきます。
スクリーンショット_6-8-2025_144340_ap-northeast-1.console.aws.amazon.com.jpeg

5. Slackでのレコード取得

「東京リージョンにあるDynamoDBテーブル「sakataka-test-ddb」で、create_dateが2025/08/04 16:00:00のデータを取得してください。」とプロンプトを入力した結果、ほしいレコードが正しく取得できました。
スクリーンショット 2025-08-06 150804.jpg

また、注意事項により効率的なクエリ方法についても記載してくれていました。この辺り非常に親切で、血が通った温かい心を持っているようです。

おわりに

今回はSlackから自然言語でAWS内のサービスのデータをクエリする方法を紹介しました。

これにより、従来より容易に、かつ素早くAWS内のサービスのデータをクエリできるよになりました。
また、Slackチャンネルに参加していれば、IAMユーザーを持たなくてもクエリすることができるようになりました。

一方で、IAMユーザーを持たなくてもクエリできるというのはリスクにもなりうるので、AWS Chatbot側でのIAM制御には注意が必要です。

最後までご覧いただきありがとうございました!

7
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?