
Continuous Deployment with Docker, AWS, and Ansible - Liriel
https://semaphoreci.com/community/tutorials/continuous-deployment-with-docker-aws-and-ansible
======
willejs
This is a pretty good blog post and pretty insightful for people looking to
build a simple environment and deploy their code.

The only thing I would say would be to use terraform in place of
cloudformation and ansible. Terraform is a lot nicer to work with, and it
reduces the toolchain footprint. Terraform supports elasticbeanstalk, but you
have to have a dig around to figure out the settings argument format on the EB
resource...

~~~
ahawkins
Hey, author here! Thanks for your feedback. I'm glad you enjoyed the article.

Personally I'm on the fence regarding using Terraform over CloudFormation. I
prefer CloudFormation since I use AWS exclusively. I think Terraform makes
sense when you interact with multiple CloudProviders. However I do also find
writing terraform thing nicer than CloudFormation. I find managing the
.tfstate file tricky (but they have a service for that now) as well.

~~~
willejs
Yeah, I'm a long term cloudformation user and so frustrated with it's many
shortcomings, the workarounds you need to make, and the hold on to your seat
moment when you apply your changes...

It took me a while to get used to terraform, figure out the design patterns,
and use all of the features properly, but its insanely powerful, and a really
solid product.

Yeah, you can store the state in S3, or pay the $20 a month for atlas... Its
really worth it.

You can reference stored states in your terraform modules, so for example you
can have a module that creates IAM users, groups, shared s3 buckets etc for
your account, then you can reference to resources in it from other modules
with separate state, for example environments.

Give it a go and try it out for a while, you wont go back.

