DEV Community

Cover image for AltSchool Of Engineering Tinyuka’24 Month 12 Week 4
Ikoh Sylva
Ikoh Sylva

Posted on

AltSchool Of Engineering Tinyuka’24 Month 12 Week 4

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?

Image of comm. mast

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
Enter fullscreen mode Exit fullscreen mode

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/16

  • Enable DNS resolution

Why?

  1. Network isolation
  2. 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 SG

  • Allow 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
Enter fullscreen mode Exit fullscreen mode

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!

LinkedIn Facebook X

Top comments (0)