Photo by Maruful Hari from Shutterstock
進化を続けるDevOpsの現場では、円滑なコミュニケーションと素早い情報アクセスが何より重要です。運用やワークフローをチャットアプリへ移すチームが増えるなか、こうした業務を効率化するツールへのニーズはますます高まっています。
そこで活躍するのがAWS Chatbotです。AWSをそのままSlackチャンネルに取り込める強力なツールです。
AWS Chatbotは、SlackチャンネルやAmazon Chimeチャットルームと連携するインタラクティブなエージェントで、チャット画面から直接AWSリソースを監視・操作できます。
最大の魅力は、アプリケーション間の切り替えを減らせることです。これにより生産性と対応スピードが向上します。
本ガイドでは、AWS ChatbotとSlackを連携させる手順を順を追って解説します。ゴールは、AWSアカウントで新しいS3バケットが作成されるたびに通知が届く仕組みを構築すること。リソースの動きを把握し、変化に素早く対応できるようになります。
作業ステップの概要
- Amazon Simple Notification Service (SNS) トピックを作成
- Slackクライアントを設定
- AWS Chatbotクライアントを設定
- Amazon EventBridgeルールを設定
- 通知をテスト
**SNSトピックの作成**
AWS Chatbotを利用するには、Amazon SNSトピックをあらかじめ用意しておく必要があります。
Amazon SNSコンソールを開き、トピック名を作成します。

ステップ1. SNSトピックを作成
Detailsセクションで「Standard」を選択し、下にスクロールしてCreate Topicをクリックします。

ステップ1.1. SNSトピックに名前を付ける
続いて、トピックへのサブスクリプションを作成します。SubscriptionsタブでCreate subscriptionをクリックし、ProtocolでEmailを選択して通知を受け取るメールアドレスを入力します。
受信トレイを開き、AWS Notificationsから届いたメールのConfirm subscriptionをクリックします。送信元は通常「[email protected]」です。メール内のConfirm Subscriptionリンクをクリックして承認してください。

SNSトピックのサブスクリプション確認メール(AWSアカウントIDはマスクしています)
Slackクライアントの設定
AWS Chatbotから通知を送ったりコマンドを実行したりするには、AWS ChatbotとSlackを連携させる必要があります。
Slackワークスペースを開き、左側のナビゲーションからAutomationsを選択します。表示されない場合は「More」→「Automations」と進みます。Appsディレクトリで「AWS Chatbot」を検索してください。

ステップ2. AWS ChatbotアプリをSlackに追加
AWS Chatbotクライアントの設定
AWS Chatbotコンソールを開きます。Configure a chat clientでSlackを選び、Configureをクリックします。すると、AWS Chatbotに情報へのアクセス権を付与するためのSlack認可ページに遷移します。

ステップ2.2 AWS Chatbotクライアントを設定
右上のドロップダウンから、AWS Chatbotで使用するSlackワークスペースを選択します。本デモではCiara-Cloud Slackワークスペースを使用しています。Allowボタンをクリックしてください。

ステップ2.3 プラグインに権限を付与
Slackチャンネルの設定
通知を受け取れるよう、AWS ChatbotをSlackチャンネルと連携させます。Slackチャンネルでinvite @awsと入力し、Invite Themをクリックします。

ステップ3. AWS ChatbotアプリをSlackチャンネルに招待

ステップ3.1 Invite themボタンをクリックしてアプリを追加
AWS Chatbotクライアントの画面に戻り、Configure new channelをクリックします。

ステップ3.2 AWS Chatbotクライアントを設定
Configuration detailsで設定名を入力します。チャンネルIDまたはURLは、Slack左ペインのチャンネル名を右クリックしてCopy Linkを選ぶと取得できます。

ステップ3.3 AWS Chatbotクライアントの詳細を設定
続いてユーザー権限を定義します。AWS Chatbotがアクションを実行するにはIAMロールが必要です。Role Settingでは、チャンネルメンバー全員に同じ権限を割り当てるChannel roleを選択します。

ステップ3.4 AWS Chatbotクライアントのユーザー権限を定義
下にスクロールしてNotificationsへ移動し、SNS topicsで先ほどSNSトピックを作成したAWSリージョンとトピック名を選択します。Configureをクリックしてください。

ステップ3.5 AWS ChatbotクライアントのSNSトピックを選択
Amazon EventBridgeルールの設定
Amazon EventBridgeで通知をトリガーし、SlackチャンネルとSNSトピックに登録したメールアドレスの両方へ送信する仕組みを作ります。Amazon EventBridgeコンソールを開き、EventBridge Ruleを選んでCreate ruleをクリックします。

ステップ4. EventBridgeルールを作成
ルールの名前と説明を入力します。Event busはdefault、Rule typeはRule with an event patternを選択します。

ステップ4.1 EventBridgeルールの詳細を定義
Event sourceでは「AWS events or EventBridge partner events」を選択します。
Creation methodまでスクロールし、「Use pattern form」を選びます。
Event patternは以下のとおり設定します。
Event sourceでは、ドロップダウンから「AWS services」を選択します。
AWS serviceでは、ドロップダウンから「S3」を選択します。
Event typeでは、Bucket-Level API Call via CloudTrailを選択します。
「Specific events(s)」を選び、CreateBucketを指定して「Next」をクリックします。

ステップ4.3 イベントパターンを定義
Target typesではAWS serviceを選択し、ターゲットとしてSNS topicを指定します。Topicでは先ほど作成したSNSトピックを選択し、「Next」をクリックして「Create rule」で確定します。

ステップ4.4 イベントターゲットを定義
これで、S3バケットが作成された際にトリガーされるEventBridgeルールが完成しました。

有効化されたEventBridgeルール
EventBridgeルールをテストして通知を送信
S3コンソールを開き、新しいバケットを作成します。その後、Slackチャンネルとメールに通知が届くか確認しましょう。

ステップ5. 通知テスト用のS3バケットを作成
S3バケットを作成すると、すぐに指定のSlackチャンネルへ通知が届きました。

Slack通知(AWSアカウントIDはマスクしています)
同じイベントについてメール通知も届きました。

メール通知(AWSアカウントIDはマスクしています)
以上で、AWS ChatbotとSlackの連携が完了しました。AWSイベントのリアルタイム通知を、いつものチャットチャンネルで直接受け取れる仕組みが整いました。
この連携は運用を効率化するだけでなく、潜在的な問題への対応スピードを高め、サービスのパフォーマンスと稼働率を最適に保つことにもつながります。
DoiT Internationalでは、組織ごとに固有のニーズや課題があることを理解しています。AWSアカウントの運用やサービス設定でお困りの際は、ぜひお気軽にお問い合わせください。
Amazon Web Services、Google Cloud、Microsoft Azure、OpenAIに精通した専門チームが、複雑なクラウドサービスを使いこなしてビジネス目標を達成できるよう全力でサポートします。
クラウドは難しいものである必要はありません。最適なパートナーがいれば、その可能性を最大限に引き出し、イノベーションと成長を加速できます。お客様のクラウドジャーニーをどう支援できるか、今すぐご相談ください。