AWS CloudFormation
Work with Softwire to ensure fast, repeatable provisioning of cloud resources with infrastructure-as-code.
Softwire will help you manage cloud resources across all your AWS accounts and regions with a single tool, ensuring centralised control and tracking to all infrastructure changes. We will enable additional value gains by utilising related frameworks like SAM and CDK where appropriate.
AWS CloudFormation
AWS CloudFormation is a service that helps you model and set up your AWS resources so that you can spend less time managing those resources and more time focusing on your applications that run in AWS.
You create a template that describes all the AWS resources that you want (like Amazon EC2 instances or Amazon RDS DB instances), and CloudFormation takes care of provisioning and configuring those resources for you.
You don’t need to individually create and configure AWS resources and figure out what’s dependent on what; CloudFormation handles that. The following scenarios demonstrate how CloudFormation can help.
Simplify Infrastructure Management
For a scalable web application that also includes a backend database, you might use an Auto Scaling group, an Elastic Load Balancing load balancer, and an Amazon Relational Database Service database instance. You might use each individual service to provision these resources and after you create the resources, you would have to configure them to work together.
All these tasks can add complexity and time before you even get your application up and running.
Instead, you can create a CloudFormation template or modify an existing one. A template describes all your resources and their properties. When you use that template to create a CloudFormation stack, CloudFormation provisions the Auto Scaling group, load balancer, and database for you.
After the stack has been successfully created, your AWS resources are up and running. You can delete the stack just as easily, which deletes all the resources in the stack. By using CloudFormation, you easily manage a collection of resources as a single unit .
By making use of technologies like the Serverless Application Model (SAM), and Cloud Development Kit (CDK), Softwire can work with you to further simplify your infrastructure-as-code, allowing development teams to spend less time provisioning infrastructure, and more time writing features and solving business problems.
Quickly replicate your infrastructure
If your application requires additional availability, you might replicate it in multiple regions so that if one region becomes unavailable, your users can still use your application in other regions. The challenge in replicating your application is that it also requires you to replicate your resources.
Not only do you need to record all the resources that your application requires, but you must also provision and configure those resources in each region.
Softwire write all CloudFormation templates with consistency and repeatability as top priorities, and will test the process of automatically provisioning brand new environments as part of the implementation process, allowing you to relax in the knowledge that if disaster does strike, re-provisioning your environment in a new AWS region is only a click away.
Easily control and track changes to your infrastructure
In some cases, you might have underlying resources that you want to upgrade incrementally. For example, you might change to a higher performing instance type in your Auto Scaling launch configuration so that you can reduce the maximum number of instances in your Auto Scaling group.
If problems occur after you complete the update, you might need to roll back your infrastructure to the original settings. To do this manually, you not only have to remember which resources were changed, you also have to know what the original settings were.
When you provision your infrastructure with CloudFormation, the CloudFormation template describes exactly what resources are provisioned and their settings. Because these templates are text files, you simply track differences in your templates to track changes to your infrastructure, similar to the way developers control revisions to source code.
For example, you can use a version control system with your templates so that you know exactly what changes were made, who made them, and when. If at any point you need to reverse changes to your infrastructure, you can use a previous version of your template.
Softwire developers apply the same best practices to infrastructure code as they do to application source code – version control will be used as standard, all changes will be subject to peer review by team leads to ensure a consistent high level of quality, and automated quality tools will be used to ensure standard code-level best-practices are adhered to, always.
CloudFormation in our work
Softwire partnered with a media company to build an internal tool to track the lifecycle of the verification process for physical devices running their application.
AWS CDK was used to provision and update all infrastructure, including VPC and networking setup, Storage services via RDS and S3, and compute via AWS Lambda and EC2 instances. Isolation of resources into separate CloudFormation stacks ensured that ongoing changes could be applied quickly to areas of the application which changed frequently, and that additional deletion protection could be placed on vital resources containing persistent customer data.
Consistent templates used across all environments allowed for all testing to be fully representative of the production environment, and no production issues have been logged against the system.
Our insights
Talk 1-1 with a consultant
Book a call with one of our consultants to discuss your challenges.