VM management portal to start/stop EC2 or Azure VMs
Why Choose This Project?
Managing cloud virtual machines (VMs) can become challenging when dealing with multiple instances across providers like AWS and Azure. This project creates a centralized web-based management portal that allows users (or admins) to securely start, stop, and monitor EC2 (AWS) and Azure VMs without navigating different cloud consoles.
It’s highly practical for organizations to save costs (turning off idle VMs) and for students to learn multi-cloud APIs, authentication, and automation.
What You Get
-
A web-based dashboard for managing AWS EC2 and Azure VMs
-
Start/Stop VM functionality across multi-cloud environments
-
Secure authentication with cloud credentials (IAM roles, Azure AD)
-
Cost optimization by scheduling shutdowns for unused VMs
-
Status monitoring of running/stopped instances
-
Multi-cloud support with AWS SDK & Azure SDK
Key Features
| Feature | Description |
|---|---|
| Multi-Cloud Support | Manage VMs on AWS EC2 and Azure Virtual Machines from one portal |
| Start/Stop Instances | One-click start/stop of VMs from the UI |
| Status Monitoring | Fetch and display VM status (Running, Stopped, Pending, etc.) |
| Scheduled Automation | Define schedules to automatically stop unused VMs |
| Secure Authentication | AWS IAM credentials and Azure AD service principal integration |
| Role-Based Access | Allow only admins to perform VM operations |
| Cost Optimization | Shutdown idle VMs to reduce billing |
| Logging & Auditing | Track who started/stopped which VM |
| Responsive UI | Clean web dashboard (Bootstrap/React/Angular) |
Technology Stack
| Layer | Technologies |
|---|---|
| Frontend | React.js / Angular / Bootstrap |
| Backend | Node.js (Express) / Java Spring Boot / Python Flask |
| Cloud APIs | AWS SDK (Boto3 for Python / AWS SDK for Java/Node) Azure SDK (azure-mgmt-compute, azure-identity) |
| Authentication | AWS IAM roles & access keys Azure AD Service Principal |
| Database (optional) | MySQL / MongoDB for storing VM metadata and user logs |
| Deployment | Docker, Kubernetes (optional), or serverless backend |
| Security | HTTPS, JWT authentication for users, IAM policies |
Cloud Services Used
| Cloud Service | Purpose |
|---|---|
| AWS EC2 | Virtual Machines to be managed |
| AWS IAM | Secure access to EC2 APIs |
| Azure Virtual Machines | Compute VMs to be managed |
| Azure Active Directory (AD) | Authentication with Azure SDK |
| Azure Resource Manager (ARM) | VM operations (start/stop/list) |
| CloudWatch / Azure Monitor | Monitoring VM metrics |
| S3 / Azure Blob Storage (optional) | Store logs or metadata |
Working Flow
-
User Login
-
Admin logs into the management portal using secure credentials (JWT or OAuth2).
-
-
Fetch VM List
-
The backend uses AWS SDK and Azure SDK to fetch available VM instances and their statuses.
-
-
VM Operations (Start/Stop)
-
User selects a VM → Clicks Start/Stop → Backend calls:
-
AWS EC2
startInstancesorstopInstancesAPI -
Azure VM
start()ordeallocate()API
-
-
-
Monitor VM Status
-
Status is refreshed via API calls to AWS/Azure and displayed on the dashboard.
-
-
Automation (Optional)
-
Admin sets schedules (e.g., stop VMs after 8 PM) → Backend triggers jobs (via AWS Lambda/Azure Functions or Cron Jobs).
-
-
Logging & Audit
-
Every action (Start/Stop) is logged with timestamp and user info for auditing.
-