Should you consider Terraform to manage your AWS resources, even though Amazon has a fully supported management tool in CloudFormation? The answer is a clear yes, if you a multicloud shop, but we’re going to explore the answer for AWS-only environments.
CloudFormation is fully supported by AWS, however, even today, nine years after the first public launch, Amazon still doesn’t mandate that their service development teams launch services with full CloudFormation support, occasionally leaving end users stuck waiting for Amazon to add support for features and services. In contrast, when using an open source tool like TerraForm, if the support isn’t there, you can add it yourself and submit a PR, and magically the tool now supports it! This leads to much fewer gaps in coverage.
In addition, CloudFormation doesn’t support reusable code blocks, leaving one to have to use a third party meta templating tools like Troposphere or Lono (we strongly encourage you to use these tools if you chose to use CloudFormation). Be aware, that Terraform does require you to manage state, but you can store it in S3 or DynamoDB. TerraForm has built in functionality, allowing one to write DRY (Don’t Repeat Yourself) code.
Be aware that CloudFormation still was one killer feature. If you want to share a preconfigured stack with another organization, you can share a CloudFormation template with little worries about compatibility or versioning. Like most AWS services, CloudFormation has excellent backward compatibility and this should “just work."
Feel free to drop us a note, if you’d like to discuss your CloudFormation or Terraform deployments.
Brandorr Group LLC is a one-stop cloud computing solution provider, helping companies manage growth and ship new projects using cloud and scalability best practices.