What is Infrastructure as Code?
Provisioning cloud infrastructure manually using the web console is error-prone, slow, and impossible to track. Infrastructure as Code (IaC) allows engineers to define servers, networks, databases, and permissions in text configuration files. This code can be version-controlled, reviewed, and run automatically.
Terraform vs. AWS CloudFormation
The two most popular tools for IaC are HashiCorp Terraform and AWS CloudFormation.
- Terraform: An open-source, cloud-agnostic tool. You can use it to manage resources on AWS, Azure, GCP, Cloudflare, and hundreds of other platforms using the HashiCorp Configuration Language (HCL).
- CloudFormation: AWS’s proprietary tool. It is deeply integrated into the AWS ecosystem, offering day-one support for new AWS services, but it cannot manage resources outside of AWS.
# Simple Terraform resource block
resource "aws_instance" "app_server" {
ami = "ami-0c55b159cbfafe1f0"
instance_type = "t3.micro"
tags = {
Name = "ANN-AppServer"
}
}