One of the most common use cases for public IaaS cloud computing is storage and that's for good reason: Instead of buying hardware and managing it, users upload data to the cloud and pay for how much they put there.
It sounds simple. But in reality, the world of cloud storage has many facets to consider. Each of the three major public IaaS cloud vendors -- Amazon Web Services, Microsoft Azure and Google Cloud Platform -- have a variety of storage options and in some cases complicated schemes for how much it costs.
According to Brian Adler, director of enterprise architecture at cloud management provider RightScale, who recently ran a webinar comparing cloud storage options, there is no one vendor that is clearly better than the others. "Is anyone in the lead? It really depends on what you're using (the cloud) for," he says. Each provider has their own strengths and weaknesses depending on the specific use case, he says. Below are three of the most common cloud storage use cases and how the vendors stack up.
Block storage is persistent disk storage used in conjunction with cloud-based virtual machines. Each of the providers break their block storage offerings into two categories: traditional magnetic spinning hard-drive disks, or newer SSDs (solid-state disks), which are generally more expensive but have better performance. Customers can also pay a premium to get a certain amount of guaranteed IOPs (input/output per second), which basically is an indication of how fast the storage will save new information and read information stored in it.
Amazon's product is named EBS (Elastic Block Store) and it comes in three main flavors: Throughput Optimized HHD, a traditional magnetic, spinning-disk offering; General Purpose SSD, next-generation drives; and Provisioned IOPs SSD, which come with a guaranteed rate of reads and writes to the data.
Azure's block storage offering is called Managed Disks and comes in standard or premium with the latter based on SSDs.
Google's version is named PDs (Persistent Disks), which come in a standard or SSD option.
AWS and Google have a 99.95% availability, while Azure offers a 99.99% availability SLA (service-level agreement) for block storage service.
One of the most important factors to consider when buying block storage is how fast you need access to the data stored on the SSD disk. For that, the vendors offer different guaranteed rates of IOPs. Google is in the lead here; the company offers 40,000 IOPs for reads and 30,000 for writes to its disks. AWS's general purpose SSD offers 10,000 IOPS, but its provisioned IOPs offering can offer up to 20,000 IOPs per instance, with a maximum IOPs of 65,000 per volume. Azure offers 5,000 IOPs.
Google not only has the highest IOPs, but gives customers the most choice in the size of block storage volumes. For more traditional hard-drive based storage, Google offers volume sizes ranging from 1GB to 64TB. AWS offers volumes between 500GB to 16TB. Azure offers between 1GB and 1TB volume sizes. Like with the SSDs, Google offers the highest level of IOPs-per-volume in HDDs, at 3,000 for reads and 15,000 for writes. AWS and Azure are at 500 max IOPs per volume. Max throughput ranges from Azure are 60 MBps to Google at 180 for read and 120 for write, and AWS at 500 MBps.
As for pricing, it gets a bit complicated (all prices are per GB/month), but for HHD, AWS starts at $0.045, for Google it's $0.04 and Azure is $0.03.
SSD pricing starts at $0.10 in AWS, $0.17 for Google and between $0.12 and 0.14 for Azure, depending on the size of the disk.
In a pricing analysis done by RightScale, the company found that generally the pricing structure means that Azure has the best price/performance ratio for block storage. But, for workloads that require higher IOPs, Google becomes the more cost-effective option.
There are caveats when using provisioned IOPs, says Kim Weins, vice president of marketing at RightScale. In AWS, if you need a guaranteed amount of IOPs, that costs a premium. "You pay a higher cost per GB, but you also pay for the required IOPs on top of it, which drives the cost up higher," Weins says. "Be smart about choosing your provisioned IOPs level because you are going to be paying for it."
Weins adds that RightScale has found some customers pay provisioned IOPs then forgot to deprovision the EBS instance when they are done using it, thus wasting money.
Got a file that you need to put in the cloud? Object storage is the service for you. Again, the cloud providers have different types of storage, classified by how often the customer expects to access it. "Hot" storage is data that needs to be almost instantaneously accessible. "Cool" storage is accessed more infrequently, and "cold" storage is archival material that is rarely accessed. The colder the storage, the less expensive it is.
AWS's primary object storage platform is Simple Storage Service (S3). It offers S3 Infrequent Access for cool storage and Glacier for cold storage. Google has Google Cloud Storage, GCS Nearline for cool storage and GCS Coldline for archival. Azure only has a hot and cool option with Azure Hot and Cool Storage Blobs; customers have to use the cool storage for archival data. AWS and Google each have a 5TB object size limit, while Azure has a 500TB per account limit. AWS and Google each publicize 99.999999999% durability for objects stored in their cloud. That means that if you store 10,000 objects in the cloud, on average one file will be lost every 10 million years, AWS says. The point is these systems are designed to be ultra durable. Azure does not publish durability service level agreements.
Pricing on object storage is slightly more complicated because customers can choose to host their data in a single region, or for a slightly increased cost they can back it up across multiple regions, which is a best-practice to ensure you have access to your data if there is an outage in a region.
In AWS, for example, S3 costs (all prices are in GB/month) $0.023; to replicate data across multiple regions costs twice as much: $0.046, plus a $0.01 per GB transfer fee. AWS's cool storage service, named S3 Infrequent Access (IA) is $0.0125 and its cold storage/archival service Glacier costs $0.004.
Google has the most analogous offerings: It's single-region storage costs $0.02, while multi-region is $0.026, with free transfer of data. The company's cool storage platform named Nearline is $0.01 and the cold/archival product named Coldline is $0.007. Google says data retrieval from Coldline is faster (within milliseconds) than in Glacier, which AWS says could take between minutes and hours.
Azure offers single-region storage for $0.0184, and what it calls "Globally Redundant Storage" for $0.046, but it is read only, which means you cannot write changes to it, doing so costs more money. Azure's cool storage is named Cool Blob Storage is $0.01. Azure does not yet offer a cold or archival storage platform, so customers must use Cool Blob storage for that use case.
Based on these pricing scenarios, Google has the least expensive pure object storage costs, plus the free transfer of data, RightScale found. AWS, however, beats Google on cold storage costs.
An emerging use case is the use of a cloud-based file storage system. Think of this as a cloud-based version of a more traditional Network File System (NFS): Users can mount files to the system from any device or VM connected to it, then read and retrieve files. This is a relatively nascent cloud storage use case and therefore offerings are not yet as full featured compared to block and object storage, Adler says.
AWS's offering in this category is named Elastic File Storage, which emerged from beta in June 2016. It allows users to mount files from AWS Elastic Compute Cloud (EC2) virtual machines, or from on-premises services using AWS Direct Connect or a virtual private connection (VPC). There is no size limit, so it scales automatically based on need and offers a 50 MB per second throughput per TB of storage; customers can pay for up to 100MBps throughput. It starts at $0.30/GB/month.
Azure, meanwhile offers Azure File Storage, which is similar in nature but has a capacity of 5TB per file and 500TB per account and it requires manual scaling. It offers a 60MBps throughput for reading files.
Google does not have a native file storage offering, but instead offers the open source FUSE adapter, which allows users to mount files from Google Cloud Storage buckets and converts them into a file system. Google claims this provides the highest throughput of the three providers with 180MBps on reads and 120MBps on writes. But, Adler said in his experience the FUSE adapter is not as well integrated into Google's cloud platform compared to the other two offerings, leading to potentially frustrating user experiences with it. Adler also notes that AWS's EFS does not have a native backup solution, while Azure does. AWS encourages EFS users to rely on third-party backup tools at this point.
Azure and Google offer lower prices for their file storage systems compared to AWS: Azure is $0.80 per GB/month, and Google is $0.20, but Adler says those costs do not take into account any replication or transfer charges. While AWS's base price may seem higher, when taking into account all that it factors in related to scaling, it could be a wash between the three providers.