HiFX

Optimizing Cost in AWS — Part 2

 This article focuses on reducing the cost for resources that you’re sure you’ll be using for over a year — without upgrading or downgrading the resource type. When you’re so damn sure about the workload and the traffic and you’ve come to a conclusion that there won’t be any upgrade/downgrade of the resource type for at least next one year, it’s the time to make a commitment to AWS and avail that heavy discount.

Reserved Instances & Savings Plan

Simply said — Savings Plan is used to save some dollars on resources in the entire AWS account, whereas Reserved Instances helps you save on individual resources in service level. Though it is a bit tough to understand this, I will try to explain this phenomenon in a few words (so that you won’t get bored).

Reserved Instances

For services like Elastic Compute Cloud — EC2, Amazon RDS, Elasticache, OpenSearch, Redshift there’s something called reserved instances that ‘reserves’ your individual resources for one year or three years. There are a few things to consider when you ‘reserve’ your resources to get more savings.

Reserving an EC2 Instance - Saved around 65.00 USD per month per instance

Following things need to be considered while reserving an EC2 Instance.

  1. Platform — Linux/UNIX/SUSE/Red Hat/Windows etc…
  2. Offering Class: Standard — more savings, but you cannot change the committed instance type Convertible — costlier than Standard, but you can switch between the instance type
  3. Period — One year or Three long years
  4. Instance Type — Type of instance you want to stick on to
  5. Payment Option:

All Upfront — One-time fee, need not pay for the rest of the year.
Partial Upfront — A small one-time fee, plus almost half on hourly price.
No Upfront — No upfront fee, but a decent discount on hourly price.

From the snippet below, you can see the price difference of over 60.00 USD when you reserve one r5.xlarge instance for one year with no upfront payment option.

EC2 On-Demand vs Reserved price for one r5.xlarge instance type in a standard AWS Region.

 This is how it is calculated

  • On-Demand Rate — 0.252/hr (Linux/On-Demand)

0.252 x 24 x 365 / 12 = 183.96 USD

  • Reserved Instance Rate —0.159/hr (Linux/1 Year/Standard/No Upfront)

0.159 x 24 x 365 / 12 = 116.07 USD

Reserving an RDS Instance - Saved around 145.00 USD per month per instance

This is applicable to Amazon Aurora, RDS, Oracle and Microsoft SQL Server. When you’re all set to buy a reserved DB Instance, be sure to provide the following information correctly.

  1. Engine Type — Aurora MySQL/RDS/Oracle/SQL etc…
  2. Instance Type — self explanatory
  3. Type of Deployment — Multi/Single AZ
  4. Term — One year or Three years
  5. Offering Type:

All Upfront — One-time fee, need not pay for the rest of the year.
Partial Upfront — A small one-time fee, plus almost half on hourly price
No Upfront — No upfront fee, but a decent discount on hourly price

  1. Region — Defaults to the region your AWS Console is in
  2. Number of DB Instances — self explanatory

Reserving Elasticache - Saved around 100.00 USD per month per node

The Elasticache reservation concept is no different from the above examples. However, you need to know the following information prior to purchasing a Reserved Instance.

  1. Engine – Valkey/REDIS/Memcached
  2. Instance Type – self explanatory
  3. Term – One year or Three years
  4. Offering Type:

All Upfront –  One-time fee, need not pay for the rest of the year.
Partial Upfront – A small one-time fee, plus almost half on hourly price.
No Upfront — No upfront fee, but a decent discount on hourly price

  1. Number of nodes — self explanatory

Reserving OpenSearch - Saved around 335.00 USD per month for a cluster with the following spec

  • 3x c5.large Master Nodes
  • 3x r5.xlarge Data Nodes
  • 150GB GP3 Storage — 50GB for each Data Node

When reserving OpenSearch, if the Instance Type of your Data nodes and Master nodes has a dissimilarity, like the spec above, you would need to purchase the reservation two times — one for Data Nodes and the other for Master Node. However, the intention about reserving the resource is the same — save some dollars.

Reserving Redshift - Saved around 350.00 USD per month for three node ra3.large cluster

When coming to Redshift, you need to keep in mind that not all the instance types are available for reservation. There are currently two instance types — dc2.x and ra3.x of which only ra3.x is available for reservation.

 I hope things are clear about reserving a resource in EC2, Elasticache, RDS, Redshift and OpenSearch. There’s something called Savings Plan that works on AWS Account level and could help you save more. Picking Reserved Instances or Savings Plan is up to you to decide. Due to the length of this article, I think I should consider writing about Savings Plan in a separate

Build Smarter Data Solutions on AWS

Curious About AWS Best Practices?

Our AWS consulting team brings years of enterprise cloud experience to help you architect, optimize, and secure your cloud infrastructure. Let’s explore the possibilities!

Leave a Comment

Your email address will not be published. Required fields are marked *

This will close in 0 seconds

Scroll to Top