Enumerating the automation options
The following diagram (Figure 3.1) illustrates the evolution of infrastructure automation in AWS. Most users start off with manual configuration using playbooks or wikis and the AWS console. The challenge with this is it’s difficult to repeat, and if you need to change or add something, you need to do it manually.
The next step is to then use shell scripts to automate the deployment of AWS resources using, for example, the AWS CLI. This is not perfect because if you run the same command twice you can get different results. Thus, the AWS CLI is not (necessarily) idempotent. So, in 2011, AWS released CloudFormation, an IaC framework that can safely create infrastructure resources.
Figure 3.1 – Automation options
IaC has become best practice for deploying AWS resources, and in 2014 HashiCorp released Terraform, which has become very popular and again allows you to automate and deploy AWS resources safely...