Handling different environments with Terraform
It's a common and recommended setup to have different infrastructure environments, with some level of parity. Those environments can vary greatly between companies and projects in both names and focus, but here are commonly found environments:
- Development: where developers can implement and quickly test new features
- Staging: where the new features are tested in a more consistent environment than the development one, sometimes very similar to a preproduction environment
- Preproduction: this environment is the most similar possible to production
- Production: the full-featured live production environment
We'll see how using infrastructure-as-code and especially how Terraform fundamentally helps to build strong and replicated environments. This time we'll use a CoreOS AMI for a change.
Getting ready
To step through this recipe, you will need the following:
- A working Terraform installation
- An AWS account with an SSH key configured in Terraform...