2 ms·
Speaking as someone who works in AWS Support, AWS Support can only support Terraform on a best-effort basis. There have been many times where someone provides
by whoknew1122 5y ago
Speaking as someone who works in AWS Support, AWS Support can only support Terraform on a best-effort basis.
There have been many times where someone provides me a small snippet of an error message from Terraform, and the error is so vague as to be useless. I then have to ask the customer for more detailed logging to even figure out what APIs Terraform is even calling. After that I can maybe cobble things together with CloudTrail to figure out the issue.
But that's only because I have personal experience with Terraform. If you get a support agent who isn't familiar with DevOps generally and only knows CloudFormation? You're not going to get the same level of support. Meanwhile, we have a full team and competent internal tooling to troubleshoot CloudFormation. Using Terraform instead of CloudFormation limits the speed and competency of the support you can get from AWS.
Speaking as someone who plays with both at work and personally, here's what I think:
If you're in an AWS monolith with a large team that uses AWS Support as your primary support channel (i.e. you don't have in-house AWS experts), go with CloudFormation. Terraform doesn't do anything on AWS that CloudFormation can't, and AWS can better support you.
If you're in a multi-cloud scenario, it's better to use Terraform (if only because you don't have to learn two different syntaxes).
If you're a one-person shop or don't rely on AWS Support for support? Do whatever you want.
(And while I do work at AWS, please know I could care less whether you use CloudFormation. I'd rather you use the tool best for the job, even if it isn't an AWS product. While some people may conspiratorially say that AWS tries to lock you into AWS services to the exclusion of anything else, most people at AWS just want you to use the right tool for the right job. I have no problem telling someone not to use AWS if it doesn't work for their usecase -- nor do most of my co-workers)