Skip to content

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 logo with Softwire in a graphic

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.

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.

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.

Talk 1-1 with a consultant

Book a call with one of our consultants to discuss your challenges.