AWS Solutions Architect Project (Operational Excellence Pillar) – Real-time Operation – Part 1

Operational excellence focuses on running and monitoring systems to deliver business value. This pillar is about how we operate our systems day-to-day, which makes it the foundation upon which everything else builds. In this project, we will integrate the AWS dashboard capabilities into Slack in real-time. This will help the efficiency of support teams just to work using Slack channels in fixing the issues instead of switching around the AWS console, CloudWatch, and various dashboards that can lead to error-prone human-error steps in handling the incident tickets.

Here is the architecture diagram as the foundation of this project:

Step 1: Setup Workspace on Slack

As we are going to use Slack as the tool to be connected to the Amazon Q, we need to setup a new workspace first.

  • Visit https://slack.com/get-started
  • Sign in with email or create a Slack account Follow the steps to:
    • Create a new workspace
    • Set a workspace name (e.g., ChatSupport Team)

Remember, we have to be the Slack admin to complete this workspace creation

Step 2: Setup Amazon Q for Slack

Here we are going to connect AWS Q with Slack.

  • Visit the AWS Q (Chatbot) console
  • Select Slack as the client
  • Click “Configure Client”

After being redirected to the Slack, then select the “ChatSupport Team” workspace to allow the connection.

Then we will be redirected back to the AWS Q console and see the authorized connection to Slack.

Step 3: Setup The SNS Topic for Slack Alerts

We’ll use the SNS as the message broker where Slack is subscribed on it to consume the alerts from AWS services.

  • Visit the SNS Console:
  • Click Topics in the left menu
  • Click “Create topic”
  • Choose Standard as the topic type
  • Enter a name for the topic (e.g., slack-alerts-topic)

Step 4: Setup Slack Channel in AWS Q (Chatbot)

Now we return back to the AWS Q console to inform which channel to use and what alerts is allowed to receive.

  • Back to the AWS Q console and click “Configure New Channel”
  • Fill up the following:
    • Configuration name: ChatSupport
    • Channel type: Keep it as Public
    • Channel name: new-channel
    • IAM Role Configuration:
      • Select “Create an IAM role using a template” from the dropdown
      • Set the Role name to awschatbot-role
    • Under Policy templates, check the following two options:
      • Notification permissions: Allows Chatbot to retrieve CloudWatch metrics and graphs
      • Amazon Q Developer access permissions: Enables interactions from Slack without full administrator access
    • In the Guardrail policies section:
      • Allow AWSLambda_FullAccess and AWSLambda_ReadOnlyAccess
    • In the Notifications section:
      • Choose the Region where SNS topic exist (e.g., us-east-1)
    • Select an existing SNS topic (e.g., slack-alerts-topic)
  • Then click Configure

Step 5: Test The Integration and Configuration

It’s time to test if the connection really works.

  • Visit Amazon Q console, select Configured Clients > Configured Channels
  • Select our channel (e.g., ChatSupport)
  • Click “Send test message”

We shall receive the message on the new-channel of Slack workspace


Summary

We have setup the foundation for real-time AWS operations from Slack workspace by completing the followings:

  • A secure connection between AWS and Slack using AWS Q (Chatbot )
  • An SNS topic to route alerts
  • IAM roles that define what can be done via Slack
  • A test message to confirm everything works

Next, we will create CloudWatch alarms to detect the issues on AWS service and route them to Slack using SNS and Q.