For most companies, the days of running bare metal infrastructure in a data center are long gone. And, while the capital expense model can help immensely when it comes to financial planning for your business environment, running a cloud-based infrastructure is rarely cheap. Typically, the reason for this is not the high cost of public cloud services, but rather the improper use of them.
Compute resources are frequently the most significant source of expense, and they are also the easiest resources to provision improperly. Hourly use EC2 instance pricing—numbers like $0.085, $0.060, $0.1—might not cause concern initially. However, when you add these numbers up over the course of a full month of use, their differences become much more apparent. Additionally, most companies don’t rely on employees with cloud experience and skills to choose EC2 instance types and sizes; instead, this task is left to developers or even project managers who are ill-equipped to handle it. In the end, companies end up with overprovisioned infrastructures which cost more than they should.
This two-part article will look at a new service announced during the last re:Invent conference in December 2019: AWS Compute Optimizer. After exploring the basics of AWS instances, we’ll provide an overview of the new offering and a complete how-to guide for implementing this user-friendly service.
AWS Instance Types and Metrics
AWS offers many instance types to choose from. We’ve already covered them in detail in a previous article, so they’re only briefly summarized below.
- The first group of instances are General Purpose instances, which are optimally balanced for various workloads (optimal balance refers to the CPU to memory ratio). This group includes m4, t2, m5, t3, and a1 instance types.
- Compute Optimized instances focus on CPU-intensive workloads and have the lowest cost per CPU while retaining the highest CPU to memory ratio of all instances offered. These include the c4 and c5 instance types as well as the newer c5a, c5n, and c6g types.
- Memory Optimized instances (r4, r5, x1, z1d, etc.) provide the necessary power to handle in-memory processing for applications, real-time data processing, and in-memory key value stores.
- Accelerated Computing instances use various hardware accelerators to perform graphics processing, data pattern matching, and high intensity functions—tasks which are not efficiently performed using software alone. The p2, p3, f1, g3, and g4 instance types are part of this group, and they are usually very expensive to use.
- Storage Optimized instances are designed to deliver tens of thousands of low-latency, random I/O operations per second to various applications. When a sequential read and write access is needed for large datasets, these are the instances you want.
To choose the proper instance type for your business needs, you have to understand the various dimensions of the instance, or, in simple terms, what the instance is capable of. CPU and memory are the most basic dimensions used to determine the necessary instance type and size. As mentioned above, the first three groups of instances focus solely on CPU and memory, giving more of one or the other or providing some sort of balance between the two.
There are other dimensions to consider as well, and, for some use cases, these can be crucial. They are related to an instance’s network capabilities and EBS (block storage volume) bandwidth capabilities. Each instance has network bandwidth allocation (instances may support a speed of up to 10Gbps or 20Gbps, for example), packet per second capabilities, enhanced networking capabilities (on newer instance types, network traffic processing is offloaded to dedicated chips in order to reduce latency and increase bandwidth), and EBS bandwidth (some smaller instances have around 4750Mbps, while large ones go to 19000Mbps). For all latest generation instances, there is also the EBS Optimized feature, which provides dedicated capacity for EBS I/O.
AWS Compute Optimizer Overview
AWS Compute Optimizer is a service specifically designed to analyze your instance usage and make recommendations that help you optimize your cloud environment. In the past, AWS Trusted Advisor and AWS Cost Explorer provided this service. AWS Computer Optimizer offers a more in-depth analysis than its predecessors, including details that were previously unavailable.
AWS Compute Optimizer uses machine learning to identify various workload types, then it automatically chooses a workload-specific recommendation methodology for them. On top of that, it provides features for assessing different options. Each option has a projected risk score and a projected utilization time series, enabling you to evaluate the price/performance trade-offs for your workloads. AWS Compute Optimizer not only helps you reduce the overall cost of your infrastructure and ensures that your applications are working properly, it also recommends the scaling up of instances that are under big loads and may be creating bottlenecks in your environment.
You can use AWS Compute Optimizer for your standalone EC2 instances and for your Auto Scaling groups. Right now, only the R, T, M, C, and X EC2 instance families are supported by AWS Compute Optimizer. The tool also supports both Intel and AMD CPU instance types. Overall, AWS Compute Optimizer currently covers about 140 of the 270 instance types. We can expect to see more coverage in the future, as is usually the case with new AWS services. AWS Compute Optimizer’s analyses and recommendations are completely free, making this a perfect service for any budget.
To use AWS Compute Optimizer, you first need to opt in on your single account or access the service via AWS Organizations if you have multiple accounts. After you opt in, your instances will undergo a full analysis. This process can take a day or two. When the analysis is complete, you will be presented with use details as well as recommendations for improving your infrastructure.
AWS Compute Optimizer makes it easier than ever
We looked at various instance types that are categorized into different groups based on their preferred workloads. We also considered EC2 dimensions, which are crucial when choosing instances for your specific business needs and requirements. As usual with AWS, there are plenty of options available. This variety can often lead to confusion, which can, in turn, lead to mistakes when designing your cloud infrastructure.
Running an improperly provisioned environment can lead to unnecessary EC2 instance costs and the suboptimal performance of your critical applications. In the past, services like AWS Cost Explorer and AWS Trusted Advisor were used to point out flaws in your architecture. The release of AWS Compute Optimizer has made it easier than ever to improve your cloud environment, thanks to machine learning-powered analyses and recommendations.
In Part Two of this series, we’ll provide you with a complete how-to guide for using AWS Compute Optimizer, covering every step and feature you need to understand before jumping in and making improvements to your environment.
Optimize your AWS even further
There are many pillars that make up optimization in the cloud and rightsizing is just one of them. N2WS prides itself on guiding customers through their optimization journey, through three main stages. It is highly recommended you take advantage of a usage check-in with one of our experts to understand where you are in the optimization journey and how to hone in on your low hanging fruits.
New to N2WS Backup & Recovery? Try it out completely free for 30 days.