Automation
We briefly discussed Terraform as a way to automate the creation of cloud-based resources, and there is a lot more to learn about this tool as well as others that can automate some of the work involved in running a service.
To configure inside an instance, configuration management tools such as Ansible, Chef, and Puppet allow you to copy files, change file contents, install packages, and set up a computer how you like it in a repeatable, predictable manner.
Building operating system images for your own environment can be done with HashiCorp's Packer, which lets you use the configuration management tools above to create operating system images for use in AWS, GCP, VMware, or Docker, among many others.
Even if your infrastructure is small, using automation to create and maintain it is still valuable. In the event of a disaster, you are a few short commands away from recreating your entire suite of applications, instead of weeks of painstaking work.
...