Choosing an IaC tool - AWS Prescriptive Guidance

Choosing an IaC tool

So, which tool should you choose?

With so many different tool options and varying business requirements, there's no one-size-fits-all approach. In addition to the advantages and disadvantages for each tool discussed in this guide, consider the following recommendations for your business requirements and operating model:

  • If you are managing or deploying a serverless AWS solution with minimal dependency or dependents, AWS Serverless Application Model (AWS SAM) might be a good option for you. It has all the same features as AWS CloudFormation. It also simplifies testing and deployment of serverless applications to the AWS Cloud.

  • If you are managing your infrastructure entirely on AWS, then AWS CloudFormation and the AWS Cloud Development Kit (AWS CDK) are good options. They provide out-of-the-box state management, and you can also natively use new features or AWS resources.

  • If you want a multi-provider utility, especially for managing multi-cloud or hybrid-cloud infrastructure, Terraform might be a good choice because it is platform agnostic. With Terraform, you can also use a wide range of plugins, and it has a large community with enterprise support options.

  • If you have a top-down distribution with best practices and if you have orchestration where you create, publish, and distribute reusable modules by using common programming languages, then the AWS CDK might be a good option.

  • If your organization can tolerate a high level of risk and needs to support multi-cloud or hybrid-cloud environments, consider using Pulumi.