Terraform on AWS & AWS Cloudformation

Introduction to AWS Cloudformation, Templates, Stack, Resources, Output,SDK

Learning Outcome

5

Understand the purpose of AWS CDK

4

Recognize Resources and Outputs in templates

3

Understand how Stacks manage infrastructure

2

Identify CloudFormation template components

1

Understand the role of AWS CloudFormation in Infrastructure as Code

Let’s recall what we already learned

01

Terraform can create and manage AWS infrastructure resources like EC2, S3, and VPC

02

Infrastructure as Code tools help automate infrastructure deployment instead of manual configuration

Infrastructure as Code: The Blueprint Analogy”

Imagine a construction company building multiple office buildings

Infrastructure as Code: The Blueprint Analogy”

Instead of designing every building manually, they use a standard blueprint that defines:

Number of floors

Rooms and layout

Electrical systems

Once the blueprint is ready, it can be reused to build multiple buildings consistently

From Blueprint to Cloud Infrastructure

Template BluePrint

Similarly, in AWS, CloudFormation allows us to define infrastructure using templates, which act like blueprints for creating and managing cloud resources

Cloud Infrastructure

What is AWS CloudFormation?

AWS CloudFormation is a service that allows users to define and manage AWS infrastructure using code templates.

Instead of creating resources manually in the AWS console,

CloudFormation lets you describe infrastructure in a template file

AWS then automatically provisions the required resources

Why CloudFormation is Used

CloudFormation helps organizations:

Automate infrastructure creation

Maintain consistent environments

Track infrastructure changes

Deploy complex architectures easily

01

02

03

04

It is widely used for managing repeatable and scalable AWS infrastructure deployments

What is a Template?

A CloudFormation Template is a JSON or YAML file that describes the AWS infrastructure you want to create

The template acts as a

blueprint for cloud resources

What Templates Contain

Templates usually include sections such as:

Mappings

The most important section is Resources,

where infrastructure components are defined

Resources

Parameters

Outputs

Conditions

Example Template

Resources:

 MyEC2Instance:

   Type: AWS::EC2::Instance

   Properties:

     InstanceType: t2.micro

     ImageId: ami-123456

 

This template tells AWS to create an EC2 instance

What is a Stack?

A Stack is a collection of AWS resources created and managed together using a CloudFormation template

When a template is executed, AWS creates a stack that contains all the resources defined in that template.

Stack Operations

CloudFormation stacks support several operations:

Create stack

Update stack

When a stack is deleted, all associated resources are removed automatically

Delete stack

What are Resources?

Resources are the actual AWS infrastructure components defined in a template

Each resource is declared inside the

Resources section of the template.

Examples of resources include:

  • EC2 instances
  • S3 buckets
  • VPC networks
  • Load balancers
  • Databases

What are Resources?

Example Resource :

Resources:

 MyBucket:

   Type: AWS::S3::Bucket

This creates an S3 bucket resource in AWS

What are Outputs?

Outputs allow you to display important information after stack creation

Outputs are useful for retrieving values such as:

Instance public IP address

Load balancer DNS name

Resource IDs

These values can also be used by other stacks or applications

What are Outputs?

Example Output

This output displays the 

ID of the created EC2 instance.

Outputs:

 InstanceId:

   Value: !Ref MyEC2Instance

What is AWS CDK?

Python

TypeScript

Java

C#

AWS Cloud Development Kit is a framework that allows developers to define cloud infrastructure using programming languages instead of template files

Supported languages include:

The CDK code is automatically converted into CloudFormation templates

Why CDK is Used ?

CDK provides several advantages:

Familiar programming languages

Reusable components

Better code organization

Easier integration with application code

It simplifies the process of writing complex infrastructure definitions

Relationship Between CloudFormation and CDK

The relationship works like this:

This allows teams to combine software development practices with infrastructure automation

Developers write infrastructure code using CDK

CDK converts the code into CloudFormation templates

CloudFormation deploys the infrastructure on AWS

Key Components of CloudFormation

Important elements include:

Templates → Infrastructure blueprint

Stacks → Running instance of a template

Resources → Actual infrastructure components

Outputs → Useful information generated after deployment

Infrastructure Workflow

Typical CloudFormation workflow:

1. Create a template

2. Deploy the template as a stack

3. AWS provisions the resources

4. Outputs provide deployment information

Summary

5

Outputs provide useful deployment information

4

Resources represent AWS infrastructure components

3

Templates create,manage resources using CloudFormation stacks

2

Infrastructure is defined using JSON or YAML templates

1

CloudFormation automates AWS infrastructure (IaC)

Quiz

What is the purpose of an AWS CloudFormation template?

A. To monitor AWS resources

B. To define AWS infrastructure using code

C. To manage AWS billing

D. To configure IAM users

Quiz

What is the purpose of an AWS CloudFormation template?

A. To monitor AWS resources

B. To define AWS infrastructure using code

C. To manage AWS billing

D. To configure IAM users

Terraform on AWS and AWS Cloudformation : Introduction to AWS Cloudformation, Templates, Stacks, Resources, Output, CDK

By Content ITV

Terraform on AWS and AWS Cloudformation : Introduction to AWS Cloudformation, Templates, Stacks, Resources, Output, CDK

  • 5