Segregation of Services and Multi-Systems Architecture
In a physical environment it is sometimes difficult to create multi-server systems, in the cloud this is the normal course of events. While it is possible to create a single server web hosting environment in the cloud, with a few additions you can create a multi-tier web hosting environment that includes the tools that make that environment elastic so that it can grow and shrink in response to changes in load (as defined by the user). The technologies involved with this capability are not particularly revolutionary; using load balancers to spread the traffic between hosts; a consistent storage environment to house system images that are used as the basis for additional hosts; and virtualization to allow system images to move from host-to-host; what is interesting about this is that they are all integrated into the AWS architecture and configurable both from the command line and a web interface in a fairly easy and logical fashion. There are extensive amounts of reference architecture documentation available on the AWS site ( http://aws.amazon.com/architecture/ ) that both illustrate and describe systems architectures for many popular applications. The key concept that pervades all the reference architectures is segregating services between multiple virtual servers so that a single virtual server does a single task. A reason why this is so attractive is that when this concept is combined with the presence of firewalls (security groups in AWS speak) on each individual server, a clear delineation of the type of traffic that should be entering and exiting a server can be defined and enforced.