A lightweight automation tool to start, stop, and manage cloud resources (AWS, Azure, GCP) on custom schedules.
It is designed to reduce costs, optimize resource usage, and provide fine-grained control with features like scheduling, manual triggers, and toggling.
The application also analyzes cloud usage, detects idle or underutilized resources, and generates recommendations along with cost and utilization graphs.
- Scheduled Actions – Automatically start/stop resources based on custom time rules.
- Toggle Rules – Enable or disable automation rules without deleting them.
- Instant Triggers – Run rules immediately on demand.
- Multi-Cloud Support – Works with AWS, Azure, and GCP resources.
- Resource Analysis – Detects idle/underutilized resources and provides recommendations.
- Cost & Usage Insights – Generates cost breakdowns, utilization graphs, and monitoring dashboards.
- Safe & Controlled – Prevents accidental deletion while allowing temporary overrides.
- Language: Python
- Framework: Streamlit (Dashboard)
- Database: PostgreSQL
- Cloud SDKs: AWS SDK (boto3), Azure SDK, GCP SDK
- Deployment: Docker, Kubernetes (optional)
- Launch the dashboard with streamlit run app/dashboard.py.
- Connect your AWS/Azure.
- Create a Rule – Define schedule, action (start/stop), and target resource.
- Toggle Rule – Enable/disable rules anytime.
- Trigger Now – Execute instantly when needed.
- Monitor – View cost graphs, idle resources, and recommendations.
-
This project supports both mock data and real resource data:
-
In aws_service.py and azure_service.py, set the flag:
- True → Use mock data (ensures graphs and dashboards are always populated).
- False → Use real resource data (requires active AWS/Azure credentials).
-
This allows anyone to run the project locally without needing active cloud resources, while still being able to switch to real data when available.
-
The screenshots below demonstrate real AWS data as proof, while mock mode ensures a consistent demo experience.
- Python (>= 3.9)
- pip (Python package manager)
- Docker (optional, for containerized deployment)
- Cloud credentials (AWS, Azure)
# Clone repo
git clone https://github.com/singhsayan/cloud-resource-scheduler.git
cd cloud-resource-scheduler
# Create virtual environment
python3 -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Run application
streamlit run app/dashboard.py