$Id: index.html 585 2016-05-23 16:10:43Z nwilde $

Tutorial
Automated AWS Provisioning and Deployment Using CloudFormation and CodeDeploy

Norman Wilde, Brian Eddy, Khyati Patel, Nathan Cooper, Keenal Shah, Valeria Gamboa, Bhavyansh Mishra
University of West Florida

Note: A 19 minute video showing the steps of this tutorial is available on YouTube at: https://youtu.be/5XcV4Ar6kns.

If you are using DevOps practices such as continuous deployment, a change to your application should trigger a deployment script. That script would provision virtual hardware and deploy the new code to it. Amazon Web Services (AWS) provides the CloudFormation service for automatic provisioning and the CodeDeploy service for automatic application deployment. This tutorial illustrates how to script these two services using their Command Line Interfaces (CLIs). Careful setup is needed, but the result can be a straightforward reproducible deployment process.

This is an intermediate level tutorial that presumes some knowledge of AWS and Unix. You should have some familiarity with the process for launching instances in EC2 and with EC2 terms such as key pairs, security groups, and virtual private clouds. You should know how to log in to an EC2 instance and how to transfer files to it. We also assume some background with Unix directory structure and the use of the command line.

As you go through the tutorial you will be using Amazon's Identity and Access Management (IAM) service to manage authentication and authorization, so you should probably have some previous exposure to IAM.

The main services we will be using are CloudFormation, CodeDeploy and S3. We describe how to use these services in our scenario, but if you have not encountered them before it might be useful to first watch the very short introductory videos that Amazon provides on each service's web site:

The tutorial includes the following:

Please read our generous Copyright and Disclaimer of Warranty before using any of these files. In using these resources you accept the terms.