Skip to content

sk511/aws-highly-available-web-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 AWS Highly Available Web Application (Architecture Project)

📌 Project Overview

This project demonstrates the design and partial implementation of a highly available and scalable web application architecture on AWS.

The architecture follows industry best practices including multi-AZ deployment, network isolation, and secure access patterns.


🧱 Architecture Diagram

Architecture


⚙️ AWS Services Covered

  • Amazon EC2
  • Amazon VPC
  • Public & Private Subnets
  • Internet Gateway
  • NAT Gateway
  • Security Groups
  • Network ACLs
  • (Designed) Application Load Balancer
  • (Designed) Auto Scaling Group
  • (Designed) Amazon RDS
  • (Designed) Amazon S3

🌐 Architecture Explanation

  • Public subnets host internet-facing components like Load Balancer and NAT Gateway.
  • Private subnets host EC2 instances for security.
  • Internet Gateway allows inbound/outbound internet traffic.
  • NAT Gateway enables outbound internet access from private instances.
  • Load Balancer distributes traffic across multiple EC2 instances.
  • RDS provides persistent storage (designed).
  • S3 stores static assets and backups (designed).

🔄 Traffic Flow

  1. User sends request via internet
  2. Request enters VPC via Internet Gateway
  3. Load Balancer distributes traffic (designed)
  4. EC2 instances process the request
  5. EC2 communicates with RDS (designed)
  6. EC2 accesses internet via NAT Gateway if needed

🔐 Security Design

  • EC2 instances are deployed in private subnets
  • Only controlled access allowed via Security Groups
  • NACLs provide subnet-level filtering
  • No direct internet access to EC2 instances

📸 Screenshots

VPC Setup

VPC

Route Tables

Private Route table Public Route table

NAT Gateway

NAT

EC2 Instances

EC2

Resource Map

Map


⚠️ Note on Deployment

Due to AWS account billing requirements, some services such as Application Load Balancer, Auto Scaling, and RDS were not deployed in a personal environment.

However, the architecture is fully designed based on AWS best practices and real-world production systems.


🧠 Architecture Decisions

  • Private EC2 instances for security
  • Public subnets for internet-facing components
  • Multi-AZ design for high availability
  • NAT Gateway for controlled outbound traffic
  • Load Balancer (designed) for scalability

🎯 Key Learnings

  • VPC and subnet design
  • Public vs Private networking
  • Security groups vs NACLs
  • High availability architecture
  • Cloud design thinking

🚀 Future Improvements

  • Deploy ALB and Auto Scaling with full AWS account
  • Connect EC2 to RDS database
  • Store static assets in S3
  • Implement Infrastructure as Code (Terraform)

About

Designed and deployed a multi-AZ highly available web application on AWS using EC2, ALB, Auto Scaling, VPC, RDS, and S3 with secure networking.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages