CLI tool to perform cost analysis on your AWS account with Slack integration
Install the package globally or alternatively you can also use npx
npm install -g aws-cost-cli
For the simple usage, just run the command without any options.
aws-cost
The output will be a the totals with breakdown by service. Optionally, you can pass the following options to modify the output:
$ aws-cost --help
Usage: aws-cost [options]
A CLI tool to perform cost analysis on your AWS account
Options:
-V, --version output the version number
-k, --access-key [key] AWS access key
-s, --secret-key [key] AWS secret key
-r, --region [region] AWS region (default: us-east-1)
-p, --profile [profile] AWS profile to use (default: "default")
-j, --json Get the output as JSON
-u, --summary Get only the summary without service breakdown
-t, --text Get the output as plain text (no colors / tables)
-S, --slack-token [token] Slack token for the slack message
-C, --slack-channel [channel] Slack channel to post the message to
-v, --version Get the version of the CLI
-h, --help Get the help of the CLI
In order to use the CLI you can either pass the AWS credentials through the options i.e.:
aws-cost -k [key] -s [secret] -r [region]
or if you have configured the credentials using aws-cli, you can simply run the following command:
aws-cost
To configure the credentials using aws-cli, have a look at the aws-cli docs for more information.
The default usage is to get the cost breakdown by service
aws-cost
You will get the following output
You can also get the summary of the cost without the service breakdown
aws-cost --summary
You will get the following output
You can also get the output as plain text
aws-cost --text
You will get the following output in response
You can also get the output as JSON
aws-cost --json
You will get the following output in response
{
"account": "theroadmap",
"totals": {
"lastMonth": 0.38,
"thisMonth": 11.86,
"last7Days": 1.29,
"yesterday": 0.22
},
"totalsByService": {
"lastMonth": {
"AmazonCloudWatch": 0,
"Tax": 0,
"AWS Key Management Service": 0,
"AWS Service Catalog": 0,
"Amazon Simple Email Service": 0.38,
"Amazon Simple Notification Service": 0,
"Amazon Simple Storage Service": 0.00001
},
"thisMonth": {
"AmazonCloudWatch": 0,
"Tax": 0,
"AWS Key Management Service": 0,
"AWS Service Catalog": 0,
"Amazon Simple Email Service": 11.85,
"Amazon Simple Notification Service": 0,
"Amazon Simple Storage Service": 0
},
"last7Days": {
"AmazonCloudWatch": 0,
"Tax": 0,
"AWS Key Management Service": 0,
"AWS Service Catalog": 0,
"Amazon Simple Email Service": 1.28,
"Amazon Simple Notification Service": 0,
"Amazon Simple Storage Service": 0
},
"yesterday": {
"AmazonCloudWatch": 0,
"Tax": 0,
"AWS Key Management Service": 0,
"AWS Service Catalog": 0,
"Amazon Simple Email Service": 0.22,
"Amazon Simple Notification Service": 0,
"Amazon Simple Storage Service": 0
}
}
}
You can also get the output as a slack message
aws-cost --slack-token [token] --slack-channel [channel]
You will get the message on slack with the breakdown:
You can set up a GitHub workflow similar to this which can send the daily cost breakdown to Slack.
Regarding the credentials, you need to have the following permissions in order to use the CLI:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"iam:ListAccountAliases",
"ce:GetCostAndUsage"
],
"Resource": "*"
}
]
}
Also, please note that this tool uses AWS Cost Explorer under the hood which costs $0.01 per request.
MIT © Kamran Ahmed