Working with Amazon EC2 Auto Scaling Groups and Classic ELB

Lab Steps

Logging in to the Amazon Web Services Console
Auto Scaling Overview
Creating a Load Balancer using ELB
Creating a Launch Configuration
Creating an Auto Scaling Group
Testing EC2 Auto Scaling Groups from End to End

Ready for the real environment experience?

Time Limit1h 15m


Auto Scaling in Amazon Web Services (AWS) automatically adds or removes compute resources running your application in the cloud based on conditions you configure. For applications configured to run on a cloud infrastructure, scaling is an important part of cost control and resource management.

You will create an Auto Scaling Group and place its instances behind a Classic Elastic Load Balancer (ELB). Don't worry if you don't fully understand all the components yet. Each one will be discussed in greater detail as you create and configure them. At the end of this Lab you will have an Auto Scaling Group with several web server instances behind a Classic ELB. If you are interested in using the newer Network Load Balancer, try this other Lab on Auto Scaling and load balancing.

Lab Objectives

Upon completion of this Lab you will be able to:

  • Create and configure Auto Scaling groups, launch configurations, and  Classic Elastic Load Balancers
  • Utilize Auto Scaling to ensure the availability of steady-state resources
  • Set CloudWatch alarms to automatically notify you when scaling events occur based on CPU utilization
  • Use Simple Notification Service (SNS) to receive emails when scaling events occur

Lab Prerequisites

You should be familiar with:

  • EC2 Basics including launching instances and connecting to them using SSH
  • Working with the AWS Console
  • Conceptual understanding of CloudWatch, Simple Notification Service (SNS) and EC2 Security Groups (firewall rules)

Lab Environment

After completing the Lab instructions, the environment will look similar to:



March 11, 2020 - Updated the validation checks inserting them in the correct lab steps instead of the last one


About the Author


Antonio is an IT Manager and a software and infrastructure Engineer with 15 years of experience in designing, implementing and deploying complex webapps.

He has a deep knowledge of the IEEE Software and Systems Engineering Standards and of several programming languages (Python, PHP, Java, Scala, JS).

Antonio has also been using and designing cloud infrastructures for five years, using both public and private cloud services (Amazon Web Services, Google Cloud Platform, Azure, Openstack and Vmware vSphere).

During his past working experiences, he designed and managed large web clusters, also developing a service orchestrator for providing automatic scaling, self-healing and a Disaster Recovery Strategy.

Antonio is currently the Labs Product Manager and a Senior DevOps Engineer at Cloud Academy; his main goal is providing the best learn-by-doing experience possible taking care of the Cloud Academy Labs platform.