Bird
Raised Fist0
AWScloud~5 mins

CloudFormation vs Terraform awareness in AWS - Quick Revision & Key Differences

Choose your learning style10 modes available
Recall & Review
beginner
What is AWS CloudFormation?
AWS CloudFormation is a service that helps you create and manage AWS resources using templates written in JSON or YAML. It automates resource setup in a safe and repeatable way.
Click to reveal answer
beginner
What is Terraform?
Terraform is an open-source tool that lets you define and manage infrastructure across many cloud providers using a simple configuration language called HCL (HashiCorp Configuration Language).
Click to reveal answer
intermediate
Name one key difference between CloudFormation and Terraform.
CloudFormation works only with AWS services, while Terraform supports many cloud providers like AWS, Azure, Google Cloud, and others.
Click to reveal answer
intermediate
How do CloudFormation and Terraform handle state management differently?
CloudFormation manages state automatically within AWS. Terraform keeps state in a separate file that you can store locally or remotely, which helps track resource changes.
Click to reveal answer
intermediate
Why might someone choose Terraform over CloudFormation?
Because Terraform supports multiple cloud providers and has a simpler, more flexible language, it is often chosen for managing infrastructure across different clouds or for more complex setups.
Click to reveal answer
Which tool is limited to managing only AWS resources?
ACloudFormation
BTerraform
CBoth
DNeither
What language does Terraform use for its configuration files?
AJSON
BHCL
CXML
DYAML
How does CloudFormation store its state information?
AIn a remote database you must configure
BIn a local file
CAutomatically managed within AWS
DIt does not store state
Which tool is better suited for managing infrastructure across multiple cloud providers?
ATerraform
BBoth are equally suited
CCloudFormation
DNeither supports multi-cloud
Which of the following is a benefit of using Infrastructure as Code tools like CloudFormation or Terraform?
ARequires no learning
BManual setup of resources
COnly works with virtual machines
DAutomated, repeatable resource management
Explain the main differences between AWS CloudFormation and Terraform.
Think about provider support, state management, and configuration language.
You got /5 concepts.
    Describe why someone might choose Terraform instead of CloudFormation for their infrastructure projects.
    Consider project scope and tool flexibility.
    You got /4 concepts.

      Practice

      (1/5)
      1. Which statement best describes the main difference between AWS CloudFormation and Terraform?
      easy
      A. CloudFormation works only with AWS, while Terraform supports multiple cloud providers.
      B. Terraform is only for AWS, CloudFormation supports all clouds.
      C. Both tools only work with AWS services.
      D. CloudFormation supports multiple clouds, Terraform is AWS-only.

      Solution

      1. Step 1: Understand CloudFormation scope

        CloudFormation is designed specifically for AWS and manages AWS resources only.
      2. Step 2: Understand Terraform scope

        Terraform supports many cloud providers like AWS, Azure, Google Cloud, and more.
      3. Final Answer:

        CloudFormation works only with AWS, while Terraform supports multiple cloud providers. -> Option A
      4. Quick Check:

        CloudFormation = AWS-only, Terraform = multi-cloud [OK]
      Hint: CloudFormation = AWS-only; Terraform = many clouds [OK]
      Common Mistakes:
      • Thinking Terraform only works with AWS
      • Believing CloudFormation supports multiple clouds
      • Confusing both as identical tools
      2. Which of the following is the correct way to define a resource in AWS CloudFormation?
      easy
      A. resource "aws_ec2_instance" "web" {}
      B. resource "aws_instance" "web" {}
      C. AWS::EC2::Instance:
      D. resource "ec2_instance" "web" {}

      Solution

      1. Step 1: Identify CloudFormation syntax

        CloudFormation uses YAML or JSON with resource types like 'AWS::EC2::Instance'.
      2. Step 2: Recognize Terraform syntax

        Terraform uses 'resource "aws_instance" "name" {}'.
      3. Final Answer:

        CloudFormation resource types use 'AWS::Service::Resource' format. -> Option C
      4. Quick Check:

        CloudFormation uses AWS:: notation [OK]
      Hint: CloudFormation uses AWS::Service::Resource format [OK]
      Common Mistakes:
      • Confusing Terraform resource syntax with CloudFormation
      • Using Terraform resource blocks in CloudFormation
      • Misnaming resource types
      3. Given this Terraform snippet:
      resource "aws_s3_bucket" "bucket" {
        bucket = "my-unique-bucket"
        acl    = "private"
      }

      What will happen when you run terraform apply?
      medium
      A. Creates a public S3 bucket named 'my-unique-bucket' in AWS.
      B. Fails because bucket names cannot be unique.
      C. Throws a syntax error due to missing region.
      D. Creates a private S3 bucket named 'my-unique-bucket' in AWS.

      Solution

      1. Step 1: Analyze Terraform resource block

        The resource defines an AWS S3 bucket with name 'my-unique-bucket' and ACL set to 'private'.
      2. Step 2: Understand Terraform apply behavior

        Terraform will create the bucket with the specified name and private access control.
      3. Final Answer:

        Creates a private S3 bucket named 'my-unique-bucket' in AWS. -> Option D
      4. Quick Check:

        ACL 'private' means private bucket [OK]
      Hint: ACL 'private' means bucket is private [OK]
      Common Mistakes:
      • Assuming default ACL is public
      • Expecting syntax error without region (region is set elsewhere)
      • Thinking bucket names cannot be unique (they must be unique)
      4. You wrote this CloudFormation snippet:
      Resources:
        MyBucket:
          Type: AWS::S3::Bucket
          Properties:
            BucketName: my-bucket
            AccessControl: PublicRead

      But deployment fails with an error about bucket name. What is the likely cause?
      medium
      A. BucketName must be globally unique and 'my-bucket' is already taken.
      B. AccessControl property is invalid in CloudFormation.
      C. Resource type AWS::S3::Bucket is incorrect.
      D. BucketName cannot be specified in CloudFormation.

      Solution

      1. Step 1: Understand S3 bucket naming rules

        S3 bucket names must be globally unique across all AWS accounts.
      2. Step 2: Analyze error cause

        If 'my-bucket' is already used, deployment fails due to name conflict.
      3. Final Answer:

        BucketName must be globally unique and 'my-bucket' is already taken. -> Option A
      4. Quick Check:

        S3 bucket names are global and unique [OK]
      Hint: S3 bucket names must be globally unique [OK]
      Common Mistakes:
      • Thinking AccessControl is invalid (it is valid)
      • Assuming resource type is wrong
      • Believing BucketName is optional or disallowed
      5. Your team wants to manage infrastructure across AWS, Azure, and Google Cloud with one tool. Which approach is best?
      hard
      A. Use AWS CloudFormation for all clouds to keep consistency.
      B. Use Terraform because it supports multiple cloud providers.
      C. Use separate CloudFormation stacks for each cloud provider.
      D. Use manual console setup for each cloud to avoid tool complexity.

      Solution

      1. Step 1: Identify tool cloud support

        CloudFormation only supports AWS, so it cannot manage Azure or Google Cloud.
      2. Step 2: Choose tool for multi-cloud management

        Terraform supports AWS, Azure, Google Cloud, and others in one tool.
      3. Step 3: Evaluate other options

        Separate CloudFormation stacks or manual setup increase complexity and reduce automation benefits.
      4. Final Answer:

        Use Terraform because it supports multiple cloud providers. -> Option B
      5. Quick Check:

        Terraform = multi-cloud support [OK]
      Hint: Terraform supports many clouds; CloudFormation is AWS-only [OK]
      Common Mistakes:
      • Assuming CloudFormation works outside AWS
      • Thinking manual setup is simpler for multi-cloud
      • Believing separate CloudFormation stacks can manage non-AWS clouds
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard