It is the goal of any time-pressed system administrator to avoid duplication of work where possible. There is no need to spend time building ten servers when you can build one and clone it, or implement a configuration management system that can configure ten servers as easily as one.
Within the context of AWS, there are many ways to work smarter instead of harder. Remember that AWS gives you the building blocks you need to build your infrastructure. Some of these blocks can be reused in interesting ways to remove tedious steps from your workflow.
As an example, consider an application that runs in three environments: development, staging, and production. Although the environments differ in some important ways, there will definitely be a lot of overlap in terms of the AWS resources required and the application’s configuration. Considering the reuse of resources will save a lot of time as your infrastructure grows, and will let you take advantage of the flexibility that makes cloud hosting so useful.
This chapter looks at some of the ways in which AWS components can be designed for optimal reusability in order to reduce development time and minimize time spent on operations and maintenance.
Kief Morris highlights the importance of the reusability of configuration definitions in his recent Infrastructure as Code (O’Reilly). Kief’s work defines and catalogs the patterns of server management automation in a modern computing ...