AWS Compute Optimizer
Learn how to optimize the cost and performance by identifying both underutilization and overutilization of resources using Amazon's Compute Optimizer.
We'll cover the following
Imagine working for an organization that manages several applications and servers that utilize several different types of AWS Compute services. It’s important that we choose the right number of these computing resources and the right configuration for them to ensure that we get the best possible performance at the lowest possible cost. Doing so can be tricky and we can end with unexpectedly high costs or underperforming resources.
AWS Compute Optimizer is one such AWS service that provides us with ML-based recommendations for the most optimal compute resource configurations to avoid underutilization or overutilization of resources.
Introduction to AWS Compute Optimizer
AWS Compute Optimizer is an AWS service that provides recommendations to optimize AWS compute resources. It helps us choose the optimal AWS compute resources for our application workloads based on our usage patterns.
AWS Compute Optimizer looks at historical utilization data, like CPU, memory, and network usage, to understand the workload’s resource needs. It then suggests more cost-effective resources or configurations that still meet performance requirements. These might include changing to a different instance type or optimizing for cost or performance.
AWS Compute Optimizer is capable of generating recommendations for the following supported AWS resources:
AWS EC2 instances
AWS EC2 Auto Scaling groups
AWS EBS volumes
AWS Lambda functions
AWS ECS services on AWS Fargate
Commercial software licenses
How AWS Compute Optimizer works
AWS Compute Optimizer works by first analyzing the usage patterns of our existing AWS resources while employing machine learning. Using this analysis as a baseline, the service provides recommendations for optimal configuration of the AWS compute resources tailored to enhance performance and cost-efficiency.
Here’s an illustration detailing the setup and usage of the AWS Compute Optimizer service:
Here’s a breakdown of the diagram above on how we can set up and use the AWS Compute Optimizer service:
Opt-in to AWS Compute Optimizer: We first need to opt into the AWS Compute Optimizer service before we can use it. There are no separate charges for opting in.
Provide utilization preferences and any external metrics: After opting into the AWS Compute Optimizer service, we need to provide utilization preferences and preferred instance types based on which we want to generate optimal suggestions. We can additionally also provide external metrics collected with third part resources.
AWS Compute Optimizer monitors compute resources: AWS Compute Optimizer then begins monitoring compute resources to identify usage patterns and collect the utilization metrics we specified and the resource configuration.
AWS Compute Optimizer processes metrics: After collecting the metric and usage pattern data, AWS Compute uses machine learning to process and create a baseline.
AWS Compute Optimizer generates recommendations: AWS Compute Optimizer, still leveraging machine learning then compares the baseline against our current compute resources configuration to generate configuration recommendations for optimal usage of resources.
Reconfigure Compute resources: Based on AWS Compute Optimizer recommendations, we can finally reconfigure AWS compute resources to enhance performance and cost-efficiency.
Use cases
Here are some use cases of the AWS Compute Optimizer service:
Cost optimization: We can reduce AWS spending by using Compute Optimizer to identify instances where we might be over-provisioning resources and suggest cost-efficient configurations without compromising on performance.
Performance tuning: Compute Optimizer can recommend instances with better computing capabilities for applications requiring high performance to meet the workload demands, ensuring optimal performance.
Right-sizing compute resources: AWS Compute Optimizer assists in determining the right size for EC2 instances and Auto Scaling groups based on actual usage patterns. This is especially useful for applications experiencing fluctuating workloads.
Configure infrastructure based on external metrics: We can also provide Compute Optimizer with third-party tool-collected metrics to generate improved recommendations.
Planning resource migration: When planning a migration to AWS, Compute Optimizer can help identify the most suitable AWS resources, thus facilitating a smoother and more efficient migration process.
Understanding costs
There are no additional charges for using AWS Compute Optimizer.
The AWS Compute Optimizer itself is a solution from AWS that provides us with recommendations for optimizing AWS compute resources. Hence, it’s important to note that we’ll still incur costs for the AWS compute services that we’re optimizing with Compute Optimizer.
Note: Pricing of most resources on AWS follows the pay-as-you-go approach. This means that we only pay based on what not-free-to-use AWS resources we use and how we use them; there are no minimum fees and no required upfront commitments.
This lesson taught us about AWS Compute Optimizer, its potential benefits, and how it helps us choose the most optimal configuration for AWS compute resources to reduce costs and improve performance.
Get hands-on with 1300+ tech skills courses.