If you missed our previous session, you can always catch up here. This week, we went hands on again. This time more intermediate level with Highly Available Web Application on AWS. Let’s get to it, shall we?
Highly Available Web Application on AWS
Project Overview
In this project, you will design and deploy a highly available, scalable web application architecture on AWS using managed services and Infrastructure-as-Code principles.
You will:
Build a custom VPC
Deploy EC2 instances across multiple Availability Zones
Use an Application Load Balancer
Implement Auto Scaling
Apply security best practices
Monitor the system using CloudWatch
This mirrors how production web applications are deployed in the cloud.
Skills You Will Gain
AWS networking (VPC, subnets, routing)
High availability design
Load balancing and auto scaling
Security groups & IAM roles
Basic monitoring and alerting
Infrastructure design thinking
Architecture Overview
Internet
|
Application Load Balancer
|
-----------------------------
| |
EC2 (AZ-1) EC2 (AZ-2)
| |
Auto Scaling Group (ASG)
|
CloudWatch Monitoring
Prerequisites
AWS account
Basic Linux knowledge
Familiarity with EC2 and VPC concepts
SSH key pair
AWS Free Tier (mostly)
Project Components
Custom VPC
2 public subnets (different AZs)
Internet Gateway
Route Table
Security Groups
Launch Template
Auto Scaling Group
Application Load Balancer
CloudWatch alarms
Step 1: Create a Custom VPC
CIDR block:
10.0.0.0/16Enable DNS resolution
Why?
- Network isolation
- Full control over routing
Step 2: Create Subnets
Public Subnet 1:
10.0.1.0/24(AZ-1)Public Subnet 2:
10.0.2.0/24(AZ-2)
These allow traffic from the internet.
Step 3: Internet Gateway & Routing
Attach Internet Gateway to VPC
Route
0.0.0.0/0→ Internet Gateway
This enables public access.
Step 4: Security Groups
Load Balancer SG
Allow HTTP (80) from anywhere
EC2 SGAllow HTTP (80) from Load Balancer SG only
Allow SSH (22) from your IP
This limits exposure.
Step 5: Launch Template
Amazon Linux 2
Instance type: t2.micro
User data installs and starts Nginx:
#!/bin/bash
yum update -y
yum install nginx -y
systemctl start nginx
systemctl enable nginx
echo "<h1>Server running in $(hostname)</h1>" > /usr/share/nginx/html/index.html
Step 6: Auto Scaling Group
Minimum: 2 instances
Desired: 2
Maximum: 4
Attach to public subnets
This ensures high availability.
Step 7: Application Load Balancer
Internet-facing
Listener on port 80
Forward traffic to ASG
Test by opening the ALB DNS name.
Step 8: CloudWatch Monitoring
Monitor EC2 CPU utilization
Create alarm:
Scale out if CPU > 70%
Scale in if CPU < 30%
This adds automatic scaling logic.
Expected Outcome
Web app accessible via Load Balancer
Instances spread across AZs
Auto scaling responds to load
Fault tolerance if one instance fails
Why This Is an Intermediate-Level Project
✔ Uses multiple AWS services
✔ Implements real architecture patterns
✔ Introduces scaling & monitoring
✔ Teaches cloud design principles
✔ Not overly complex
Clean-Up (Important!)
After testing:
Delete Auto Scaling Group
Delete Load Balancer
Terminate EC2 instances
Delete VPC
Avoid unnecessary costs.
Optional Enhancements (If You Want More)
Add HTTPS (ACM)
Add private subnets + NAT Gateway
Use Terraform instead of Console
Store logs in CloudWatch Logs
Add S3 for static assets
I encourage you to dive deeper into the concepts we've discussed over time and continue practicing to refine your skills. If you have read all the way to this point thank you So much! And a Huge Congratulations! to you as this marks the end of our cloud journey with AltSchool Africa. I appreciate the effort. If you also found this interesting and would love to take the next steps in the application process do use my referral link below;
Apply here or use this Code: W2jBG8 during the registration process and by so doing, you will be supporting me and also getting a discount!
Special Offer: By signing up through the link and using the code shared, you’ll receive a 10% discount!
Don’t miss out on this opportunity to transform your future and also save while doing it! Let’s grow together in the tech space. Also feel free to reach out if you need assistance or clarity regarding the program.
I would love to hear your feedback and insights. Please leave a comment below to join the conversation!
I’m also excited to share that I’ve been able to secure a special discount, in partnership with Sanjeev Kumar’s team, for the DevOps & Cloud Job Placement / Mentorship Program.
For those who may not be familiar, Sanjeev Kumar brings over 20 years of hands-on experience across multiple domains and every phase of product delivery. He is known for his strong architectural mindset, with a deep focus on Automation, DevOps, Cloud, and Security.
Sanjeev has extensive expertise in technology assessment, working closely with senior leadership, architects, and diverse software delivery teams to build scalable and secure systems. Beyond industry practice, he is also an active educator, running a YouTube channel dedicated to helping professionals successfully transition into DevOps and Cloud careers.
This is a great opportunity for anyone looking to level up their DevOps/Cloud skills with real-world mentorship and career guidance.
Do refer below for the link with a dedicated discount automatically applied at checkout;
DevOps & Cloud Job Placement / Mentorship Program.
I’m Ikoh Sylva, a passionate cloud computing enthusiast with hands-on experience in AWS. I’m documenting my cloud journey from a beginner’s perspective, aiming to inspire others along the way.
If you find my contents helpful, please like and follow my posts, and consider sharing this article with anyone starting their own cloud journey.
Let’s connect on social media. I’d love to engage and exchange ideas with you!



Top comments (0)