Run a Controlled Deploy With AWS Elastic Beanstalk

The hands-on lab is part of these learning paths

Solutions Architect – Professional Certification Preparation for AWS
course-steps 15 certification 1 lab-steps 9 quiz-steps 1
DevOps Fundamentals
course-steps 4 certification 1 lab-steps 3
DevOps Engineer – Professional Certification Preparation for AWS
course-steps 16 certification 1 lab-steps 10 quiz-steps 2
more_horiz See 1 more

Lab Steps

Logging in to the Amazon Web Services Console
Creating an Elastic Beanstalk App & Environment
Running a Rolling Deploy
Preparing a Blue-Green Deploy
Doing the Deploy Swap
Cleaning Up Old Resources

Ready for the real environment experience?

Duration2h 10m


Lab Overview

One of the highest risk parts of running a software company, in terms of availability concerns, is the risk of a faulty deployment. During deployments, complex systems with multiple parts are actively moving around the delicate parts of many other systems. Deployment risk can be minimized by studying a couple of common approaches to deploying code to running machines. 

In this Lab, you will deploy multiple version updates of an application in a load-balanced and auto-scaled environment. The first update is deployed using a simple, low-friction rolling deployment. The second update is deployed using a blue-green deployment where a separate environment is created to run the new version of the application and a DNS cutover switches incoming traffic to the new environment.

Lab Objectives

Upon completion of this Lab, you will be able to:

  • Build Elastic Beanstalk applications and environments
  • Perform rolling deployments on underlying EC2 resources
  • Perform blue-green deployments with Elastic Beanstalk for zero-downtime updates
  • Minimize costs by cleaning up after blue-green deploys

Lab Prerequisites

You should be familiar with:

Lab Environment

Before completing the Lab instructions, the environment will look as follows:

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


October 17th, 2018 - Adapted the Lab to use an Application Load Balancer (the new default) rather than a Classic Load Balancer

April 29th, 2018 - Complete update (easier to follow instructions and screenshots for the new Elastic Beanstalk UI)

September 6th, 2018 - Improved instructions clarity and updated screenshots to the most recent Elastic Beanstalk interface

About the Author

Learning paths4

Logan has been involved in software development and research since 2007 and has been in the cloud since 2012. He is an AWS Certified DevOps Engineer - Professional, MCSE: Cloud Platform and Infrastructure, Google Cloud Certified Associate Cloud Engineer, Certified Kubernetes Administrator (CKA), Certified Kubernetes Application Developer (CKAD), and Linux Foundation Certified System Administrator (LFCS). He earned his Ph.D. studying design automation and enjoys all things tech.