In this project, I built a complete secure DevOps and cloud monitoring environment on AWS using a multi-server architecture. The solution includes secure VPN-based access, authentication, file upload automation, CI/CD routing, cloud storage integration, infrastructure monitoring, alerting, and queue monitoring.
This project simulates a real-world production-style DevOps workflow.
The project consists of 3 EC2 servers:
- Server 1 – Firewall + OpenVPN + Login/Signup Website + MySQL
- Server 2 – Upload application server
- Server 3 – Jenkins + Prometheus + Grafana + CloudWatch integration
- Documents / images (
pdf,docx,xlsx,png,jpg) are routed to Amazon S3 - Code files (
py,yaml,json,sql) are routed to GitHub
- Prometheus for metrics collection
- Node Exporter for CPU, RAM, and disk metrics
- Grafana for dashboards
- CloudWatch for AWS alarms
- SNS for email notifications
- SQS for queue monitoring
- Amazon EC2
- Amazon VPC
- Security Groups
- Amazon S3
- Amazon CloudWatch
- Amazon SNS
- Amazon SQS
- IAM
- Jenkins
- GitHub
- Prometheus
- Node Exporter
- Grafana
- Apache
- PHP
- MySQL
- OpenVPN
This screenshot shows the three EC2 instances used in the project: firewall/VPN server, application upload server, and Jenkins/monitoring server.
When VPN is disconnected, the internal application is not accessible. This ensures the system is protected behind a secure network.
After connecting using OpenVPN, the internal private application becomes accessible.
This is the main landing page where users can choose signup or login.
Users authenticate using credentials stored in MySQL database.
New users register using username, email and password.
Successful user registration confirmation.
This page allows users to upload files that will be routed by Jenkins.
This screenshot shows a file selected in the upload form before pressing the upload button.
This screenshot confirms successful file upload through the application.
This screenshot shows uploaded files stored in the S3 bucket.
This screenshot shows code files pushed to the GitHub repository by the Jenkins pipeline.
This screenshot shows the Jenkins pipeline job used to route uploaded files.
This screenshot confirms Prometheus is successfully scraping its targets.
This screenshot shows the Grafana dashboard for CPU, RAM, disk, and load monitoring.
This screenshot shows the CloudWatch alarms used for CPU utilization, Jenkins health, and SQS queue backlog.
This screenshot shows the SNS email notification triggered by the CPU utilization alarm.
This screenshot shows the SNS email notification triggered when Jenkins service went down.
This screenshot shows the SNS email notification triggered by SQS queue backlog.
This screenshot shows the CloudWatch metric graph for ApproximateNumberOfMessagesVisible.
- User connects through OpenVPN
- User signs up or logs in on Server 1
- User uploads file from Server 2
- Jenkins on Server 3 processes the file
- Documents/images are stored in S3
- Code files are pushed to GitHub
- Prometheus collects metrics
- Grafana visualizes system health
- CloudWatch monitors alarms
- SNS sends email notifications
- SQS queue metrics are tracked for backlog monitoring
Through this project, I learned:
- How to design a multi-tier AWS architecture
- How to secure application access using VPN
- How to automate file routing using Jenkins
- How to integrate S3 and GitHub into a DevOps workflow
- How to monitor infrastructure using Prometheus and Grafana
- How to use CloudWatch, SNS, and SQS for alerting and monitoring
This project demonstrates a complete DevOps and cloud monitoring pipeline using AWS and open-source tools. It combines security, automation, storage, monitoring, and alerting into a single production-style architecture.
![[EC2 Instances]](/tharunkumaran11/aws-secure-devops-platform/raw/main/screenshots/01-ec2-servers.png)


















