Skip to content
master
Switch branches/tags
Code

Instance-Watcher 👀

GHA - Deploy Instance Watcher

Introduction

Instance-Watcher will send you a dayly 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
  • Email

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

Mail Sample

Slack Notification

Slack Sample

Teams Notification

Teams Sample

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