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.
Google Cloud Storage Pricing Breakdown
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:
GCS Storage Cost
GCS Storage Class | Cost per GB |
---|---|
Standard Storage | $0.020 |
Nearline Storage | $0.010 |
Coldline Storage | $0.004 |
Archive Storage | $0.0012 |
GCS Operation Cost
GCS Storage Class | Cost per 1,000 Class A (e.g., PUT, POST) Operations | Cost per 1,000 Class B (e.g., GET) Operations |
---|---|---|
Standard Storage | $0.0050 | $0.0040 |
Nearline Storage | $0.0100 | $0.0010 |
Coldline Storage | $0.0200 | $0.0100 |
Archive Storage | $0.0500 | $0.0500 |
GCS Data Transfer Cost
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).
GCS Monthly Usage per TB | Cost per GB |
---|---|
0-1 | $0.12 |
1-10 | $0.11 |
10+ | $0.08 |
Also note—if you decide to use network services, such as VPC peering or Cloud Interconnect, they are billed separately based on the service.
Cloudflare R2 Pricing Breakdown
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:
R2 Storage Cost
R2 Storage Class | Cost per GB |
---|---|
Standard Storage | $0.015 |
Infrequent Access Storage | $0.01 |
R2 Operation Cost
R2 Storage Class | Cost per 1,000 Class A (e.g., PUT, POST) Operations | Cost per 1,000 Class B (e.g., GET) Operations | Data Retrieval per GB |
---|---|---|---|
Standard Storage | $0.0045 | $0.00036 | N/A |
Infrequent Access Storage | $0.009 | $0.0009 | $0.01 |
GCS vs R2 Free Tiers
Both GCS and R2 offer fairly generous free tiers. Listed below:
Dimension | Monthly Free Usage |
---|---|
Standard Storage | 5 GB |
Class A Operations | 5,000 |
Class B Operations | 50,000 |
Data transfer | 100 GB from North America to Google Cloud regions (except Australia and China) |
Dimension | Monthly Free Usage |
---|---|
Standard storage | 10 GB |
Class A Operations | 1 million requests |
Class B Operations | 10 million requests |
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.
Example Scenarios R2 vs GCS
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.
Scenario 1: Frequently Accessed Data with High Egress
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.
GCS Price Calculations
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
R2 Price Calculations
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.
Scenario 2: Archiving Large Volumes of Data
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.
GCS Price Calculations
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
R2 Price Calculations
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.
Conclusion
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.
Monitor your Google Cloud costs.