Easily build complex reports
Monitoring and efficiency metrics
Custom cost allocation tags
Network cost visibility
Organizational cost hierarchies
Budgeting and budget alerts
Discover active resources
Consumption-based insights
Alerts for unexpected charges
Automated AWS cost savings
Discover cost savings
Unified view of AWS discounts
COGS and business metrics
Model savings plans
Collaborate on cost initiatives
Create and manage your teams
Automate cloud infrastructure
Cloud cost issue tracking
Detect cost spikes
by Emily Dunenfeld
Contents
Google Cloud Storage (GCS) ranks as the #2 service in our customers’ Google Cloud spend, accounting for 13% of costs. It is convenient because it easily fits into your Google Cloud environment, however, services like Cloudflare R2 can be much cheaper while still integrating seamlessly into your architecture. R2, designed as a competitor to Amazon S3, with S3 compatible APIs, stands out with its free egress model, making it particularly cost-effective for workloads with high outbound data. Recently, Cloudflare expanded its migration capabilities to include GCS, making it a good time to go over when it makes sense to migrate or choose R2 for your storage needs.
GCS has four storage classes designed for different data access patterns: Standard, for frequently accessed data, and Nearline, Coldline, and Archive for progressively less frequently accessed data at lower storage costs but higher operation costs. It also has a wide range of features, some of which come with additional charges, including automatic object lifecycle management, dual-region buckets for high availability, and advanced security configurations.
The pricing dimensions are data storage (which varies based on region and storage class), operations pricing (which depends on the type of API requests and storage class), and network usage (both within Google Cloud and when transferring data out of Google Cloud).
For the us-east1 region, the pricing breakdown is as follows:
Cost to store data in Google Cloud Storage
Cost to make API requests to Google Cloud Storage
For data transfer within Google Cloud, you are charged based on your bucket location and destination location. For example, transfers between regions in North America cost $0.02 per GB, which is the lowest price point (though you are not charged for data transferred within Google within the same region). The highest rate is a staggering $0.14 per GB, and an example of that would be data transferred from North America to Latin America.
Data egress to external destinations, such as the internet, and other general network usage, is tiered at the following rates (note—China and Australia have higher rates).
Cost to transfer data out of Google Cloud Storage
Also note—if you decide to use network services, such as VPC peering or Cloud Interconnect, they are billed separately based on the service.
R2 is newer than GCS, however, it is growing quickly and has a solid set of features, such as undiscoverable bucket names and event notifications. A big stride in growth was the recent beta of the Infrequent Access storage class, which similar to GCS’s Nearline storage, is intended for lower access patterns at a lower storage cost, with the tradeoff of higher cost per operation and a retrieval fee.
R2’s standout differentiator is its lack of egress fees—there are no costs for data transfer out, regardless of destination or volume, making it highly cost-effective for workloads with large amounts of data transfer.
Another difference between GCS and R2 is that R2’s pricing is globally uniform, meaning you pay the same rate regardless of where your data is stored or accessed from. This can yield massive savings compared to GCS if your data is located in a more expensive region.
Pricing for all regions is as follows:
Cost to store data for Cloudflare R2
Cost to make API requests for Cloudflare R2
Both GCS and R2 offer fairly generous free tiers. Listed below:
GCS free tier aggregated across us-west1, us-central1, and us-east1 regions
R2 free tier
While both are generous, R2 takes the cake with double the amount of free storage per month, 200 times the amount of Class A and B operations, and, of course, no egress fees.
It may already be clear when R2 will be cheaper than GCS and vice versa. For Standard storage, R2 is always less expensive. Storage costs $0.005 less per GB, Class A operations are $0.0005 less, and Class B operations are $0.00364 less. R2 also has a significant advantage when it comes to large amounts of egress, as there are no egress fees at all, unlike GCS.
When comparing GCS’s Nearline to R2’s Infrequent Access, the two services are priced similarly, with differences in operational and retrieval costs. While R2 also offers a more generous free tier, GCS has storage class options where the cost per GB can be much lower than R2, particularly for infrequently accessed data. Additionally, GCS has a wider range of features and native integration within the Google Cloud ecosystem, making it appealing for users already embedded in Google Cloud.
The following pricing scenarios aim to illustrate these differences. To keep the comparison simple, we’ll ignore the free tier, assuming those quotas have already been used elsewhere within the applications.
A medium-sized application with frequent access patterns stores 10TB of data. In a month, they make about 3,500,000 Class A operations (e.g., PUT and POST) and 6,500,000 Class B (e.g., GET) operations.
Standard Storage 10TB = 10,000GB 10,000GB x $0.020/GB = $200 Operations 3,500,000 Class A Operations x $0.0050/1000 = $17.50 6,500,000 Class B Operations x $0.0040/1000 = $26 $17.50 Class A Operations + $26 Class B Operations = $43.50 Total $200 Standard storage + $43.50 Operations = $243.50
Standard Storage 10TB = 10,000GB 10,000GB x $0.015/GB = $150 Operations 3,500,000 Class A Operations x $0.00450/1000 = $15.75 6,500,000 Class B Operations x $0.00036/1000 = $2.34 $15.75 Class A Operations + $2.34 Class B Operations = $18.09 Total $150 Standard storage + $18.09 Operations + = $168.09
For storage and operation costs, R2 is $168.09 compared to $243.50 for GCS (and that’s in the least expensive GCS region), indicating storage costs for R2 will always be less than GCS while in the Standard storage tier.
We also haven’t even gotten to egress costs yet. A public-facing application of this size can expect around 1TB of data transferred monthly to the internet. The cost for GCS is:
1TB=1,000GB
1,000GB x $0.12/GB = $120
There are no egress costs for R2, so the cost remains $168.09 for R2 and grows to $363.5 for GCS.
A large company stores a vast archive of approximately 50TB of documents that are rarely accessed. GCS has the Archive storage class tailored specifically for this use case.
R2 currently offers only a beta version of its Infrequent Access storage class. While this class is designed for less frequent access, it is not intended for archival storage and, therefore, does not provide the same level of cost efficiency for long-term archival as GCS’s Archive storage class.
There are about 500,000 Class B Operations (GET requests) and 500 GB of data retrieved per month.
Archive Storage 50TB = 50,000GB 50,000GB x $0.0012/GB = $60 Operations 500,000 Class B Operations x $0.0500/1000 = $25 Total $60 Archive storage + $25 Operations + = $85
Infrequent Access Storage 50TB = 50,000GB 50,000GB x $0.01/GB = $500 Operations 500,000 Class B Operations x $0.0009/1000 = $0.45 Retrieval 500GB x $0.01/GB = $5 Total $500 Infrequent Access storage + $0.45 Operations + $5 Retrieval = $505.45
At $85 for GCS compared to $505.45 for R2, GCS is much cheaper for archival use cases.
R2 is the cost-effective choice in many scenarios, especially applications with large amounts of egress data. When comparing use cases with frequently accessed data using two Standard storage classes, R2 will always be less expensive. On the other hand, GCS provides cost-saving opportunities for infrequently accessed and archival data due to more options for storage classes. GCS also has more advanced features for users deeply embedded in Google’s platform.
MongoDB Atlas is the cost-effective choice for production workloads where high-availability is a requirement.
Grafana is a strong competitor to the monitoring and observability features of Datadog for a fraction of the price.
AWS is implementing a policy update that will no longer allow Reserved Instances and Savings Plans to be shared across end customers.