
Learn which AWS region you should use while doing the examples.
In this lecture, you will learn the topics below:
Why to use cross-stack references and how to export outputs of a stack to make them usable by others.
How to use the intrinsic Fn::Join function to concatenate multiple list items as a single string using a delimiter.
In this lecture, you will learn the topics below:
How to reference an output exported by another stack using the intrinsic Fn::ImportValue function.
How to divide a string into multiple item using a delimiter with the intrinsic Fn::Split function.
Viewing exports and stacks importing them on AWS CloudFormation Console.
In this lecture, you will learn the topics below:
Updating referenced stack resources.
Understanding what happens when you try to update the value of an exported output which is used by another stack.
Using the intrinsic Fn::GetAZs and Fn::Select functions to select an availability zone from your stack's region dynamically during creation.
In this lecture, you will learn the topics below:
Understanding what happens when you try to delete a stack that has exports used by another stack.
Viewing the stacks importing an export using AWS CloudFormation Console and AWS CLI.
In this lecture, you will learn the topics below:
Enabling or disabling termination protection on a stack to prevent it from accidental deletion.
Deleting referenced and referencing stacks in order.
In this lecture, you will learn the topics below:
Defining nested stack resources in a root template.
Passing outputs of one nested stack to another in a root template.
Creating nested stacks using AWS CloudFormation Console.
In this lecture, you will learn how to update your nested stacks through your root stacks using AWS Management Console.
In this lecture, you will learn how to delete your nested stacks through your root stacks with a hands-on example.
In this lecture, you will learn the topics below:
Using local paths for nested stack templates instead of S3 URLs in the root template.
Packaging nested templates using 'aws cloudformation package' command of AWS CLI.
Deploying packaged root template with 'aws cloudformation deploy' command of AWS CLI.
In this lecture, you will learn the topics below:
Using bash scripts to create and update nested stacks.
How updates are performed when only one of the nested stacks is updated.
In this lecture, you will learn how termination protection works on nested stacks.
You will learn the topics covered in Section 2.
In this lecture, you will learn to provide bash scripts in the UserData property of your EC2 instances to execute commands while initializing them.
In this lecture, you will learn to define IAM resources with CloudFormation and provide IAM capabilities during stack deployments.
In this lecture, you will learn to make your stack creations wait until a specified number of success signals are received from your physical EC2 instance resources. We will also make an introduction to resource policy attributes with CreationPolicy and CloudFormation helper scripts with cfn-signal.
In this lecture, you will learn to define AWS::CloudFormation::Init metadata in your templates and initialize your EC2 instances with the cfn-signal helper script.
In this lecture, you will learn to define sources in your EC2 instance resources' AWS CloudFormation Init metadata sections to download source packages at launch. Besides, we will cover the usage of AWS::CloudFormation::Authentication metadata.
In this lecture, you will learn to define multiple configs and configsets in your AWS::CloudFormation::Init metadata sections and use them with cfn-init.
In this lecture, you will learn to configure the cfn-hup helper script on your EC2 instances to update your instance configurations with stack updates.
In this lecture, you will learn to view CloudFormation helper script logs on your EC2 instances. We will also make an example of cfn-get-metadata.
In this lecture, you will learn to configure and use AWS CloudFormation helper scripts with EC2 auto scaling group resources.
You will learn the topics covered in Section 3.
In this lecture, you will make a theoretical introduction to resource policy attributes and learn why to use them.
In this lecture, you will learn how to define the UpdatePolicy attribute in an EC2 auto-scaling group resource to perform rolling updates. It will be an example of the AutoScalingRollingUpdatePolicy attribute.
In this lecture, you will learn how to define the UpdatePolicy attribute in an EC2 auto-scaling group resource to perform replacing updates. It will be an example of the AutoScalingReplacingUpdatePolicy attribute.
In this lecture, you will learn the default deletion behavior of the Amazon S3 bucket and Amazon RDS DB instance resources and how to change these using the DeletionPolicy attribute.
Besides, you will see what happens if a stack deletion fails.
In this lecture, you will learn how to define and use the UpdateReplacePolicy attribute in your resources with an Amazon RDS example.
You will learn the topics covered in Section 4.
In this lecture, we make a brief introduction to stack policies and what they are used for.
In this lecture, you will learn how to create and set stack policies on your stacks and update them using AWS CLI later. We will also talk about how to provide a temporary stack policy during a stack update.
In this lecture, you will learn how to protect a specific resource in your stack from updates using stack policies.
In this lecture, you will learn how to protect your stack resources from a specific type of update using stack policies.
In this lecture, you will learn how to protect resources of specific resource types from updates instead of providing the resources one by one. It includes using the conditions in stack policies.
You will learn the topics covered in Section 5.
In this lecture, I will introduce you to CloudFormation custom resources, and you will understand what they are and how they work before the demos.
In this lecture, I will make a demo for custom resource creation by providing a Python AWS Lambda function as the custom resource provider. You will understand the logic behind custom resource operations.
In this lecture, you will learn how to handle custom resource updates that require replacements. You will understand how CloudFormation orchestrates this operation and what you need to do in your custom resource providers for this
In this lecture, you will learn how to handle custom resource deletions in your custom resource providers and understand how CloudFormation orchestrates this.
In this lecture, you will understand what wait conditions are and how they work.
In this lecture, you will learn to use wait conditions with the CreationPolicy attribute and the cfn-signal helper script to pause the stack creation until a specified number of success signals are received.
In this lecture, you will learn how to define wait condition handles for wait conditions and signaling them success.
You will learn the topics covered in Section 6.
In this lecture, you will learn how to detect unmanaged changes to stack resources by performing drift detection on your stacks. We will make a simple example and resolve a drift by updating the stack template.
In this lecture, you will learn how to resolve a drift by removing the resource from the stack and import it back, using CloudFormation's resource import feature.
In this lecture, you will learn how to resolve a drift with a resource that lost its connection with the stack after the stack creation.
In this lecture, you will learn how to create a stack by importing existing resources not managed by any stack.
You will learn the topics covered in Section 7.
This lecture will introduce you AWS Serverless Application Model (SAM) and its command-line tool, SAM CLI. You will learn where to get the information to install SAM CLI according to your operating system with a Mac OS X demo.
In this lecture, you will learn how to initialize a SAM application using SAM CLI and the Hello World quick start template provided by AWS. We will go over the options of the sam init command and explain the files and folders created.
In this lecture, you will learn how to deploy a SAM application using SAM CLI's sam deploy command in the guided mode. We will also go over the resources it created afterward.
In this lecture, you will see an example of customizing your AWS Serverless Application Model (SAM) projects started from the Hello World template. We will customize the REST API paths and add a new function. You will use the samconfig file created in the previous lecture to deploy your changes with SAM CLI.
In this lecture, you will learn how to use AWS SAM resource types documentation to get the details about serverless resources and Lamdba event types supported. We will make an example of defining a simple DynamoDB table.
Besides, you will learn to use the SAM templates' Globals section to define shared properties for your AWS Lambda functions and other serverless resources.
In this lecture, you will learn how to use AWS Serverless Application Model (SAM) policy templates to define IAM policies for your AWS Lambda functions. We will make an example of granting read, and CRUD permissions to the DynamoDB added in the previous lecture.
In this lecture, you will learn how to use parameters with AWS Serverless Application Model (SAM) templates. You will also see an example of updating the SAM config file during deployments.
In this lecture, you will understand how to delete SAM stacks, and the SAM CLI managed stack created for S3 uploads in the first deployment in your AWS region.
Congratulations for finishing the course!
A clear, hands-on path to advanced AWS CloudFormation — from cross-stack design to automation with helper scripts, policies, and SAM.
AWS CloudFormation is the foundation of Infrastructure as Code (IaC) on AWS — the service that defines, provisions, and manages resources in a reliable and automated way. This course continues from AWS CloudFormation Step by Step – Beginner to Intermediate and focuses on advanced CloudFormation techniques that experienced AWS engineers use in real-world environments.
You’ll explore how to design modular and reusable architectures with cross-stack references and nested stacks, automate configurations using helper scripts such as cfn-init, cfn-signal, and cfn-hup, and control resource lifecycles with policy attributes and stack policies. The course also covers extending CloudFormation with Lambda-backed custom resources, coordinating deployments with wait conditions, detecting and resolving drift, and importing existing resources back into management. Finally, you’ll integrate serverless applications using the AWS Serverless Application Model (SAM) to expand your Infrastructure as Code skills.
Each lesson is concise, practical, and designed to help you apply advanced CloudFormation features confidently — without unnecessary complexity. By completing this course, you’ll enhance your Infrastructure as Code expertise and gain practical experience relevant to real DevOps projects and the AWS Certified DevOps Engineer – Professional certification.
If you’ve already completed AWS CloudFormation Step by Step – Beginner to Intermediate or feel comfortable with CloudFormation fundamentals, this course is your natural next step toward advanced Infrastructure as Code proficiency.
Start learning today and bring structure, automation, and confidence to your AWS environments.