Amazon Web Services (AWS) is the market leader in the public cloud, providing over 200 services from data centers worldwide.
AWS charges for provisioned services even if they are not used. AWS waste occurs when its resources are not used or underutilized. Furthermore, On-Demand rates can be 70-90% more expensive than commitment-based (e.g., Savings Plans, Reserved Instances) and availability-based (e.g., Spot Instances) rates, resulting in wasted cloud spend.
FinOps, also known as cloud financial management, is becoming increasingly important for modern organizations as cloud computing becomes one of the most expensive resources.
According to Anodot’s 2022 State of Cloud Cost Report, which surveyed 131 US-based IT directors and executives, 88% of respondents ranked optimizing and reducing existing cloud resources as extremely or very important. Almost half of the IT executives surveyed said they struggled to control cloud costs, and their organizations wasted at least 33% of their cloud budget. But, companies often underestimate the amount of wasted cloud spending — which can be much higher when taking into consideration commitment purchasing opportunities.
In this blog post, we will give a brief overview of the cost-drivers and optimization methods for these popular AWS services: EC2, EBS, RDS, EKS, and S3. For a deep dive on each service’s benefits, cost drivers, and optimization methods, you can visit the service-specific optimization page — a link is provided at the end of each section.
Amazon EC2 cost optimization
Amazon Elastic Compute Cloud (Amazon EC2) — one of AWS’ most used services — provides scalable computing capacity in the AWS cloud, making it possible to develop and deploy applications faster and eliminating the need to invest in hardware upfront. Controlling and managing your Amazon EC2 spend requires understanding the cost drivers.
Amazon EC2 cost drivers
Instance type. Amazon EC2 provides a wide selection of instance types — consisting of varying combinations of CPU, memory, storage, and networking capacity — optimized to fit different use cases. Current generation instances provide better price performance than previous generation instances.
Instance size. Defined by the number of vCPUs, amount of memory (GiB) and storage (GB), and bandwidth capacity (Gbps). Instance size (e.g., medium, large, xlarge, etc.) is the main driver of your Amazon EC2 hourly cost, with costs doubling with every increase in instance size.
Instance CPU architecture. Amazon EC2 offers three types of processors: Intel (x86) processors; AMD (x86) processors that are priced 10% lower than comparable Intel-based processors; and AWS Graviton (ARM) processors that are priced 20% lower than comparable Intel-based processors.
Instance OS. Amazon EC2 supports Linux x86 and Windows Server operating systems. Instances using Windows Server can cost as much as 120% more than those using Linux.
Purchasing model. Amazon EC2 instances can be purchased multiple ways: On-Demand, Savings Plans, Reserved Instances, and Spot Instances. On-Demand is the most expensive option.
Instance region and data transfer. Amazon EC2 costs are also affected by the region of your instance. Moving data into EC2 from the internet is free, but moving it out of EC2 can get expensive.
Supporting AWS services. It also costs extra to obtain additional IP addresses, use Amazon Elastic Load Balancing, enable Amazon CloudWatch, set up Amazon Elastic Block Store, and use Amazon EC2 Auto Scaling.
Optimizing EC2 costs
Rightsizing is the most effective way to optimize Amazon EC2 costs. This involves analyzing instance performance and usage patterns, and then shutting off idle instances and optimizing overprovisioned or poorly matched instances.
Adopting pricing models that offer discounts based on commitment or availability is a great way to reduce Amazon EC2 costs. The hourly cost significantly decreases with flexible options like Spot Instances or commitment-based options like Reserved Instances — which offer up to 90% and 72% off On-Demand prices, respectively.
While rightsizing and pricing models are the first cost control measures, there are other actions you can take to reduce your Amazon EC2 cloud bill, including:
- Stop idle instances
- Upgrade from previous generation instances
- Transition away from proprietary operating systems
- Reduce unnecessary inter-region data transfer
- Delete unattached IP addresses
- Terminate resources attached to stopped instances (e.g., EBS volumes, S3 objects)
Learn more about Amazon EC2 cost optimization.
Amazon EBS cost optimization
Amazon Elastic Block Store (Amazon EBS) is an easy-to-use, scalable, high-performance block-storage service designed for Amazon EC2. It is important to understand the cost drivers of EBS spend to control and manage it.
Amazon EBS cost drivers
EBS volume type. Amazon EBS provides multiple volume types — divided into two major categories: SSD-backed storage for transactional workloads and HDD-backed storage for throughput-intensive workloads — that allow you to optimize storage performance and cost for a broad range of applications. Current generation instances provide better price performance than previous generation volume types.
EBS Usage. Amazon EBS charges for provisioned volume storage (GB-month), IOPS (IOPS-month above baseline), and throughput (MB/s-month above baseline).
EBS Snapshots. Additional charges are incurred for Amazon EBS Snapshot storage (GB-month), restoration (per GB of data retrieved), and direct API requests — as well as data transfer to Amazon S3 (per GB of data transferred).
EBS volume region. Amazon EBS costs are also affected by the region of your volume.
Optimizing EBS costs
Selecting the right EBS volume type to suit your performance needs is the most effective way to optimize Amazon EBS costs.
For example, using an io2 Provisioned IOPS SSD volume type for non-mission critical applications that don’t require sustained IOPS performance is wasteful. Changing to a gp3 General Purpose SSD volume type can save you over 50% each year without compromising performance.
In addition to optimizing EBS volume type, there are other actions you can take to reduce your Amazon EBS cloud bill, including:
- Terminate volumes attached to stopped EC2 instances
- Upgrade from previous generation volume types (e.g., gp2 to gp3)
- Delete outdated EBS snapshots (e.g., over 21 days)
- Reduce unnecessary inter-region data transfer
- Delete unattached IP addresses
Learn more about Amazon EBS cost optimization.
Amazon EKS cost optimization
Amazon EKS is a managed service that makes it easy for you to start, run and scale Kubernetes applications in the cloud or on-premises. But costs can quickly spiral out of control as Kubernetes environments become more complex. Controlling and managing Amazon EKS spend requires understanding its cost drivers.
Amazon EKS cost drivers
EKS clusters and deployment type. Amazon EKS pricing is straightforward — $0.10 per cluster per hour. You can run EKS in the cloud using Amazon EC2 or AWS Fargate — 15%-40% more for the same vCPU and memory when compared to EC2 On-Demand prices.
Pod resource requests. Pods are not a billable component, but pod resource requests — which are specified and limited for vCPU and memory when pods are configured — are the primary driver of the number of EC2 instances needed to support clusters.
Underlying Amazon EC2 instances. The underlying EC2 nodes will drive the largest part of your EKS costs. Parameters that impact a node’s price are the same as listed above in the EC2 cost drivers and include instance type and size, CPU architecture, operating system, region and availability zone, and the pricing model.
Optimizing EKS costs
Optimizing Amazon EKS costs is mainly about rightsizing pod resource requests and the underlying EC2 instances that support the clusters. Misconfigured or partially configured pod resource request specifications can significantly impact the cost of running Kubernetes clusters. Usually, Kubernetes nodes are overprovisioned, resulting in low utilization.
In addition to rightsizing, EKS costs can be further reduced by the same steps as with Amazon EC2 cost optimization:
- Adopt pricing models that offer discounts based on commitment or availability
- Upgrade from previous generation instances
- Transition away from proprietary operating systems
- Reduce unnecessary inter-region data transfer
- Delete unattached IP addresses
- Terminate resources attached to stopped node (e.g., EBS volumes, S3 objects)
Learn more about Amazon EKS cost optimization.
Amazon RDS cost optimization
Setting up and operating cost-effective and scalable relational databases in the cloud is simple with Amazon Relational Database Service (Amazon RDS). To control and manage RDS spend, you need to understand cost drivers.
Amazon RDS cost drivers
RDS usage. You pay for compute capacity by the hour for your Amazon RDS DB instance, storage capacity, I/O, backups, and data transfer out of RDS.
RDS instance type and size. There are three types of DB instances supported by Amazon RDS: general purpose, memory-optimized, and burstable performance. Current generation instances provide better price performance than previous generation instances. Amazon RDS offers instances ranging from db.t2.micro (1 vCPU, 1 GiB RAM) to db.m5.24xlarge (96 vCPUs, 384 GiB RAM, 19,000 Mbps).
Storage type. Amazon RDS supports three types of storage: general purpose SSD (most workloads; least expensive), provisioned IOPS SSD (I/O intensive workload; most expensive), and magnetic storage for backward compatibility purposes.
Deployment type. A Multi-AZ deployment can be either with one or two standby instances, which cost 2X or 2.79X more than a Single-AZ deployment, respectively.
RDS DB engine. Open-source DB engines are the most economical, and cost almost the same — PostgreSQL is 5-10% more expensive per hour than the others. Amazon Aurora costs 10-20% more than the open source options. Oracle and Microsoft SQL Server can be more than 100% higher than open-source options, depending on the license.
Purchasing model. The hourly cost of Amazon RDS DB instances is significantly less when purchased as Reserved Instances with a one or three year commitment.
Instance region. Amazon RDS costs are also affected by the region of your instance.
Optimizing RDS costs
The key to optimizing Amazon RDS costs is choosing the right instance class — which includes selecting the appropriate storage type for your workloads and rightsizing instance sizes.
Beyond optimizing instance classes, you can reduce RDS instance costs with Reserved Instances (RI), which offer up to a 72% discount over on-demand pricing.
Additionally, Amazon RDS costs can be further reduced by taking the following actions:
- Delete outdated snapshots
- Upgrade from previous generation instances
- Transition away from proprietary DB engines
- Shorten backup retention period
- Avoid Multi-AZ deployments
Learn more about Amazon RDS cost optimization.
Amazon S3 cost optimization
Amazon Simple Storage Service (S3) is a cloud-based data storage solution that offers highly-scalable, reliable, and low-latency data storage infrastructure. Keeping costs under control and optimizing them in a way that doesn’t impact application performance or add overhead to operations is essential.
S3 cost drivers
Storage usage and class. You pay for storing objects in your Amazon S3 buckets regardless of usage. Charges depend on your objects’ size, how long you stored the objects during the month, and the storage class. Storage costs will account for most of your Amazon S3 costs — up to 90%.
Data retrievals and requests. Retrieving objects stored in infrequent access tiers is the next major Amazon S3 cost driver. You also pay for requests made against your S3 buckets and objects.
Data transfer. There are data transfer costs for cross-region replication between Amazon S3 buckets and cross-region data transfer to AWS services (e.g., EC2, EMR, Redshift, RDS).
Management, analytics, and bucket/file configuration. Data compression and partitioning, file size, and using features like S3 Object Lambda, Replication, Versioning, Multipart Uploads, S3 Inventory, S3 Storage Class Analysis, S3 Storage Lens, and S3 Object Tagging can have a significant impact on your Amazon S3 costs.
Optimizing S3 costs
The key to optimizing Amazon S3 costs is choosing the right storage class to match data access patterns, performance, and cost requirements. With S3 Intelligent-Tiering, you can save money even under changing access patterns — with no performance impact, no operational overhead, and no retrieval fees.
It is also essential to place Amazon S3 buckets and AWS resources that access them in the same region to optimize costs.
Additionally, Amazon S3 costs can be further reduced by taking the following actions:
- Terminate inactive buckets
- Compress and partitioning data
- Turn off S3 versioning
- Delete multipart upload parts
Learn more about Amazon S3 cost optimization.
Optimize AWS costs with Anodot
Managing and optimizing cloud costs is an ongoing process since resources are constantly changing. With the right tools, cloud cost optimization doesn’t have to be painful.
Anodot’s Cloud Cost Management solution makes optimization easy. It can easily connect to AWS, Azure and GCP to monitor and manage your spending. Anodot seamlessly integrates all cloud spending — even in multi-cloud environments — into a single platform, allowing a holistic approach to optimization.
Anodot’s personalized insights and savings recommendations are continuously updated to consider the newest releases from major cloud providers, including AWS. Anodot helps FinOps teams prioritize recommendations by justifying their impact with a projected performance and savings impact.
Anodot is unique in how it learns each service usage pattern, taking seasonality into account to establish a baseline for expected behavior. Real-time anomaly detection enables Anodot to identify irregular cloud spend and usage, providing contextual alerts to relevant teams so they can resolve issues as soon as possible.
AI and ML-based algorithms provide deep root cause analysis and clear remediation guidance. Anodot helps customers align FinOps, DevOps, and finance teams’ efforts to optimize cloud spending.
Start optimizing your cloud costs today!
Connect with one of our cloud cost management specialists to learn how Anodot can help your organization control costs, optimize resources and reduce cloud waste.