A detailed showcase of a cloud-native application migration to AWS.
Author: Abdullah Bagishev
Year: 2024
Subject: AWS Scalable Architecture
This project was part of a Cybersecurity & Cloud academic assignment, where the goal was to modernize a legacy application for ACME Corp. The existing on-premises infrastructure struggled with scalability, cost-efficiency, and reliability, making it unsuitable for growing demands.
The solution? Migrating to AWS using a highly available, auto-scaled, and cost-effective architecture.
The application currently handles images and videos through a monolithic design, running on a single server. This creates multiple problems:
π΄ Limited Scalability β The server cannot handle traffic spikes (peaks: 9 AM - 5 PM).
π΄ Manual Resource Management β No auto-scaling, leading to waste during low traffic.
π΄ Single Point of Failure β A crash takes down the entire service.
π΄ High Maintenance Costs β The existing on-premises infrastructure is expensive to maintain.
π· 1M image requests, mainly cached (compressed to ~500KB).
π₯ 10K video streams, reducing size to 10% of original.
π 1000 image uploads (5MB each) and 100 video uploads (500MB each).
β
Auto-scale resources based on real-time demand.
β
Reduce operational costs by leveraging pay-as-you-go AWS pricing.
β
Ensure high availability through redundancy and multi-AZ deployments.
β
Decouple services for better performance and fault tolerance.
To achieve these goals, the application was migrated to AWS with the following key components:
The AWS environment was configured using a secure VPC architecture:
This design follows AWS best practices to ensure high availability, security, and efficient traffic flow.
1οΈβ£ VPC (Virtual Private Cloud) β 172.31.0.0/16
for network isolation.
2οΈβ£ Public Subnets β ALB & NAT Gateway for external access.
3οΈβ£ Private Subnets β Secured EC2 instances & RDS database.
4οΈβ£ ALB (Application Load Balancer) β Handles incoming traffic securely.
5οΈβ£ NAT Gateway β Ensures private resources can access the internet safely.
6οΈβ£ Multi-AZ RDS PostgreSQL β Ensures high availability & disaster recovery.
β
IAM Roles β Restricts access to AWS services following the principle of least privilege.
β
Security Groups β Enforces strict inbound/outbound traffic filtering.
β
Multi-AZ Deployment β EC2, NAT Gateway, and RDS are redundantly distributed across AWS Availability Zones.
AWS Service | Cost Estimate |
---|---|
EC2 Instances (Auto Scaling) | $79.88 |
S3 Storage (75.15 TB) | $1,778.55 |
RDS PostgreSQL (Multi-AZ) | $35.24 |
SQS (Message Processing) | $0.40 |
NAT Gateway (15TB Data Transfer) | $675.00 |
Load Balancer (ALB) | $45.00 |
Total Monthly Cost | $2,557.57 |
To further reduce costs, several improvements can be made:
β
Switch NAT Gateway β AWS PrivateLink β Cuts outbound data transfer costs.
β
Enable S3 Intelligent-Tiering β Moves infrequent data to cheaper storage classes.
π Scalability β Auto Scaling ensures the application handles peak loads seamlessly.
π° Cost Savings β Migration from fixed-cost on-premises to AWS pay-as-you-go pricing.
π Security & Compliance β IAM, Security Groups, and VPC segmentation ensure a secure environment.
πΎ Reliability & Resilience β Multi-AZ RDS, ALB, and redundant EC2 instances prevent downtime.
This migration successfully transformed ACME Corpβs legacy application into a cloud-native, scalable, and cost-efficient solutionβmaking it future-proof for growth.