AWS Academy Cloud Foundations · KLS Gogte Institute of Technology · 2021 to 22

AWS cloud computing labs

My hands-on labs: a Windows EC2 web server running IIS behind an Elastic IP, then a Classic Elastic Load Balancer spreading traffic across three instances with health checks. The simulator below replays that setup with my exact health-check settings.

AWS EC2Elastic Load BalancingIISElastic IPSecurity groupsWindows Server 2019
SituationA single web server is a single point of failure.
TaskStand up a web tier that survives an instance going down.
ActionRan an EC2 IIS server behind an Elastic IP, then three instances behind a load balancer with health checks.
ResultTraffic keeps flowing when an instance fails; the simulator below replays the setup.

Live demo

A simulated Classic ELB in front of my three IIS web servers. Stop IIS on an instance and watch the health checks take it out of rotation, then bring it back.

00:00

Requests per instance

Served (HTTP 200)Failed (instance not responding)

Event log (simulated time)

Simulation, not a live AWS account. Routing is round robin across InService instances; a real Classic ELB uses round robin for TCP listeners and least outstanding requests for HTTP listeners, which spreads load the same way across identical idle servers. A stopped IIS refuses the TCP:80 ping at once, so the 5 s timeout never comes into play here.

Lab walkthrough

    Results

    The same simulator run headless for each check interval: RED's IIS stops at 100 s and restarts 60 s after the ELB removes it, under 2 requests per second. Thresholds follow the controls above.

    Time to react, by check interval

    Seconds until the failed instance is removedSeconds until it is back InService after restart

    Requests lost while detecting

    Requests routed to RED after IIS stopped

    How it works

    AWS Academy Cloud Foundations labs, badge issued January 2022.

    1. Launch a web server. Started a t2.micro Windows Server 2019 instance with a 30 GiB disk, RDP open to my IP and HTTP open to everyone.
    2. Give it a fixed address. Left auto-assign public IP off, then allocated an Elastic IP and associated it so the server keeps one public address.
    3. Install IIS. Connected over RDP with the decrypted key-pair password and added the Web Server (IIS) role in Server Manager.
    4. Scale out. Launched three IIS instances (RED, GREEN, YELLOW) and put them behind a Classic Load Balancer, MyLB, listening on HTTP 80.
    5. Check health. Configured TCP:80 health checks every 30 s with a 5 s timeout, 2 failures to remove an instance and 10 passes to restore it.

    Data

    Settings read from the screenshots and text in my lab write-ups. Instance, VPC and subnet IDs are left out.