A 1-day training class on how to deploy a cloud native app on AWS with Terraform and shell scripts
A 1-day hands-on training class in which participants will learn:
The basic infrastructure we build is shown in this system diagram:
npmif you don't already have it, and run the following commands:
npm install grunt serve
This should run an http server locally and spawn a browser window with the first slide of the workshop. Check out the reveal.js documentation for more on using reveal.js.
This workshop is designed to be scheduled as an 8h class, including a 1h lunch break and two further 20m breaks (in other words, if you ran the material without a break, it would take you about 6-7h).
Because the class requires hands-on coding, we recommend a maximum of 16 participants per instructor, assuming participants who are comfortable with shell scripting and a text editor. If participants aren't familiar editing and running commands at the shell, you will need a lower ratio of students to instructors, and more time.
We recommend using an empty AWS account for this workshop. Each participant will set up their own VPC in the course of the workshop, and if you've created a new AWS account you will need to submit a request to raise the default VPC limit of 5 VPCs per region. This should be done several days in advance of delivering the class.
The instructor should upload the contents of the code/scripts directory to an S3 bucket. The code and slides assume that the S3 bucket is called
18f-terraform-workshop, but if you're not running this at 18F, you'll want to upload to your own bucket, and you should change all the references to this S3 bucket in the repo. Find them using
grep -R "18f-terraform-bucket" *
Charity Majors' blog posts on Terraform proved valuable in preparing this workshop. Thanks Charity.
This project is in the public domain within the United States, and copyright and related rights in the work worldwide are waived through the CC0 1.0 Universal public domain dedication.
All contributions to this project will be released under the CC0 dedication. By submitting a pull request, you are agreeing to comply with this waiver of copyright interest.
Note that parts of this project have been taken from the reveal.js repository, and are Copyright (C) 2016 Hakim El Hattab.