Open In App

What is AWS Cloudformation?

Last Updated : 11 Sep, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

Amazon Web Services(AWS) offers cloud formation as a service by which you can provision and manage complicated services offered by AWS by using the code. Cloudformation will help you to manage the infrastructure and the services in the form of a declarative way.

How Does AWS Cloudformation Work?

Amazon Web Services (AWS) is the service offered by the AWS cloud it is mainly used to provision the service in the AWS like EC2, S3, Autoscaling, load balancing and so on you can provision all the service automation with the Infrastructure as a code (IAC), instead of managing all of them manually you can manage with the help of AWS Cloudformation.

AWS-Cloud-Formation

Features Of AWS Cloudformation

  1. No up-front investment
  2. Lowering operating cost
  3. Highly scalable
  4. Easy access
  5. Reducing business risks and maintenance expenses

Use Cases Of AWS Cloudformation

  1. Infrastructure Provisioning: AWS Cloudformation is used to provision the infrastructure which means as an infrastructure as a code and it can be performed multiple times to get exact replicas across all the environments.
  2. AutoScaling Environments: The infrastructure provisioned using AWS Cloudformation will always get provisioned with scaling environments which will help you scale up and scale down depending on the incoming load.
  3. Integration With Services: You can integrate the AWS Cloudformation with different services like code pipeline, Jenkins CI/CD pipeline and so on which will help to automate the deployment.
  4. Deployment In Multiple Regions: You can manage the AWS cloud formation to deploy it in multiple regions which will help you in disasters.

Benefits of AWS Cloudformation

  1. Automation: AWS CloudFormation helps to automate the process of creating, configuring, and managing AWS resources. This allows for the infrastructure to be deployed quickly, reliably, and repeatedly.
  2. Consistency and standardization: With AWS CloudFormation, it is possible to create standard templates of infrastructure stacks that can be used to create identical copies of the same infrastructure. This ensures consistency in the infrastructure deployment and makes it easier to maintain.
  3. Cost savings: AWS CloudFormation helps to reduce costs by allowing customers to use existing infrastructure templates and reuse them across multiple environments. This reduces the cost of designing and deploying new infrastructure.
  4. Security: AWS CloudFormation helps to ensure that all AWS resources are configured securely by using security policies and rules. This helps to protect the infrastructure from potential security threats.
  5. Scalability: AWS CloudFormation allows for the quick and easy scaling of resources on demand. This means that customers can quickly and easily add resources to meet their changing needs.

Amazon Web Services is a subsidiary of Amazon.com that provides on-demand cloud computing platforms to individuals, companies, and governments, on a paid subscription basis.

Why Do We Need AWS Cloudformation?

Just imagine that you have to develop an application that uses various AWS resources. When it comes to creating and managing those resources, it can be highly time-consuming and challenging. It can become difficult for you to develop the application when you are spending the whole time managing those AWS resources. What if we have a service for that? So here comes AWS Cloudformation in the picture.

What Is AWS Cloudformation?

This is a service provided by AWS that helps you create and manage the resources so that you can spend less time managing those resources and more time focusing on your applications that run in AWS. You just have to create a template thatbased on describes all the resources you require, then AWS Cloudformation will take care of managing and provisioning all the resources. AWS provides a Cloudformation designer for designing the template wherein you can put all the resources. You can also define the dependencies of all the resources that are needed. You can also reuse your templates to replicate your infrastructure in multiple environments and regions. 

Getting Started with AWS Cloudformation

Our template is created in JSON or YAML script. We will be discussing the JSON script in this article. JSON is a text-based format that represents structured data based onresource JavaScript object syntax. It carries the AWS resources details in the structured format according to which AWS infrastructure is created.

Structure of Cloudformation JSON Template

  • Format version: It defines the version of a template.
  • Description: Any extra description or comments about your template are written in the description of the template.
  • Metadata:  It can be used to provide further information using JSON  objects.
  • Parameters: Parameters are used when you want to provide custom or dynamic values to the stack during runtime. Therefore, we can customize templates using parameters.
  • Mappings: Mapping in the JSON template helps you to map keys to a corresponding named value that you specify in a conditional parameter.
  • Conditions: Conditions are used to define if certain resources are created or when the resource’s properties are assigned to a value when the stack is created.
  • Transform: Transform helps in reusing the template components by building a simple declarative language for AWS CloudFormation.
  • Resources: In this, you can specify the properties of  AWS resources (AWS EC2 instance, S3 bucket, AWS lambda ) you want in your stack.
  • Output: The output defines the value which is generated as an output when you view your cloud formationstack properties.

Steps To Provision EC2-instance and LAMP package Uisng AWS Cloudformation

Using AWS cloud formationCreate, we will be creating a template using which instance will be launched and the LAMP package will be installed on top of it automatically. To create AWS free tier account you can refer to Amazon Web Services (AWS) – Free Tier Account Set up.

Step 1: Go to the Cloudformation dashboard on the AWS management console. Click on Create the stack.

AWS Cloudformation

Step 2: You will be redirected to this webpage. We will be using a sample template of Lamp Stack in this. Select the option: Use a sample template. Select the Lamp Stack template. Click on View in Designer to view the design of the template.

Sample Template

Step 3: Now you will be redirected to the designer page which shows the design of the template. It shows the instance which will be created with Apache and MySQL installed over it. It also shows the security groups attached to the security purpose of the instance. Here you can design your the infrastructure accordingly.

Cloudformation

Step 4: These are the components of the template which we discussed earlier. Rename the template accordingly.

jason formate

Step 5: This is the code written in JSON format which contains all the specifications and dependencies about the infrastructure to be created.

paramenters

Step 6: Now click on the cloud-shaped upload button to come out of the designer.

Resources

Step 7: We will come back to the same web page. Click on Next.

Template of AWS

Step 8: Specify the desired stack name over here

Configuration

Step 9: Mention the name of the database you want to create on the MySQL database. Also, specify the password and name of the Createdb-user.

Paramenters of AWS Cloudformation

Step 10: Choose the instance type. Select any available key pair which will be used in making an SSH connection with the instance. Click on Next.

AWS Cloudformation 10

Step 11: You don’t have to worry about the advanced settings. Click on Next.

Advanced options

Step 12: Click on Create a stack. The instance will be created with the LAMP package installed on it. You can easily work with PHP and MySQL on the instance.

Create stack

AWS Cloudformation – FAQ’s

1. Is CloudFormation a PaaS or IAAS?

No AWS CloudFormation is not an Platform as a Service. it is an infrastructure as Code (IAC).

2. What language is used in CloudFormation?

AWS CloudFormation allows you to use two declarative languages to define your infrastructure:

  • JSON
  • YAML


Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads