AWS Cost Savings
The main way to get cost savings from AWS is via reserved instances. These are available for both EC2 and RDS instances (and others), and come in a few flavors:
|1 year term||3 year term|
|no up-front payment + monthly discount||no up-front payment + monthly discount|
|partial up-front payment + monthly discount||partial up-front payment + monthly discount|
|full up-front payment||full up-front payment|
Amazon offers substantial discounts for “reserving” instances for a period of either 1 or 3 years, with either zero, partial, or full up-front payment. These discounts can be as much as 30–40% depending on the instance type, term, and how much you want to pay up front. However, our experience for newer startups suggests that a one-year term with a partial up-front payment offers a good balance of flexibility and cost savings. No up-front payment gives a much smaller discount, and all up-front payment is a big one-time cost for only a few more percentage points of savings.
Enterprise clients, on the other hand, may prefer longer terms or all up-front payment to maximize savings. Be sure to communicate with your client services team (AM, PM, and/or PO) to determine when best to discuss costs with the client, and be sure to get a feel for their needs before making specific suggestions.
Here are some pretty simple scenarios for paying for reserved instances:
- The RDS and EC2 instances for staging are generally on the free tier for the first year. After that point, it’s safe to move these to reserve instances.
- A production RDS instance is often over-provisioned to account for expected growth. Reserving the instance for 1 year is generally a safe bet.
- The application server is designed to scale horizontally—i.e., launch additional EC2 instances as demand increases—but you’re guaranteed to always have at least one instance running, so a reserve instance makes sense here.
- An enterprise client has a simple micro-service that won’t need to scale much but will perform an important periodic task; a three-year term can maximize their cost savings if they can appropriately budget for the three-year term.
(Note: Instances that you think might change often aren't a good fit for reserved instances, since they are reserved by type. You'll gain the most benefit by reserving instances you are confident won't change for a one-year or three-tear term. It's possible, however, sell "leftover" reserved instance time on the AWS Marketplace.)
The good news is that it’s relatively trivial to get all the calculations you need to show to the client if you are already running the planned production instances. Just email the client’s AWS account number to our AWS Account Manager, Matt Royal, at email@example.com. Chances are good he is also the client’s account manager (since they are assigned regionally), but he’ll make sure you’re connected with the right person. AWS Account Managers have a tool that scrapes the instance details from the account and generates a report outlining what moving the existing instances to reserved instances will cost (across all three options). Also note that Amazon has tasked AWS Account Managers to help clients find ways to save money, so you can leverage this resource throughout the development process and beyond the initial production deploy.
If you need to spec out pricing for other instance types, you can just look up the data from the online price lists (e.g. EC2 or RDS) or the simple monthly calculator. The essential bits of information are the on-demand price per month, the up-front payment amount for the term you are evaluating, and the price per month with the up-front payment option you or the client have chosen.
Once you have the numbers you need, you’ll want to create a quick spreadsheet to communicate the cost benefits to the client. There is a sample spreadsheet you can copy and use for showing the price savings to your client—presuming a one-year term with partial up-front payment (see below). A little spreadsheet-fu can do the same if you want to compare different terms or payment options.