This is part 1 of our two part series about the pitfalls and perils of unexpected cloud costs, and how to avoid them.
The other day, we saw an interesting quote.
“Cloud is the new IT.”
Do we think that’s right? Not quite, but it’s getting there. It’s true that every infrastructure capability, including compute, storage, and networking, lives in the cloud. And now cloud-based apps and services are at the root of IT innovation—from virtual desktops to high-performance computing, from databases to productivity apps, the cloud has it all.
That’s why cloud adoption continues to grow. More than 50% of workloads at organizations like yours are expected to live in the cloud by 2021, 25% of organizations are choosing an all-cloud strategy, and 93% of enterprises use more than one cloud to improve versatility, increase agility, and reduce risk.
However, there’s a downside to cloud: cost. Optimizing cloud costs is a top priority for nearly every organization because the very strengths of cloud—easy access, easy provisioning, simple expansion—become problems in a world of emerging, unpredictable pressures on fixed budgets. And the tools we used to use to control traditional IT costs aren’t a good fit for cloud.
This article is the first in a multipart series exploring (and exposing!) the costs of cloud. In this blog post, we take a look at Amazon Web Services (AWS) pricing models and use them as an example to discover the dynamics and variables of cloud pricing. After you’ve read these articles, you’ll have a deeper understanding of how clouds charge, how costs increase, and how you can keep cloud expenses from spiraling out of control. Controlling costs begins with knowledge, and we’re here to help.
Cloud cost fundamentals for Amazon Elastic Compute Cloud: Complicated or not?
We begin this investigation by exploring the costs of cloud resources, the building blocks of your cloud infrastructure. Most IT experts begin provisioning cloud capabilities by combining elements, including virtual machines, storage, networking, database instances, or virtual desktop instances.
Regardless of what resources you’re considering for your deployment, these general cloud cost principles apply:
- Preprovisioned resources are less expensive than on-demand ones.
- The greater the performance, the greater the cost.
- Shared hosting costs less than dedicated hosting.
If you think of these principles as dials to turn up or down, you can see how you can increase or decrease your costs. Let’s drill down into a few specific examples.
Amazon Elastic Compute Cloud (EC2) provides virtual server instances for elastic, managed computing at scale. There are costs for EC2 instance consumption (by the hour), and separate costs for the number of transactions. As you’d expect, prices vary for different instance types, hosting type, and provisioning model. They also vary for different Regions and Availability Zones.
See how complicated cloud resource costs can be? And this is just for compute!
What do you need? EC2 instance type pricing
Let’s consider compute instance types. Pricing for an EC2 instance type depends on four variables, where higher specs increase costs:
- Number of vCPUs
- Number of EC2 compute units
- On-board memory capacity
- On-board storage capacity
Today, there are more than a hundred instance types, each with its unique performance capabilities and price points. The instance types fall into five major categories: general purpose, compute-optimized, GPU instances, memory-optimized, and storage-optimized. Here’s a look at pricing for three instance types per hour.
Table 1) Costs per instance hour for US East (Ohio) Region.
|Category/Name||vCPUs||ECUs||Memory (GiB)||Cost per instance hour|
|General purpose a1.medium||1||0||2||$0.0255|
|Compute optimized c5.large||2||9||4||$0.085|
|Memory optimized r5.large||2||9||16||$0.126|
Where does it go? Amazon Regions and Availability Zones
Once you’ve picked an instance type, it’s time to evaluate the pricing for different Regions and Availability Zones. Amazon hosts EC2 instances in isolated regions. Each region has multiple availability zones. Usually, Amazon EC2 resources are Region and/or Availability Zone specific—and of course, different regions or zones come with different pricing. Table 1 shows data from the US East (Ohio) Region. As shown in Table, 2, costs for the Asia Pacific (Tokyo) Region are 20% to 25% higher.
Table 2) Comparison of US East and Asia Pacific costs per instance hour.
|Category/Name||US East||Asia Pacific|
|General purpose a1.medium||$0.0255||$0.0304|
It’s all yours: Dedicated Hosts
Now it’s time for another choice—do you need a dedicated host? Whether to meet compliance regulations or corporate data privacy requirements, you may require a platform that isn’t being used by others, so Amazon provides Dedicated Hosts. A Dedicated Host is a physical server with EC2 instance capacity that’s devoted to your requirements—capacity isn’t shared with other users. From a privacy standpoint, that’s a great capability, but active Dedicated Hosts, which can run only one instance type, come with additional hourly costs. In the US East (Ohio) Region, for example, you could use a c5 Dedicated Host, running up to 36 c5.large instances, for $3.366 an hour. Using a shared host for 36 c5.large instances costs about 10% less ($3.06).
Ready for a discount? Volume tiers and Reserved Instances
All of these costs are fixed, but there is a way to get a discount. Amazon provides volume discount tiers across every account in your organization, lumping all your users together to determine your discount.
Even better, if you’re looking for lower costs, Amazon provides discounts for Reserved Instances (RIs), which are essentially commitments to use Amazon, and, if chosen for a specific Availability Zone, come with a capacity reservation. Prices vary based on:
- Term: 1 year or 3 year
- Type: Standard or Convertible
- Prepayment: All upfront, partial upfront, no upfront.
Here’s how this works. In Table 1, we saw that the on-demand cost for an a1.medium instance is $0.0255 per instance hour.
As you can see in Tables 3 and 4, Reserved Instances come with major cost savings, between 37% and 62%, compared with regular on-demand costs. But the cost savings have to be weighed against a long-term commitment and reduced flexibility. Even if you’re not using a Reserved Instance, you’re still paying for it.
Table 3) Costs for 1-year RI.
|Payment Option||Upfront||Average Monthly||Effective Hourly||Savings Over On-Demand|
Table 4) Costs for 3-year RI.
|Payment Option||Upfront||Average Monthly||Effective Hourly||Savings Over On-Demand|
Time for bytes: Unstructured cloud storage
So far, we’ve covered all the important aspects of compute instances. Now let’s turn to storage.
Amazon has three unstructured storage types:
- Block storage. Amazon Elastic Block Store (Amazon EBS). This service provides high-performance, dedicated, persistent block storage volumes for Amazon EC2 instances.
- File storage Amazon Elastic File System (Amazon EFS) offers a scalable file system that’s fully managed.
- Object storage. Amazon Simple Storage Service (Amazon S3) provides a massively scalable range of object storage classes with a variety of options. Low-cost options come with higher latency, higher-cost options come with lower latency.
Amazon calculates your storage costs by considering monthly storage capacity and data transfer costs. Your storage utilization (% of capacity), storage device type (hard drives or solid state drives), and read/write performance requirements also modify the basic storage cost calculations.
It’s clear as crystal: Amazon S3 costs and pricing
Let’s take a look at Amazon S3 pricing. Fortunately for us, Amazon makes S3 cost per terabyte in the US East (Ohio) Region clear, as shown in Table 5.
Table 5) Amazon S3 cost per gigabyte in US East (Ohio) Region.
|Performance Tier||First 50TB||Next 450TB||Over 500TB||All Storage|
|S3 Standard: Infrequent Access||$0.0125|
|S3 One Zone: Infrequent Access||$0.01|
|S3 Glacier Deep Archive||$0.00099|
|Intelligent: Tiering Storage, Frequent Access||$0.023||$0.022||$0.021|
|Intelligent: Tiering Storage, Infrequent Access||$0.0125|
|Intelligent: Tiering, Monitoring, and Automation||$0.0025 per 1,000 objects|
But remember, this chart only covers pricing for capacity. You might incur other costs, including:
- Data Transfer Out – per gigabyte, per destination. Data Transfer In is free.
- PUT/COPY/POST/LIST requests, per 1,000 requests.
- GET/SELECT and other requests, per 1,000 requests.
Yes, there’s a cost for copying an object.
Another model: Amazon EFS pricing
Not surprisingly, Amazon EFS costs come with a different cost structure that’s based on whether Amazon provides standard file storage or infrequently accessed file storage. Table 6 shows costs for users who choose Amazon EFS in the US East (Ohio) Region.
Table 6) Amazon EFS costs in US East (Ohio) Region.
|Standard Storage||$0.30 per GB per month||No cost for 5MB/s per GB||No charge per access|
|Infrequent Access||$0.045 per GB per month||$0.01 per GB transferred||Charge per access|
If you need additional throughput, you can pay for it—it’s $6.00 for every additional megabyte per second, per month.
You can also choose additional services from the AWS marketplace. For example, you could choose NetApp® Cloud Volumes Service for high-performance file storage. These services have different price points and cost structures.
Here’s an example. In July, if you used 300GB of Amazon EFS Standard Storage and you accessed your 500GB of Infrequent Access Storage twice a week, you’d be charged $112.50 for the storage (300GB x $0.30 + 500GB x $0.045), and $40 for the accesses (500GB x $0.01/GB x 8 accesses).
Is block any easier? Amazon EBS pricing
Now we come to the highest-performing storage that Amazon offers. Amazon EBS pricing is a mix of drive type and throughput optimization over time. As you can imagine, higher-performance solid state drives and high levels of throughput cost you more.
Table 7) Amazon EBS costs in US East (Ohio) Region.
|Type of EBS Volume||Monthly Cost||Per GB|
|General Purpose SSD||$0.10||GB/month of provisioned storage|
|Provisioned IOPS SSD||$0.0125||GB/month of provisioned storage|
|Throughput Optimized HDD||$0.045||GB/month of provisioned storage|
|Cold HDD||$0.025||GB/month of provisioned storage|
|Amazon EBS Snapshots to Amazon S3||$0.05||GB/month of data stored in Amazon S3|
Let’s calculate the costs, over a 30-day month, of a 2000GB volume, using a Provisioned IOPS SSD that’s provisioned for 1,000 IOPS and 12 hours (43,200 seconds) a day.
- 2000GB * [43,200 seconds/86,400 seconds/day * 30 days] x $0.125/GB-month = $4.167
- 1000 IOPS * [43,200 seconds/86,400 seconds/day * 30 days] x $0.065 = $1.083
That volume would cost $5.25. Is that as expensive as you thought it would be?
Have you learned something? Don’t worry, we’re almost done, for now!
We’ve spent several pages covering two of the building blocks you might use. That’s right—two. Now imagine that there are hundreds of these building blocks—database services like Amazon Aurora, AWS PrivateLink for network security, Amazon Elasticsearch Service for analytics, end-user computing like Amazon WorkSpaces, Amazon GameLift for game tech, and so many more.
Each service comes with its own price list and requirements that affect what you pay and how you pay. If you use many Amazon services, you’re going to encounter so many variables, keeping up manually becomes a full-time job—and cost controls become impossible.
That’s why, in Part 2, we’re going to explore cloud optimization best practices that allow you to take a higher-level view of controlling cloud costs. We’ll also examine a tool, NetApp Cloud Insights, to see whether it’s a good fit for your cloud cost optimization needs. Stay tuned!
In the meantime…
Are you worried that you might have a cloud spending problem? Download a copy of our new cloud cost-savings e-book to learn the 5 warning signs that you may have a problem, and 10 ways you can fix it right away.