Join Jeff Winesett for an in-depth discussion in this video Scalable architectures, part of Amazon Web Services Essential Training.
- As briefly touched on in the previous two sections, one thing the cloud brings to the table is scalable infrastructure. And what this means is that the cloud provides infrastructure that has the ability to change and adapt to handle a growing or diminishing workload. We refer to this as scaling. Our infrastructure can easily scale out, in, up, or down, depending on the needs of the system. So let's quickly cover what these terms mean.
Scaling out, which is also referred to as horizontal scaling is when you add capacity to a system by adding more components or nodes that make up that system. An example of this would be adding more web servers to your system to handle an increase in traffic. Scaling in, which is also part of horizontal scaling, is simply the opposite of scaling out. It is when you remove capacity from a system, by decreasing the number of components or nodes. So if we reduce the number of web servers, we can say we scaled in the web server tier.
Scaling up, which is also referred to as vertical scaling, is when we add resources to a single component or node in our system in order to increase its capacity to handle load. An example of this would be increasing the number of CPUs or increase the memory of a database server. And finally, scaling down, which is also a form of vertical scaling, is reducing the resources of a single component or node in the system. It's just the opposite of scaling up.
So if we were to decrease the processing capacity or decrease the memory of a server, we would say we scaled down that server. An important thing to understand when building applications in the cloud is that you must build the scalable application architecture in order to take advantage of a scalable infrastructure. And while the cloud is built to provide at least, in theory, infinite scalability of its resources, the scalability cannot fully be leveraged if your application itself is not designed in a manner to take advantage of the scalability.
And in a nutshell, that's really what this course is all about. It's introducing you to the available services within AWS and providing practical examples to give you the tools you need to build scalable applications on top of scalable infrastructure. Scalable architecture is a theme we will be revisiting often throughout this course. Now that we have a baseline understanding of what we mean when we refer to scaling and these four basic types of scaling, we're going to talk about a fundamental concept in cloud computing that allows for scaling to occur.
This is a concept called elasticity, and this is the topic of the next section.
- The benefits of cloud architecture
- Core cloud-based architectural principles
- Monitoring resources and applications with CloudWatch
- Using Amazon Machine Image (AMI)
- Using Elastic Beanstalk
- Implementing message queues, Simple Workflow Service, and Simple Notification Services
- Setting up security groups
- Launching and connecting to an EC2 instance
- Elastic Load Balancing
- Virtual Private Cloud (VPC)
- Using the AWS SDK