James Millar

View Original

5 Awesome Things -CloudFormation

What is AWS CloudFormation?

AWS CloudFormation allows you to write code, in the form of templates, that describes the infrastructure you use in AWS. You can use it to create services such as Amazon EC2 instances or Amazon RDS DB instances, in fact anything can be provisioned using CloudFormation. We call this Infrastructure as Code and there are many benefits to this approach. Your infrastructure is easier to maintain and deploy for starters.

Why should I use AWS CloudFormation?

A typical application on AWS will use many different resources and services all running together and managing all these resources can be a challenging process. If you’re creating and managing them through the AWS console then it’s going to be time consuming and error prone

By using AWS CloudFormation, you can create, deploy, configure, and provide all these services in a single template that you can even check into source control.

Features of AWS CloudFormation

Let’s take a look at my top 5 features of AWS CloudFormation.

1. Modelling:

AWS CloudFormation allows you to create a model of the infrastructure for your application. To do this we create a template file that’s written in either JSON or YAML format.

2. Reusability:

You can reuse templates over and over again? Need some load balanced EC2 instances for a new application? Just dig out the template and deploy.

3. Design Templates:

If you’re new to AWS, you might find it difficult to work with JSON or YAML template files. Fear not, you can always use the built in design templates in the AWS Console. Here you can literally drag and drop resources to build your template.

4. Previewing:

This is one of the best features of AWS CloudFormation. After you change a template, you can preview the changes. You can save a lot of time and embarrassment here.

5. Extensibility:

In addition to managing and deploying Amazon Services, AWS CloudFormation enables you to include third party application resources too. This could include monitoring, version control, and team productivity systems. It’s simple and can all be done in a few lines of code.