From e6e8ab6d68e9553e6cebe340c18b2b90083137d8 Mon Sep 17 00:00:00 2001 From: Chris Williams Date: Sat, 18 Feb 2023 19:26:17 -0500 Subject: [PATCH] add day 51 - CloudFormation --- 2023/day50.md | 3 +-- 2023/day51.md | 25 +++++++++++++++++++++++++ 2023/images/day51-1.png | Bin 0 -> 33854 bytes 3 files changed, 26 insertions(+), 2 deletions(-) create mode 100644 2023/images/day51-1.png diff --git a/2023/day50.md b/2023/day50.md index 6613160..9a0cfa6 100644 --- a/2023/day50.md +++ b/2023/day50.md @@ -41,5 +41,4 @@ Once you have access to your free tier account, there are a few additional steps ## Resources [Create your free AWS account](https://youtu.be/uZT8dA3G-S4) -[Generate credentials, budget, and billing alarms via CLI](https://youtu.be/OdUnNuKylHg) - +[Generate credentials, budget, and billing alarms via CLI](https://youtu.be/OdUnNuKylHg) \ No newline at end of file diff --git a/2023/day51.md b/2023/day51.md index e69de29..43edf7d 100644 --- a/2023/day51.md +++ b/2023/day51.md @@ -0,0 +1,25 @@ +# Day 51: Infrastructure as Code (IaC) and CloudFormation + +Infrastructure as code (IaC) is a process that allows developers and operations teams to manage and provision infrastructure through code rather than manual processes. With IaC, infrastructure resources can be managed using configuration files and automation tools, resulting in faster, more consistent, and more reliable infrastructure deployments. + +One of the most popular IaC tools is AWS CloudFormation, it allows operations, devops, & developers to define infrastructure resources using templates in YAML or JSON format. These templates can be version-controlled and shared across teams, allowing for easy collaboration and reducing the likelihood of configuration drift. + +![](images/day51-1.png) + +CloudFormation offers a number of benefits for those looking to implement IaC. One key advantage is the ability to automate infrastructure deployment and management, which saves time and reduces the risk of human error. By using CloudFormation, developers and operations teams can define infrastructure resources such as virtual machines, databases, and networking configurations, and then deploy them in a repeatable and consistent way. + +Another benefit of using CloudFormation is the ability to track changes to infrastructure resources. When a change is made to a CloudFormation template, the service can automatically update the resources to reflect the new configuration. This ensures that all resources are kept in sync and reduces the likelihood of configuration errors. + +CloudFormation also provides the ability to manage dependencies between resources. This means that resources can be provisioned in the correct order and with the correct configuration, reducing the likelihood of errors and making the deployment process more efficient. + +In addition to these benefits, CloudFormation also offers a range of other features, such as the ability to roll back changes and the ability to create templates that can be used to deploy entire applications. These features make it easier to manage infrastructure resources and ensure that deployments are consistent and reliable. + +## Resources: + +[What is AWS CloudFormation? Pros & Cons?](https://youtu.be/0Sh9OySCyb4) + +[CloudFormation Tutorial](https://www.youtube.com/live/gJjHK28b0cM) + +[AWS CloudFormation User Guide](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) + +[AWS CloudFormation Getting Started step-by-step guides](https://aws.amazon.com/cloudformation/getting-started/) \ No newline at end of file diff --git a/2023/images/day51-1.png b/2023/images/day51-1.png new file mode 100644 index 0000000000000000000000000000000000000000..9bd53eebe742626627a31f245e764cf1127e4657 GIT binary patch literal 33854 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 I^J&=s0;yPsOaK4? literal 0 HcmV?d00001