AWS and Elasticity: Keeping Ahead of User Demand

Figure 1. This is the kind of application infrastructure that you should be able to build using the core AWS services.
Figure 2. An illustration of how AWS data and security services work together to enable an EC2 instance, so it can deliver its application to customers.

Cloud Computing

The US National Institute of Standards and Technology (NIST) defines cloud computing as services that offer their users all of these five qualities:

Elasticity vs Scalability

So elasticity, as we have established, is a system’s ability to monitor user demand and automatically increase and decrease deployed resources accordingly. Scalability, by contrast, is a system’s ability to monitor user demand and automatically increase and decrease…wait: didn’t I just say that about elasticity?

Figure 3. Elasticity allows for systems to dynamically add or remove resources to meet changing demand.
Figure 4. Scalable software can be easily copied for use in multiple servers deployed in multiple network environments.

Practical applications

Ok. But who cares? Well, as the customer demand on our WordPress site continues to grow, we will, and in a big way. You see, for some reason -– perhaps related to the fact that we discount the price of our product by 75% for just a half an hour each evening -– customers arrive in their greatest numbers in the early evening, local time. So while the single server we’ve been running stands largely unused throughout most of the day, it simply melts under the pressure of thousands of visits squeezed into such a short stretch of time.

Automating High Availability

Alternatively, we could spend some time incorporating high availability capability into our setup and let the whole thing be quietly and efficiently managed by software. This will be the subject of the next few chapters of my book, where we will learn to leverage AWS’s geographically remote availability zones to make total application failure much less likely, use load balancing to coordinate between parallel servers and monitor their health, and auto scaling to let AWS automatically respond to the peaks and valleys of changing demand by launching and shutting down instances according to need.

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
David Clinton

David Clinton

Linux system admin and tech training content provider. Known to hang out at https://bootstrap-it.com.