Every public cloud customer wants to take advantage of purchasing discounts for cost management purposes, but not all customers are prepared to do so. To take advantage of cost saving strategies offered by cloud providers, businesses must analyze their resource usage on an instance level and prepare to engage in a nuanced negotiation. This article reviews the cost management challenges involved in obtaining purchasing discounts by committing to reservations and data transfers, using spot instances, or entering an enterprise discount program.
The seven challenges covered in this article are:
They are each explained below.
AWS EC2 instance reservations offer up to 72% in savings but require careful planning. Various factors determine the price of a new reserved instance, including:
After you decide on the type and location of the instance, you then need to decide whether to commit to a one year or three year term, and finally whether to pay for all, part, or none of it upfront. Once you have made those decisions, you can’t change your mind unless you have purchased a convertible reservation (covered below) since you have either already paid for it or have committed to pay it.
A lot can change over one to three years, leaving your commitments to specific instance types and sizes unused . For example, the need for a particular EC2 configuration may change because your application architecture or workload changes, or the modernization of an application architecture may go as far as eliminating the need for EC2s in favor of containers or Lambda functions.
You may buy and sell unused reservations on the AWS aftermarket marketplace, which is helpful. For example, you may have five months left on a twelve-month contract that you no longer need. Interested buyers would then bid to take over your commitment for the remainder of your agreement. However, you should consider it more of a last resort as it may take a while to find a buyer, assuming that you eventually find one willing to pay close to your original investment.
Convertible Reserved Instances enable you to exchange, or convert, your instance with a different configuration (instance family, OS, and tenancy). And although you can perform this conversion as many times as you’d like, it still requires a significant amount of effort to plan and execute. Changing a convertible reservation requires deep spreadsheet analysis and countless clicks in the AWS portal. In addition, a conversion doesn’t protect the entire initial investment made in the reservation.
As the market leader, AWS responded to customer requests and increased competitive pressure by offering greater purchasing flexibility with Savings Plans. A Savings Plan provides close to the same discount levels as instance reservations (though not the same); however, they offer the critical flexibility of usage across:
The main limitation of Saving Plans is that you can’t sell them on the AWS Marketplace; if your engineering team doesn’t need all of the committed capacity after a few months, you are still responsible for paying for it. The following table compares the differences between the reservation purchase options discussed in the last few paragraphs:
|Pricing Category||Standard RIs||Convertible RIs||EC2 Instance Savings Plans||Compute Savings Plans|
|Discount over On-Demand Pricing||Up to 72%||Up to 66%||Up to 72%||Up to 66%|
|OS and Tenancy Independent?||No||No||Yes||Yes|
|Available with a 1- or 3-year Term?||Yes||Yes||Yes||Yes|
|Supports Fargate and Lambda?||No||No||No||Yes|
The second limitation of Savings Plans is that they are not available for the other (non-compute) services covered by the reserved instance, namely Relational Database Services (RDS), ElastiCache, Redshift, and DynamoDB. They are probably the most discussed tool in the AWS cost management toolbox.
A commitment to using an EC2 over three years doesn’t mean that AWS will keep capacity available for your use; your reservation contract merely implies that you will pay less for the resource when it’s available for you to use. Although it is rare for resources to be unavailable to you even when paying for a commitment, it can happen.
This restriction doesn’t apply if you have purchased a “zonal” reservation limited to use within a specific availability zone. In other words, the most inflexible type of reservation is also the type that guarantees resource availability. This consideration is particularly relevant in the case of a disaster recovery scenario. For example, a natural disaster may hit a region and force AWS customers to immediately move workloads to another region, rapidly depleting all available computing resources for late-movers.
Spot instances are available from all cloud providers, and they offer huge discounts (up to 90%) valuable to AWS cost management. Spot instances are resources that others have committed to purchasing but are not currently using. The hefty discount comes at the expense of the resources disappearing within two minutes if they are needed elsewhere.One way to mitigate this downside is to listen to a signal known as Rebalance Recommendation that is generated whenever AWS detects an increased risk of Spot instance interruption.
AWS EC2 isn’t the only resource you can reserve to benefit from a purchasing discount. The services listed below are also available for reservation, even though a smaller percentage of cloud customers ever do. It’s your job as a FinOps manager to push your engineering teams to measure their usage of services described in this section and coordinate their future needs with you so that you can include them in your reservations plans.
AWS RDS is a relational database service supporting various underlying database engines, namely Aurora, MySQL, MariaDB, PostgreSQL, Oracle, and SQL Server. RDS instances may be reserved similarly to EC2 virtual machines and offer flexibility in sizing. They are second on the list of most commonly-reserved instance types.
AWS ElastiCache is an in-memory data storage service supporting popular Redis and Memcached technologies when hard drives are too slow for specific applications. If your application consistently depends on this service, you can reserve cache nodes similarly to how you reserve EC2 instances.
AWS Redshift is a data warehouse or data lake service used to store very high volumes of structured and semi-structured data requiring analysis. This service is priced by compute node, which makes it similar to EC2 when it comes to reserving.
AWS DynamoDB is a key-value and document database referred to as a NoSQL database in contrast to traditional relational databases such as Oracle or Microsoft SQLServer. You may reserve database read and write throughput, abstracted as Read Capacity Units (RCU) and Write Capacity Units (WCU), as long as you measure your historical usage and can decide a minimum level to commit to on an annual basis.
AWS charges for data transfers that cross the boundaries between regions, availability zones, direct connect (a virtual private network), and the internet. The charges typically apply to data leaving AWS as opposed to data entering its data centers. The transfer traffic may be simply due to users accessing your applications or related to data-mirroring intended to protect your application against an unexpected failure. As an interesting point of reference, Apple paid $50m in data transfer charges to AWS in 2017 (we couldn’t find more recent figures, perhaps because that’s the only year that this information leaked). However, most companies don’t know how much they spend on data transfer costs.
By measuring your historical usage, you can save money by committing to future consumption. A commitment to data transfer is not known as a reservation but instead as a Private Pricing Program (PPP). As part of this agreement, you commit to using Gigabytes of data over time in exchange for discounts; however, you must be careful since you would still pay for the data even if you don’t use it (similarly to a reservation). You can’t find much information about this program by searching in Google because they are negotiated directly with your account management team. It’s a valuable weapon for AWS cost management.
AWS offers discounts based on an aggregate annual spending commitment known as the Enterprise Discount Program (EDP). The spending includes all AWS services across the accounts tied to a master billing account. Companies typically enter into this program once they spend more than a million dollars annually in exchange for a discount estimated to range from 5 to 15%. We use the term “estimated” discount because this information is not standardized and presented in a volume discount schedule. Instead, AWS confidentially negotiates the terms with each company.
EDP has its place in an AWS cost management strategy, but it can also cause overspending when used in isolation. It’s complicated to identify the wasted under-utilized resources in a cloud environment, integrate the use of spot instances into engineering plans, forecast capacity requirements, or commit to the right amount of reservations. In contrast, it’s easy to commit to an annual spending level in exchange for a 10% discount across the board; however, it can easily lead to overspending if it replaces the measures mentioned above required for efficiency.
Cloud providers offer many discount options valuable to your AWS cost management strategy. As a general rule, more discounts mean less flexibility and higher commitments. However, FinOps practitioners must ensure that financial commitments to future spending wait until thorough usage analysis proves an efficient use of existing resources.