by robmorgan

Rolling ASG deployments with Terraform on AWS

128 Stars 44 Forks Last release: Not found 23 Commits 0 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

Terraform Rolling Deployment Demo

This is a demo project that accompanies a blog post I wrote. It shows how to use various tools from the Hashicorp stack to achieve rolling deployments on AWS with zero downtime.

The post is here: https://robmorgan.id.au/posts/rolling-deploys-on-aws-using-terraform/

It is based on a concept from Paul Hinze: https://groups.google.com/forum/#!msg/terraform-tool/7Gdhv1OAc80/iNQ93riiLwAJ


terraform aws architecture - current architecture


You should have the following tools installed:

  • Git
  • Packer (v1.2.3)
  • Terraform (v0.11.7)

Additionally you will need the following environment variables set:



  1. Copy your public SSH key to the
    directory and update the path in
  2. Before we create the AWS infrastructure we must first bake a new AMI using Packer. Using the supplied
    , simply run:
$ make bake

When Packer finishes running it will output an AMI ID we need for the next step.

  1. Now we can use Terraform to create the AWS resources:
$ make plan AMI="ami-XXXYYYZZ"
$ make apply AMI="ami-XXXYYYZZ"
  1. Deployment is a case of baking a fresh AMI then re-running Terraform:
$ make bake
$ make plan AMI="ami-XXXYYYZZ"
$ make apply AMI="ami-XXXYYYZZ"


You can run the included tests using

$ make test

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.