Creating reusable templates
We already know that we are going to deploy a three-tier application, but we're going to have more than three stacks.
The first stack we will create is our core stack.
This stack will consist of the following:
- Network (VPC, subnets, and so on)
- IAM (roles and users)
We will have two environments for our application: test and production. These environments will differ in terms of size, the amount of resources, and security settings.
The code of our templates is going to be huge, so you will only see blocks that are specific for the topic; the entire source code can be found in Packt's repository.
Before we start, let's think about how we are going to organize the template and its parameters. Since we are going to reuse the same template for two different stacks (production and test), we will need to separate the network ranges and use different naming conventions.
In terms of network, our stack will have the...