👀
Instance-Watcher
Introduction
Instance-Watcher will send you a daily recap notification with the list of the running instances on all AWS regions for a given AWS Account.
Currently, It covers the following AWS Services:
- EC2 Instances
- RDS Instances
- SageMaker Notebook Instances
- Glue Development Endpoints
- Redshift Clusters
Useful for non-prod
, lab/training
, sandbox
, or personal
AWS accounts, to get a kindly reminder of what you've left running.
Notifications could be:
- Slack Message
- Microsoft Teams Message
Features
- Customizable schedule
- Whitelisting capability
- Month to Date (MTD) Spending
- Forecasted Monthly Spend
- Slack Notifications (Optional)
- Microsoft Teams Notifications (Optional)
- Emails Notifications (Optional)
- Custom Tags
Sneak Peek
Email Notification
Slack Notification
Teams Notification
Requirements
AWS SES: Before you can send an email using Amazon SES, you must verify the address or domain that you are sending the email from to prove that you own it. If you do not have production access yet, you also need to verify any email addresses that you send emails to except for email addresses provided by the Amazon SES mailbox simulator.
Deployment
Change default parameters in Makefile
or use directly the command-line with parameters.
Nb: Recipients are space-delimited
Parameters
Parameter | Mandatory | Default | Description |
---|---|---|---|
AWSRegion | yes |
eu-west-1 |
AWS Region where the lambda is created |
CronSchedule | yes |
0 18 * * ? * |
Scheduling of the Watcher |
CustomTags | no |
Your Custom AWS Tags to display on reports | |
EnableMail | yes |
1 |
Enable this for Email Notifications |
EnableSlack | yes |
0 |
Enable this for Slack Notifications |
EnableTeams | yes |
0 |
Enable this for Microsoft Teams Notifications |
IsoTZ | yes |
Europe/Paris |
ISO Format of the timezone |
Project | yes |
project |
Your project name |
Recipients | yes |
`` | Recipients of email reports |
RedFlagHour | yes |
12 |
Number of hours before marking uptime in RED into reporting email |
Sender | yes |
`` | Sender of email reports |
SlackWebHook | no |
`` | Your Slack webhook URL |
TeamsWebHook | no |
`` | Your MS Teams webhook URL |
WhitelistTag | yes |
watcher |
Whitelist tag used to make exception on reported instances |
Deployment steps
$ make artifacts
$ make package Project=<your_project_name>
$ make verify-sender
$ make deploy
Nb: Use emails in the command line is optional if you've already set up in the Makefile
Whitelisting
If you want to whitelist a specific instance to be hidden from the daily report, you will need to add the following tag to the instance.
Key | Value |
---|---|
watcher |
off |
nb: Tag Key
is customizable in Makefile
Destroy
$ make tear-down