This Total Seminars course covers the exam certification topics. For information on additional study resources—including practice tests, lab simulations, books, and discounted exam vouchers—visit totalsem.com/linkedin. LinkedIn Learning members receive special pricing.
This course was created by Total Seminars. We are pleased to offer this training in our library.
Skill Level Intermediate
- One of the great benefits of cloud computing is the fact that everything is virtualized. What I mean by that is because we're dealing with virtual equipment, we can take advantage of the same things that we could do if, for example, we were running a large scale Hyper-V infrastructure in our company, or a large scale VMware infrastructure in our company. Those virtualization platforms gave you dynamic scaling capabilities. And that's something that AWS gives to us as well. Now, they call it auto scaling, the ability to automatically scale out or scale in according to our needs at any given time. This is a great advantage over the old physical server infrastructures that we built in the years gone by. With the physical server infrastructure, if you want to scale out, it means adding more physical servers. If you want to scale in, it means, oh, wait, we never did that physical hardware. Because once you bought it, it was yours, whether you needed it or not, and it was just wasted money if you bought it and didn't actually need it. This is the beauty of auto scaling. What does auto scaling actually do? Well, it monitors your applications, and then adjusts capacity according to your needs. So it looks at what's actually going on in an instance, for example, and says, you know what, the CPU utilization is really, really high. So I'm going to go ahead and give you another instance, so we can bring the utilization across the two instances down. And then if it gets really high again, I'm going to give you another instance so that the overall utilization on each instance goes down. In other words, we keep adding instances as we need them. But then what happens if we've added the instances to where we now have four instances, and yet it's only 10% utilized on each instance? That means we don't need for anymore, right? But we're paying for them, according to costs in AWS. So what AWS does, says I'm going to manage cost for you. I'm going to take that from four back to three, or even two or maybe even one, get it back down to the scale you need based on the current workload. That's the beauty of auto scaling. It scales out when you need it. It scales in when you don't. So, let's take a look at auto scaling functionality. Basically, what we have is, of course, the service, auto scaling in AWS, and it allows us to even look through your existing applications and see what you can scale. So you may have deployments already of applications on EC2 instances, and the auto scale service can look through all of those instances and tell you, "Hey, this is one that can be scaled, "and this is another that can be scaled," and it can automatically scale those for you. You don't have to start necessarily with auto scaling enabled. You just use auto scaling to find the things that can indeed be scaled. And that's what we're looking at here, discover what you can scale. Then choose what you want to optimize. Do you want to optimize performance, or do you want to optimize costs? What is it that you're really focused on optimizing? And finally, track scaling as it happens, see exactly what scaling is doing for you. The big question we have to ask then is, exactly what resources can be auto scaled in AWS? There are several that can. First of all, you have EC2 auto scaling groups. So you can create an auto scaling group, which is a collection of EC2 instances that can be scaled. Aurora DB clusters can be scaled, if you're using that database, or DynamoDB global secondary indexes, or tables, they can both be scaled. The Elastic Container Service can be scaled as well. Remember, we learned that that's for deploying Docker containers, and Spot Fleet requests can be scaled. So all of these things really come down to different kinds of instances that can actually be scaled within AWS. So, if you want to use auto scaling, you have to have the right instances to do it. It is very important to know that auto scaling is free to use, but the results of its use may cost you. The reason is, it's free to enable auto scaling groups and have instances that can be scaled out, but if it is indeed scaled out, it means it does add more instances, and more instances cost you money. It means that it will enable CloudWatch, and CloudWatch is going to cost you to utilize. It may implement ELB load balancing, and that's going to cost you as well. So, auto scaling does it for you, but you need to realize that what it does for you may increase your costs, but that's okay, because remember, if we're scaling out, we're scaling out because we need it. We're scaling out because the demand is higher than we thought we were going to need or than we needed at the time of implementation. And now we do need to scale out, so it's okay that it costs more because we're using more. If we're using more, it means we need more. If we need more, it means there's cost justification for it, generally speaking, so this is how auto scaling works. But it is important to keep in mind that you can manage costs. You can limit the total amount you're willing to spend per hour, within your auto scaling group, so this way you control that. And say, "Well, we can auto scale, "but only up to X amount of dollars per hour." So, this gives you a summary of what auto scaling is really about, helps you to understand the basic concept. Throughout this chapter, we'll be focusing a lot more on auto scaling to understand exactly what we can do with it in the different areas of configuration, auto scaling groups, things like that, so we can effectively plan a good auto scaling deployment within AWS. (upbeat music)