はじめに
GW でもカレンダー通りに仕事中の @___nix___ です。
いつも地味が記事を公開していますが、たまには AI系 の記事をということでご紹介致します。
記事執筆の理由は以下の記事で、毎度のこと、Terraform で簡単に使いたいというのが理由でした。
背景
AWS BedrockとSlackの連携は、AWS Chatbotの機能拡張により実現可能になりました。しかし、この設定には以下の課題がありました。
- 手動での設定作業が多く、時間がかかる
- 設定の再現性が低い
- 環境ごとの設定管理が煩雑
- セキュリティ設定の一貫性が保ちにくい
これらの課題を解決するため、Terraformモジュールとして実装することで、インフラストラクチャのコード化(Infrastructure as Code)を実現しました。
概要
terraform-aws-bedrock-slack-agent は、AWS BedrockエージェントとSlackの連携を自動化するTerraformモジュールです。主な特徴は以下の通りです。
-
シンプルな設定
- 必要なのはSlackチャンネルIDとチームIDのみ
- その他の設定はデフォルト値で最適化済み
-
セキュリティの考慮
- IAMロールとポリシーの適切な設定
- 最小権限の原則に基づく設計
-
柔軟なカスタマイズ
- エージェントの指示や説明のカスタマイズ
- モデルの選択やパラメータの調整が可能
-
運用のしやすさ
- 環境ごとの設定管理が容易
- 変更履歴の追跡が可能
使い方
前提条件
- AWSアカウント(Bedrockの利用権限が必要)
- Slackワークスペース(管理者権限が必要)
- Terraform v1.11.4以上
セットアップ手順
-
モジュールのせt
module "aws_bedrock_slack_agent" { source = "./modules/aws-bedrock-slack-agent" chatbot_slack_channel_id = "C0123456789" chatbot_slack_team_id = "T0123456789" }
-
Terraformの実行
terraform init terraform apply
-
Slackでの設定
- AWS Chatbotアプリの追加
- エージェントの接続
- 質問の開始
カスタマイズ例
module "aws_bedrock_slack_agent" {
source = "./modules/aws-bedrock-slack-agent"
bedrock_agent_name = "custom-agent"
bedrock_agent_instruction = "カスタム指示..."
bedrock_agent_description = "カスタムAIアシスタント"
chatbot_slack_channel_id = "C0123456789"
chatbot_slack_team_id = "T0123456789"
chatbot_logging_level = "DEBUG"
}
終わりに
このモジュールにより、AWS BedrockとSlackの連携がより簡単に、より安全に実現できるようになりました。今後も以下のような機能追加を予定しています。
- 複数のSlackチャンネルへの対応
- より細かい権限設定のオプション
- モニタリングとアラートの設定
- バックアップとリストアの機能
また、コミュニティからのフィードバックを積極的に取り入れ、より使いやすいモジュールにしていきたいと考えています。
一言
この記事良かったと少しでも思って頂けたら是非 @___nix___ をフォローしてあげてください。或いは記事に対してリアクションをお願い致します。
謝辞
このモジュールの作成にあたり、以下の記事を参考にさせて頂きました。
ついにBedrockとSlackがノーコードで連携できるようになったよ! by @moritalous
この記事で紹介されている手順を基に、Terraformモジュールとして実装することで、より再現性の高い設定が可能になりました。
この場を借りて感謝申し上げます。