The goal of this workshop is to become familiar with some of best practices using Terraform, discover existing solutions, Terraform modules and tools.
This workshop is a practical hands-on addition to Terraform Best Practices guide which has been created and provided by Anton Babenko. Some rights reserved.
Send your feedback by email to [email protected]. Contact me if you are looking for Terraform trainer or mentor for your project.
- Follow
@antonbabenko
on GitHub, Twitter, Linkedin. - Join chat room on Gitter during or before the workshop - gitter.im/terraform-best-practices-workshop/Lobby.
- Install latest version of Terraform 0.12.
- Install latest version of AWS CLI.
- Make sure that you have GitHub account created.
- Mac, Linux or Windows - all is fine as long as you can use it. If you want, you can get Linux box running using Vagrant+VirtualBox and install software from above on it.
- Access credentials to manage resources in workshop's AWS account will be provided at the beginning of the workshop.
Learn how to manage AWS infrastructure using existing building blocks - terraform-aws-modules.
- Terraform AWS modules is a collection of reusable building blocks of AWS infrastructure supported by the community.
- Task "Basic Terraform". Read tasks/0-basic/README.md for more details.
- Task "Network Stack" - VPC, Autoscaling, Security Group, ELB, ALB, RDS. Read tasks/1-network/README.md for more details.
- Task "IAM resources" - IAM users, groups, permissions, roles, multiple AWS accounts, assuming roles.
- Task "Working with Terraform in a team using Atlantis" - Setup Atlantis to run on AWS Fargate using terraform-aws-atlantis module and integrate it with infrastructure repository.
- Official Terraform documentation
- Official Terraform AWS provider documentation
- pre-commit-terraform to have Terraform code automatically formatted before committing.
- terraform-docs to have documentation for variables and outputs automatically updated before committing.
- Slides for many of my talks and trainings are available here.
- Verify access to workshop AWS account (
905033465232
), S3 bucket for remote states (tfworkshop
), DynamoDB table for locking (tfworkshop
). Region -eu-west-1
. - Before workshop - create IAM users and IAM group (
developers
) by runningcd bootstrap-workshop && make apply
. - After workshop - remove IAM users and IAM group by running
cd bootstrap-workshop && make destroy
.
This work is licensed under Apache 2 License. See LICENSE for full details.