Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Learn Amazon Web Services in a Month of Lunches: learn AWS during lunch


Published on

Learn Amazon Web Services in a Month of Lunches guides you through the process of building a robust and secure web application using the core AWS services you really need to know. All so you can be immediately effective with AWS.

Save 42% off Learn Amazon Web Services in a Month of Lunches with code ssclinton at:

New from

Published in: Software
  • Be the first to comment

Learn Amazon Web Services in a Month of Lunches: learn AWS during lunch

  1. 1. Elasticity and Scalability: staying ahead of customer demand. With Learn Amazon Web Services in a Month of Lunches by David Clinton Save 42% with code ssclinton.
  2. 2. The core components of a typical AWS Application.
  3. 3. Making practical applications. If the image on the previous slide is familiar, then you likely know a thing or two about AWS-based apps. This presentation will focus on some of the best practices for application optimization. Let’s imagine that you have a successful WordPress site that has been discovered in a big way – demand is going to explode. Let’s imagine further that you run an evening discount of 75% on your product, so the bulk of your traffic is happening in the evening. Finally, let’s imagine that you are running it on a single server.
  4. 4. Making practical applications. Since most of your traffic is in the evening, the server is relatively idle for most of the day, but the incoming evening demand is going to be way more than it can handle. So, what happens if the server goes down? Bad news for your business! What could your company do to prevent this catastrophe?
  5. 5. Making practical applications. There are a few options: • Provision more servers – this would work, but would be very wasteful and expensive, and wouldn’t help in the event of a network failure. • Get an employee to be at the office and fire up extra servers during heavy demand – we asked around, but no one volunteered. Perhaps there’s a better solution…
  6. 6. 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. Leveraging AWS’s geographically remote availability zones makes total application failure much less likely. Additionally, AWS’s load balancing coordinates between parallel servers and monitors their health, and auto scaling lets AWS automatically respond to the peaks and valleys of changing demand by launching and shutting down instances according to need.
  7. 7. Automating high availability. What is high availability? High availability is any server resource configuration that allows a system to remain functioning and accessible for as close to 100% of the time as possible. The basic goal can be achieved through combinations that can include redundancy, replication, failover protocols, monitoring, and load balancing. The next slide has an image which shows how all that infrastructure can be made highly available through the magic of network segmenting, auto scaling, and load balancing.
  8. 8. How AWS data and security services work together to allow an EC2 instance to deliver its application.
  9. 9. Automating high availability. You might not be familiar with everything in slide 8, but take a moment to note some important points: • The Virtual Private Cloud (VPC) that encompasses all the AWS resources in our application deployment • The two kinds of subnets: private and public - which can be located in separate availability zones and are used to manage and, where needed, isolate resources • The security groups whose rules control the movement of data between resources
  10. 10. Automating high availability. • The EC2 AMI (Amazon Machine Image) that acts as a template for replicating precise operating system environments • The S3 (Simple Storage Service) bucket that can store and deliver data – both for backup and delivery to users • The EBS (Elastic Block Store) volumes that act as data volumes (like hard drives) for an instance • The auto scaler that permits automatic provisioning of greater (or fewer) instances to meet changing demands on an application • The load balancer that routes traffic among multiple servers to ensure the smoothest and most efficient user experience
  11. 11. Automating high availability. As you may (or may not) know, the "e" in many AWS service names (EC2, ECS, EFS, EMR…) doesn’t stand for "electronic" the way it does in the names of some older technologies like email, but "elastic." What is it about AWS cloud computing that is, well, "elastic? " To answer that question, we need to talk a bit about cloud computing in general. Understanding what makes the cloud unique is probably essential to taking full advantage of all that it has to offer.
  12. 12. Cloud Computing. The US National Institute of Standards and Technology (NIST) defines cloud computing as having the following five qualities: • On-demand self service • Broad network access • Resource pooling • Rapid elasticity • Measured service
  13. 13. Cloud Computing. These five qualities describe a deeply flexible and highly automated system whose elements can be freely mixed and matched to provide the most efficient and cost-effective service possible. But a great deal of what makes this possible is the existence of integrated systems that can dynamically adjust themselves based on what’s going on around them. These adjustments are examples of elastic behavior.
  14. 14. Elasticity vs. Scalability. Elasticity 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? The truth is: it’s a bit complicated. In fact, the two terms are sometimes used interchangeably. However I think it’s worthwhile distinguishing between them.
  15. 15. Elasticity vs. Scalability. What makes an elastic band elastic, is partly it’s ability to stretch under pressure, but also the way it quickly returns to its original size when the pressure is released. In AWS terms, that would mean the way, for instance, EC2 makes instances available to you when needed, but lets you drop them when they’re not; charging you only for up time. See the next slide for an illustration of AWS elasticity.
  16. 16. Elasticity vs. Scalability.
  17. 17. Elasticity vs. Scalability. Scalability describes the way a system is designed to meet changing demand. This might include some features of elasticity, but it also means that the underlying design itself supports rapid and unpredictable changes. For example, software that is scalable can be easily picked up and dropped onto a new server - possibly within a new network environment - and just run without any manual configuration. See the next slide for an illustration of AWS scalability.
  18. 18. Elasticity vs. Scalability.
  19. 19. Elasticity vs. Scalability. Based on our definitions, we can say that AWS is both highly elastic and highly scalable! But wait! There are two kinds of scalable: • Horizontal scaling is "scaling out" - where you add more lightweight server nodes (or "instances") to meet growing demand. • Vertical scaling is "scaling up" - where you move your application from a single lightweight server to one with greater compute capacity. AWS can be either, but usually when people say scale and AWS in the same breath, they mean horizontal.
  20. 20. So, if you want a more reliable and responsive public-facing application, start learning AWS! Save 42% off Learn Amazon Web Services in a Month of Lunches with code ssclinton. New from Also see: