Introducing MiserBot - a fun and effective way to save money on your AWS bill

Staying on top of AWS cost is a painful thing to do. Many AWS customers I talk to are concerned about cost management and they’ve mentioned the following problems:

  • Managing AWS cost requires a lot of knowledge and it is time consuming - it’s very easy to become overwhelmed by it. Many AWS customers don’t have neither the expertise nor the time to do it effectively.
  • Once you have your applications running, it’s very easy to get a “bad AWS billing surprise” at the end of the month. Many customers I’ve talked to have learned this the hard way, unfortunately. Others are concerned that one month they’ll have to deal with unexpected AWS charges worth hundreds - or even thousands- of dollars.
  • There are tools, such as AWS Cost Explorer, but many customers don’t have time to visit the AWS console every day and monitor cost closely. Other AWS tools, such as CloudWatch Billing Alarms are not detailed enough and don’t help with understanding exactly where your money is going.
  • Instead of having to go somewhere to get updates, customers want AWS cost information to come to them.
  • Many 3rd party tools are geared towards customers that already spend many thousands of dollars each month in AWS. For these customers, it makes sense to spend a few hundred or even thousands of dollars a month just in cost monitoring. For the rest, it’s not economical.
  • Even for customers who can pay for expensive cost monitoring tools, there is no direct way to coordinate corrective actions with their teams or to keep track of what needs to be done in order to fix AWS cost issues.

That’s why I created MiserBot, a stingy chatbot that will make sure you don’t spend more than you have to on AWS! MiserBot saves you money and it increases your team’s productivity by making AWS cost information easily accessible, in a natural language format, from a proven collaboration tool such as Slack.

Ok, but how can a chatbot help me save money on AWS?

Finding ways to save money on AWS is the perfect job for a bot!

MiserBot is proactive, it’s always looking for your latest AWS cost and usage data. As soon as the latest information is ready, MiserBot analyzes it for you and within minutes it sends your team a message via a Slack channel. You will know right away if things are looking good with your AWS bill (or not). This will save your team a lot of time and it will help you identify anomalies early, so they can be corrected.

If you want to drill-down on your cost, you can ask MiserBot more details. For example, MiserBot can break-down your cost by service, usage types and even by resource.

In this initial version, MiserBot supports the following features:

  • Integration with Slack (this is the only chat integration at the time, but more will be supported in the future)
  • It returns the total accumulated AWS cost for the month, as soon as the latest AWS cost and usage data is available.
  • It tells you which AWS services you’re paying for (e.g. EC2, S3, etc.) and their respective cost.
  • It returns a list of AWS usage types and their cost in the current month (e.g. t2.2xlarge box usage, EBS storage, data transfer, etc.). This will help you uncover unforeseen costs associated to your components.
  • It tells you the top AWS resources you’re paying for and their associated cost (e.g. EC2 instance ID, EBS volume ID, etc.). This lets you see your most expensive AWS components (did you forget to terminate that r4.16xlarge? Is that S3 bucket storing too many files?). By the way, you can’t find this information in AWS Cost Explorer.

Setup Instructions

MiserBot only integrates with Slack at the time. Like any other Slack chatbot, you need to add it to your team first. Once it’s added to Slack, MiserBot needs read-only access to your AWS Account and it also needs the ability to configure AWS Cost and Usage reports.

So, here are the steps to install MiserBot…

1. First, you already have a Slack account and team.

If not, you can get started with Slack here.

2. Add MiserBot to your Slack team

Click on the “Add to Slack” button below:

Add to Slack

Then select a Slack channel and authorize MiserBot in the Slack OAuth page:

Slack OAuth

Go to your team page in Slack (typically https:/{your-team-name}.slack.com )

3. Give MiserBot read-only permissions in your AWS account

Since this is the first time you use MiserBot, it will show you a message with instructions and a link to a CloudFormation template. This template will create an IAM Role and S3 bucket to place AWS Cost and Usage reports.

Link CloudFormation

Complete the CloudFormation steps, which only take a few clicks. If you don’t have AWS Cost and Usage reports enabled, MiserBot will configure one in your account. If you already have AWS Cost and Usage reports enabled, MiserBot will use that existing configuration.

4. That’s it!

When the CloudFormation stack creation completes, MiserBot will send a message to your Slack channel. If this is the first time AWS Cost and Usage reports are enabled in your account, it will take up to 24 hours before cost data is available.

When a new Cost and Usage report is ready, MiserBot will process it and it will send your channel a message with your new accumulated cost for the month.

See it in action!

This is what you see when a new AWS Cost and Usage report is ready…

New CUR report *(screenshots are taken from a test account with low usage, but MiserBot can handle accounts that spend thousands of dollars every month)

MiserBot finds your top AWS services…

Cost by Service

… usage types

Cost by Usage

and the top resources by spend…

Cost by Resource

You can click on each link and it will take you to the AWS Management Console.

You can also type help using direct messaging and MiserBot will show you what to do.

By the way, we’re just getting started. We already have a list of cool new features coming up, so stay tuned!

How much does it cost?

MiserBot is launched as a private release, meaning you can install it for FREE now. It will eventually have a monthly subscription fee, but if you install it during the private release period, you will always have it for FREE! So, click on the button below and give it a try!

Add to Slack

Ernesto Marquez

ErnestoMarquezProfilePic

I am the Project Director at Concurrency Labs Ltd, ex-Amazon (AWS), Certified AWS Solutions Architect and I want to help you run AWS optimally, so your applications reliably generate revenue for your business.

Running an optimal AWS infrastructure is complicated - that's why I follow a methodology that makes it simpler to run applications that will support your business growth.

Do you want to learn more? Do you have other questions related to AWS? Click on the button below to schedule a free 30-minute consultation.

Do you have any comments or questions about this post, or my services?