What should I use for configuration management on AWS? I am trying to find a solution for configuration management using AWS OpsWorks. What I can see is AWS offers three services for OpsWorks


Chef Automate
Puppet
AWS stacks


I have read basics of all three of them but unable to compare between three of them. I am unable to understand when to use which solution. 

I want to implemnet a solution for my multiple EC2 instances, using which I can deliver updates to all my instances from a central repository(github). And, rollback changes if needed. 

So following are my queries: 


Which of the three solutions is best for this use case?
What should I use if my instances are in different regions?


I am unable to find anything useful on these topics so that I can make my decision. It would be great if I can get links to some useful articles as well.

Thanks in advance.
A good way to find comparison information about things like this is googling for "X vs Y", e.g. "Chef vs AWS stacks", "Chef vs Puppet" or something like that. That does turn out subjective information, and while it is nothing like having hands-on experience, you still get a few nice nuggets here or there.

For example, Chef gives you the full Ruby language while Puppet has a ruby-based DSL. Does that matter for you? Only you can tell. 

From my experience with Puppet/Ansible (and I don't know Chef yet) it's all mostly down to taste. For example, I really like the fact that Ansible needs only a working ssh key and nothing else. And I like that there is no central repository. Others may like the fact that Puppet has a repository. Also, I like the dead simple configuration file format. But that is all subjective.

So, to cut to the chase, my advice would be:


Use AWS Stacks if you are fully committed to AWS, will never change to another provider, and like the higher integration with AWS features. It uses Chef internally anyways, and exposes the Chef files to you.
Use Chef directly if you like to learn something new and want to stay a bit vendor independent. If you later decide to commit to AWS fully, then you should be able to do so.
Use Puppet (which AWS starts to support as well, seemingly) if you, well, like Puppet more, or if you can't stand Chef.