I am happy to announce that my new course, AWS CloudFormation Step by Step: Beginner to Intermediate became live on Udemy last night.
In this post, I want to introduce you with my new course. I will talk about the topics, what you will learn in it as well as the structure of the course. In addition, I will also share a free coupon for a limited time with the followers of this blog.
What is this course about?
In this course, I aim to teach AWS CloudFormation to the beginners step by step and help them in achieving an intermediate level where they use AWS CloudFormation for their daily needs on AWS. Besides, I am also preparing an advanced level version which takes this course as a basis, too. But many of those features are not needed until you reach a certain level on CloudFormation.
In the beginning, I considered building a single course on AWS CloudFormation and teach both beginner and advanced level features in it. However, after giving more thought into it, I saw that the expectations of the students would be very different and delivery would not be efficient. Some students would be willing to learn the basics and some intermediate features that are enough to integrate AWS CloudFormation in their daily lives. However, some students would be already using CloudFormation and looking for more Advanced level features like nested stacks, cross-stack references, stack policies, etc.
Hence, I decided to prepare two courses targeting different levels of AWS CloudFormation users. Actually, I saw other courses claiming to teach all CloudFormation features, but I do not think that they can deliver this promise. For example, you cannot teach nested stacks in 2 or 4 minutes. You can only explain what it is about and I do this in this course as well. Anyway.
What you will learn in this course?
After finishing this course,
- You will be able to use AWS CloudFormation in your daily needs on AWS.
- You will be able to start managing your AWS infrastructure as code and automate the provisioning of your AWS resources.
- You will gain a solid basis on AWS CloudFormation and be ready to learn more advanced level concepts if you need them in the future.
- You will be able to write your own templates using YAML and define your AWS resources in them.
- In addition, you will be able to enhance your templates and increase their reusabilities by using parameters, conditions, mappings, metadata and outputs.
Then, let’s talk about what you will learn in this course section by section:
- We will start with what AWS CloudFormation is and make an introduction to AWS CloudFormation concepts.
- We will create our first AWS CloudFormation stack using an existing template.
- Next, we will delete our stack to clean up the resources we created.
- After these, I will assign you a section activity. I will explain section activities in more detail below.
Introduction to Templates and Resources
- We will start with the template anatomy and sections in a CloudFormation template.
- We will write our first template using YAML and define our first resource, an Amazon EC2 instance, in it.
- We will add a security group to our template and update our stack. You will learn how to update your stack by replacing its current template.
- After this, we link our two resources in our template, or in other words, we attach our security group to our EC2 instance. You will learn how to reference a resource from another.
- Then we will talk about some intermediate level features: Stack updates that require replacements and how to order resource creations in a template.
- Again, we will have a section activity.
This section is the longest one and covers most of the features of CloudFormation parameters.
- Firstly, we will discuss what parameters are and make an introduction to parameter types.
- We will define our first parameter in a template and create a stack from it.
- We will add more parameters to our template and you will learn how to update your stack with new parameters.
- We will start defining constraints for our parameters and you will learn how to define maximum and minimum lengths or values for your string and number type parameters respectively.
- You will learn how to allow only specific values for your parameters as well as how to define default values for them.
- Next, I will show you how to define pattern constraints for your paramaters.
- You will learn how to update a stack without changing its template.
- We will talk about how to hide parameter values on AWS CloudFormation Console and make examples of list type parameters.
- I will introduce you with AWS-specific parameter types such as VPC IDs and subnet IDs with examples.
- In addition, you will learn how to use pseudo parameters AWS CloudFormation provides in addition to using Fn::Sub function to substitute a variable in your strings.
- Of course, we will have a section activity covering almost all topics. In my solution, I also show a few more additional tips.
Metadata and Mappings
In this section, you will learn the Metadata and Mappings sections of a CloudFormation template.
- We will make an introduction to the Metadata section and talk about its use cases.
- You will learn how to label, order and group your parameters on AWS CloudFormation Console using the Metadata section.
- Then, we will talk about what Mappings are and make an introduction to Fn::FindInMap function. We will make an example of using mappings.
- We will conclude the section with a section activity.
Conditions and Outputs
We will cover the Conditions and Outputs in AWS CloudFormation templates in this section.
- We will make an introduction to the Conditions section and discuss why to use it.
- You will learn how to define conditions to create your AWS resources.
- In addition, we will make an example of configuring a resource property conditionally.
- Then, we will talk about the Outputs section and make a simple example of it.
- We will discuss how to reference resource attributes in a template and make an example by defining an output for an Amazon RDS endpoint.
- We will merge Conditions and Outputs. You will learn how to create an output conditionally.
- We will have a section activity at the end of this section as well.
In this section, we will talk about an intermediate level AWS CloudFormation feature: Change sets.
- Firstly, you will learn what change sets are and understand why to use them while updating your stacks.
- We will make an example of creating a change set to update a stack without changing its template.
- Then, we will edit our template and create another change set by replacing the stack’s current template.
- Next, we will execute one of the change sets we created and see the results.
- We will also make an example of deleting change sets.
- Finally, we will finish the section with a section activity.
As you see, most of the lectures have hands-on examples in this course. In addition to them, we have section activity lectures in each section. In each of these lectures, I give you an assignment and explain the steps to finish the activity successfully. Then, in the following lecture, I show you my solution for the activity.
So, with the help of section activities, you will have a chance to gain more hands-on experience. Besides, by watching the solution activities, you will be able to see more examples of the section topics.
So, let’s talk about the prerequisites of this course:
- Of course, you need to have an AWS account to make the examples and section activities. I recommend using an AWS free-tier elligible one.
- You should have an intermediate level AWS knowledge that is enough to use core AWS services like EC2, RDS, VPC, SQS and SNS in our examples.
- This course targets only beginner level AWS CloudFormation users. If you are an intermediate level AWS CloudFormation user looking for advanced level topics, this course may not be for you. As I said, I am also building an advanced level version of this course and will be happy to see you there when it is ready.
Building a new course has lots of challeges and I learned a lot in this process. I aimed to provide a high quality course, but of course the students will decide this in the end. I hope it helps you in learning AWS CloudFormation.
See you in my AWS CloudFormation Step by Step: Beginner to Intermediate course!