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.
Features Of AWS CloudFormation
- No
up-front investment
- Lowering
operating cost
- Highly
scalable
- Easy
access
- Reducing
business risks and maintenance expenses
Use Cases Of AWS CloudFormation
- 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.
- 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.
- Integration
With Services: You can integrate the AWS Cloudformation with different
services like code pipeline, Jenkins CICD pipeline and so on
which will help to automate the deployment.
- 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
- 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.
- 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.
- 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.
- 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.
- 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.
Step 1: Go to the Cloudformation dashboard on
the AWS management console. Click on Create the stack.
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.
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.
Step 4: These are the components of the
template which we discussed earlier. Rename the template accordingly.
Step 5: This is the code written in JSON
format which contains all the specifications and dependencies about the
infrastructure to be created.
Step 6: Now click on the cloud-shaped upload
button to come out of the designer.
Step
7: We will come
back to the same web page. Click on Next.
Step 8: Specify the desired stack name over
here
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.
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.
Step 11: You don’t have to worry about the
advanced settings. Click on Next.
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.
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
No comments:
Post a Comment