Working with Amazon EC2 Auto Scaling Groups

The hands-on lab is part of these learning paths

SysOps Administrator – Associate Certification Preparation for AWS - 2018
course-steps 33 certification 1 lab-steps 30 description 5
Solutions Architect—Associate Certification for AWS (2016)
course-steps 9 lab-steps 13 quiz-steps 12
SysOps Administrator—Associate Certification for AWS
course-steps 14 lab-steps 18 quiz-steps 13

Lab Steps

Logging in to the Amazon Web Services Console
Auto Scaling Overview
Create a load balancer using ELB
Create a Launch Configuration
Create an Auto Scaling Group
End to end Testing (EC2 Auto Scaling Groups)
Validate AWS Lab

Ready for the real environment experience?

Duration1h 15m


Learn to automatically scale up or down your EC2 infrastructure using Auto Scaling Groups

Lab Overview

This lab introduces the basics of Auto Scaling in Amazon Web Services. The Amazon Web Services (AWS) Auto Scaling service automatically adds or removes compute resources allocated for your cloud application, in response to changes in demand. For applications configured to run on a cloud infrastructure, scaling is an important part of cost control and resource management.

Scaling is the ability to increase or decrease the compute capacity of your application either by changing the number of servers (horizontal scaling) or by changing the size of the servers (vertical scaling).

Auto Scaling helps you maintain application availability and allows you to scale your Amazon EC2 capacity up or down automatically according to the defined conditions. You can use Auto Scaling to help ensure that you are running your desired number of Amazon EC2 instances. Auto Scaling can also automatically increase the number of Amazon EC2 instances during demand spikes to maintain performance and decrease capacity during lulls to reduce costs. Auto Scaling is well suited to applications that have stable demand patterns, or that experience hourly, daily, or weekly variability in usage.

In this lab, you will create an Auto Scaling Group  and place it behind an Elastic Load Balancing (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 an ELB. 

Lab Objectives

Upon completion of this Lab you will be able to:

  • Configure Auto Scaling to automatically launch web server instances
  • Utilize Auto Scaling to ensure the availability of steady state resources
  • Create and configure an Elastic Load Balancer
  • Build an elastic cluster by integrating Auto Scaling with an Elastic Load Balancer
  • Set CloudWatch alarms to automatically notify you when scaling events occur based on CPU utilization

Lab Prerequisites

Although this is a beginner level lab, you should be familiar with AWS basics including:

  • Using the AWS Console
  • EC2 (creating and launching a basic instance, creating a security key pair)
  • 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:


January 10th, 2019 - Added a validation Lab Step to check the work you perform in the Lab

September 10, 2018 - Updated instructions and images to improve the lab experience

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.