50

AWS costs every programmer should know

 3 years ago
source link: https://www.tuicool.com/articles/BbYbArF
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

The title for this blog post is a direct reference to Latency Numbers Every Programmer Should Know . There are several versions of those numbers available now, and I could not find the original author with certainty. Some people attribute the original numbers to Jeff Dean .

When working on a project that will reach a certain scale, you need to balance several concerns. What assumptions am I making and how do I confirm them? How can I get to market quickly? Will my design support the expected scale?

One of the issues associated with scale, is the cost of your infrastructure. Cloud providers allow you to provisions thousands of CPUs and store terabytes of data at the snap of a finger. But that comes at a cost, and what is negligible for a few thousand users might become a burning hole in your budget when you reach millions of users.

In this article, I’m going to list reference numbers I find useful to keep in mind when considering an architecture. Those numbers are not meant for accurate budget estimation. They’re here to help you decide if your design makes sense or is beyond what you could ever afford. So consider the orders of magnitude and relative values rather than the absolute values.

Also consider that your company may get discounts from AWS, and those can make a massive difference.

Compute

What’s the cost of a CPU these days? I used the wonderful ec2instances.info interface to extract the median price of a vCPU.

You can get the source data out of their Github repo . I copied it and processed it using a python script that you can find on Github . All prices are for the eu-west-1 region.

Median monthly cost 1 modern vCPU (4 AWS ECUs) 58 $/month With 1 year convertible reservation (all up front) 43 $/month With 3 years convertible reservation (all up front) 30 $/month With spot pricing (estimated) 30 $/month

I estimated spot pricing based on anecdotal data I got from various sources. As the prices vary within a day and I could not find a reliable data source for it.

AWS represents the computing power of its machines in Elastic Compute Units, and 4 ECUs represent more or less the power of a modern CPU. So the prices above are for one CPU or core, not one instance.

Here’s the price of 1 ECU in $ per hour across all instance types I looked at:

ecu-memory-cost.png

And here’s how on-demand compares with 1 year and 3 year reservations (both convertible, upfront payments):

ondemand-vs-reserved.png

Storage

So you want low latency, high throughput and are planning to store everything in Redis? Then on top of those CPU costs, you’ll need to pay for RAM.

I used the same approach to extract the median price of 1GB of RAM on EC2. Elasticache is more or less twice as expensive for on-demand but prices drop quite quickly when looking at reserved instances.

Median monthly cost 1 GB RAM 10 $/month 1 GB RAM 1 year convertible reservation (all up front) 8 $/month 1 GB RAM 3 years convertible reservation (all up front) 5 $/month SSD 0.11 $/month Hard Disk 0.05 $/month S3 0.02 $/month S3 Glacier 0.004 $/month

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK