Automated tool to scan AWS RDS instances across multiple regions, analyze their utilization, and identify unused or underused databases for cost optimization.
- Multi-region RDS scanning
- CloudWatch metrics analysis (CPU, IOPS)
- Database categorization (Unused/Underused/Active)
- Automated deployment via GitHub Actions
- Slack notifications
- S3 report storage
.
├── .github/
│ ├── workflows/
│ │ └── deploy-rds-scanner.yml # GitHub Actions deployment workflow
│ └── DEPLOYMENT_SETUP.md # Deployment documentation
└── rds-scanner-complete/ # RDS Scanner Lambda function
├── rds-scanner-cloudformation.yaml
├── lambda_handler.py
├── rds_scanner.py
└── documentation/
-
Configure GitHub Secrets:
- Go to Settings → Secrets and variables → Actions
- Add
SLACK_WEBHOOK_URLsecret
-
Deploy:
- Push changes to trigger automatic deployment to development
- Or manually trigger workflow for staging/production
See Deployment Setup Guide for detailed instructions.
cd rds-scanner-complete
./deploy.sh- Deployment Setup - GitHub Actions deployment guide
- RDS Scanner Complete - Full project documentation
- CloudFormation Guide - CloudFormation deployment
- Slack Integration - Slack setup guide
- Lambda Function: Serverless execution (Python 3.9)
- CloudFormation: Infrastructure as Code
- EventBridge: Scheduled execution (Monday & Friday, 9 AM UTC)
- S3: Report storage
- CloudWatch: Metrics and logs
- GitHub Actions: CI/CD with OIDC authentication
The deployment supports multi-account environments:
| Environment | AWS Account | Stack Name |
|---|---|---|
| Development | 477873552632 (guild-dev) | rds-scanner-dev |
| Staging | 221203628080 (guild-staging) | rds-scanner-staging |
| Production | 947618278001 (guild-prod) | rds-scanner-prod |
Estimated monthly AWS costs: $1-2/month
- Lambda: ~$0.50
- S3: ~$0.10
- CloudWatch Logs: ~$0.50
Internal Guild Education project