Win a copy of Node.js Design Patterns: Design and implement production-grade Node.js applications using proven patterns and techniques this week in the Server-Side JavaScript and NodeJS forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Ron McLeod
  • Rob Spoor
  • Tim Cooke
  • Junilu Lacar
Sheriffs:
  • Henry Wong
  • Liutauras Vilda
  • Jeanne Boyarsky
Saloon Keepers:
  • Jesse Silverman
  • Tim Holloway
  • Stephan van Hulst
  • Tim Moores
  • Carey Brown
Bartenders:
  • Al Hobbs
  • Mikalai Zaikin
  • Piet Souris

AWS CloudFormation instead of Terraform?

 
Greenhorn
Posts: 7
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I had read somewhere that it is better to use CloudFormation (native tool) for AWS instead of Terraform.
What's your comment?
 
Author
Posts: 76
7
Redhat Notepad Fedora Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi @Patrick Dung,

This is a never ending war... Neighbour of mine (cloud engineer) would say "always use the native tools". However, he only works in AWS environment and he is a big AWS fan, so bit biased.

I like to select the tool depending on the requirements for every project. If there is no particular reason to use native tool, I tend to use Terraform. I don't have anything against CloudFormation and used it personally many times in the past, HOWEVER, Terraform is way more than just agnostic IaaC (infrastrcuture as code) tool. Terraform was created by Mr. Hashimoto primarily as a "state management tool" and that is a strong decision point, because you cannot store the state of your infrastructure on your local drive, when you use CloudFormation. Terraform is also often faster than CloudFormation when it comes to supporting new AWS features. On top of that (might be the strongest reason to use it), Terraform supports other cloud providers as well as 3rd party services - so with very little change in your code, you can create the same/similar resources on a different cloud provider.
 
Patrick Dung
Greenhorn
Posts: 7
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
The main problem I had heard is that TF needs to be updated when AWS made changes (API change?) or release a new service.
TF needs to be updated before it could utilize or adopt the changes in AWS, where AWS CF is native.
I also remembered somebody said it's ok to use TF for other public clouds and better to use AWS CF on AWS.
 
Lucian Maly
Author
Posts: 76
7
Redhat Notepad Fedora Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Patrick Dung wrote:The main problem I had heard is that TF needs to be updated when AWS made changes (API change?) or release a new service.
TF needs to be updated before it could utilize or adopt the changes in AWS, where AWS CF is native.
I also remembered somebody said it's ok to use TF for other public clouds and better to use AWS CF on AWS.



The statement "TF needs to be updated every time AWS changes something" is not entirely correct. First of all, the API of the core services does not change that often, and if it does it is backward compatible. So it is usually the new services that might need your Terraform provider to be updated from time to time (and funnily enough, there were cases were Terraform implemented those even before AWS CloudFormation). Another thing you should know is how providers or any other extendable code work in Terraform - it is heavily "pluggable" via SDK. What it means is, Terraform itself does not actually come with any providers out of the box and adding/updating the provider is very simple - see this link: https://www.terraform.io/docs/extend/plugin-types.html

Essentially, these two commands are the most important ones:
 
security forum advocate
Posts: 229
1
Android Flex Google App Engine
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Plus Terraform is not just restricted to the AWS catalog. We have used plugins to build our New Relic dashboards through terraform across dev, test and prod environments.
 
You showed up just in time for the waffles! And this tiny ad:
Building a Better World in your Backyard by Paul Wheaton and Shawn Klassen-Koop
https://coderanch.com/wiki/718759/books/Building-World-Backyard-Paul-Wheaton
reply
    Bookmark Topic Watch Topic
  • New Topic