Book Image

Mastering AWS CloudFormation

By : Karen Tovmasyan
Book Image

Mastering AWS CloudFormation

By: Karen Tovmasyan

Overview of this book

DevOps and the cloud revolution have forced software engineers and operations teams to rethink how to manage infrastructures. With this AWS book, you'll understand how you can use Infrastructure as Code (IaC) to simplify IT operations and manage the modern cloud infrastructure effectively with AWS CloudFormation. This comprehensive guide will help you explore AWS CloudFormation from template structures through to developing complex and reusable infrastructure stacks. You'll then delve into validating templates, deploying stacks, and handling deployment failures. The book will also show you how to leverage AWS CodeBuild and CodePipeline to automate resource delivery and apply continuous integration and continuous delivery (CI/CD) practices to the stack. As you advance, you'll learn how to generate templates on the fly using macros and create resources outside AWS with custom resources. Finally, you'll improve the way you manage the modern cloud in AWS by extending CloudFormation using AWS serverless application model (SAM) and AWS cloud development kit (CDK). By the end of this book, you'll have mastered all the major AWS CloudFormation concepts and be able to simplify infrastructure management.
Table of Contents (17 chapters)
1
Section 1: CloudFormation Internals
4
Section 2: Provisioning and Deployment at Scale
9
Section 3: Extending CloudFormation

Introducing StackSets

The result of CloudFormation stack deployment is always a bunch of resources, grouped in a single stack. StackSets can be deployed to target regions or even accounts (whether in your AWS organization or just a separate account), as shown in the following diagram:

Figure 5.1 – StackSet architecture

Figure 5.1 – StackSet architecture

As you can see in the preceding picture, each StackSet consists of one or more stacks, provisioned from the same template. Those stacks are referred to as stack instances and are distributed among various accounts and regions. This is the first concept that we need to know.

Another concept is administrator and target accounts. An administrator account is an account where StackSets are managed. Whenever we want to create or update StackSets, we need to use an administrator account. This account must be granted to create stacks in other accounts (which is handled by IAM). The accounts in which stacks are being created are target...