0
0
AWScloud~30 mins

CloudFormation vs Terraform awareness in AWS - Hands-On Comparison

Choose your learning style9 modes available
CloudFormation vs Terraform Awareness
📖 Scenario: You are working as a cloud engineer who needs to understand the basics of two popular infrastructure tools: AWS CloudFormation and Terraform. Both help you create and manage cloud resources, but they use different ways to describe your infrastructure.Imagine you want to create a simple cloud setup with a virtual server. You will write small pieces of code to represent this setup in both CloudFormation and Terraform formats.
🎯 Goal: Build simple configuration snippets for AWS EC2 instance creation using both CloudFormation and Terraform syntax. This will help you see how each tool defines infrastructure and understand their differences.
📋 What You'll Learn
Create a CloudFormation template snippet defining an EC2 instance with a specific name and instance type.
Create a Terraform configuration snippet defining an EC2 instance with the same name and instance type.
Add a variable or parameter to each snippet to specify the instance type.
Show the final combined snippets representing the EC2 instance creation in both tools.
💡 Why This Matters
🌍 Real World
Cloud engineers often need to write infrastructure code to create and manage cloud resources. Knowing both CloudFormation and Terraform helps them work with different teams and projects.
💼 Career
Understanding these tools is essential for roles like Cloud Engineer, DevOps Engineer, and Site Reliability Engineer, as they automate cloud infrastructure deployment and management.
Progress0 / 4 steps
1
Create CloudFormation EC2 Instance Snippet
Create a CloudFormation template snippet that defines an EC2 instance resource named MyEC2Instance with the instance type t2.micro. Use the resource type AWS::EC2::Instance and set the InstanceType property to t2.micro.
AWS
Need a hint?

Use YAML format with Resources as the root key. Define MyEC2Instance under it with the correct type and properties.

2
Add CloudFormation Parameter for Instance Type
Add a CloudFormation Parameters section to your template with a parameter named InstanceTypeParam. Set its type to String and default value to t2.micro. Then update the InstanceType property of MyEC2Instance to use this parameter with !Ref InstanceTypeParam.
AWS
Need a hint?

Parameters go at the top level. Use !Ref to refer to the parameter inside the resource properties.

3
Create Terraform EC2 Instance Snippet
Create a Terraform configuration snippet that defines an AWS EC2 instance resource named my_ec2_instance using the resource type aws_instance. Set the instance_type attribute to t2.micro and the ami attribute to ami-0c55b159cbfafe1f0 (a common Amazon Linux 2 AMI).
AWS
Need a hint?

Use Terraform HCL syntax. The resource block starts with resource "aws_instance" "my_ec2_instance".

4
Add Terraform Variable for Instance Type
Add a Terraform variable named instance_type with a default value of t2.micro. Then update the instance_type attribute of my_ec2_instance resource to use this variable with var.instance_type.
AWS
Need a hint?

Define variables outside resource blocks. Use var.instance_type inside the resource to refer to the variable.