Recently I had a contract which required me to immerse myself in AWS configuration for a LAMP stack, which led me to Terraform, amongst other things. I thought I’d publish here the list of resources that helped me. It’s a lot of links!
One tip I found was to use Jenkins to do automatic validation of your Terraform scripts. I think that’s a good tip.
Talk by Nicki Watt of Hashicorp: https://www.youtube.com/watch?v=wgzgVm7Sqlk
Good tutorial: https://www.youtube.com/watch?v=LVgP63BkhKQ
AWS
Cloud Best Practices: https://d1.awsstatic.com/whitepapers/AWS_Cloud_Best_Practices.pdf
Elastic beanstalk might be a way to go: https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/concepts-webserver.html
These days I tend to put everything behind an Nginx reverse proxy: https://github.com/awslabs/ecs-nginx-reverse-proxy
Some AWS Webinars: https://aws.amazon.com/architecture/
Drupal. Which was quite close to what I’d be needing: https://aws.amazon.com/quickstart/architecture/drupal/ and https://aws-quickstart.s3.amazonaws.com/quickstart-drupal/doc/drupal-on-the-aws-cloud.pdf and https://aws.amazon.com/quickstart/architecture/drupal/ and https://github.com/aws-samples/aws-refarch-drupal
Doing your Git stuff at Amazon appears to have some advantages. CodeCommit: https://aws.amazon.com/codecommit/
AWS cost Best Practices: https://aws.amazon.com/premiumsupport/trustedadvisor/best-practices/
Web Hosting general best practices: https://d1.awsstatic.com/whitepapers/aws-web-hosting-best-practices.pdf
A reference architecture for Drupal hosting:
Akamai
If you’re on AWS it makes sense to use Amazon’s own CDN service. If however, you already have an Akamai account, it’s supported by terraform.
https://github.com/Comcast/terraform-provider-akamai
Terraform
Interestingly, Terraform works across multiple cloud providers.
An introduction from Gruntwork, a Terraform consultancy: https://blog.gruntwork.io/an-introduction-to-terraform-f17df9c6d180
Terraform with AWS: https://dzone.com/articles/terraform-with-aws
Terraform getting started: https://www.pluralsight.com/courses/terraform-getting-started
Hashicorp training: https://www.hashicorp.com/training
Udemy have courses if you want to pay money: https://www.udemy.com/learn-devops-infrastructure-automation-with-terraform/
Gruntwork comprehensive guide: https://blog.gruntwork.io/a-comprehensive-guide-to-terraform-b3d32832baca
Gruntwork slideshare: https://www.slideshare.net/brikis98/comprehensive-terraform-training
Another tutorial: https://gist.github.com/p0bailey/3a34689f49b075ed058373dd73a7bce6
All about provisioners: https://www.terraform.io/docs/provisioners/index.html
Ansible
If Ansible is your configurator of choice, you can shoehorn it in to Terraform.
https://alex.dzyoba.com/blog/terraform-ansible/
https://github.com/express42/terraform-ansible-example/blob/master/ansible/terraform.py
https://github.com/radekg/terraform-provisioner-ansible
https://github.com/jonmorehouse/terraform-provisioner-ansible
Chef
Chef is natively supported.
https://sdbrett.com/BrettsITBlog/2017/08/using-the-chef-provisioner-with-terraform/
Chef and AWS: https://www.chef.io/implementations/aws/
Jenkins
Jenkins on AWS: https://d0.awsstatic.com/whitepapers/DevOps/Jenkins_on_AWS.pdf
https://aws.amazon.com/blogs/devops/simplify-your-jenkins-builds-with-aws-codebuild/
https://aws.amazon.com/blogs/devops/set-up-a-build-pipeline-with-jenkins-and-amazon-ecs/
https://docs.aws.amazon.com/aws-technical-content/latest/jenkins-on-aws/best-practices.html
https://wiki.jenkins.io/display/JENKINS/Jenkins+Best+Practices
https://docs.aws.amazon.com/aws-technical-content/latest/jenkins-on-aws/jenkins-on-aws.html
And there’s the link dump. It should be enough to keep you going for a couple of days! Overall, I think if you’re going to use AWS, embrace it fully. Except Cloudflare. They’re awesome.