The Short Answer: Compare the Complete Bill, Not the Sticker Price

Cross-cloud object storage pricing should be compared on the total cost of storing, retrieving, moving, governing, and protecting data across Amazon S3, Google Cloud Storage, Azure Blob Storage, and lower-cost S3-compatible providers. The advertised rate per terabyte is only one line item, and it can be a poor predictor of the final bill when data is accessed frequently, transferred out of a cloud, scanned repeatedly, or stored in premium storage classes. Platform teams should model at least 12 months of expected requests, egress, retrieval, replication, metadata operations, support, and compliance work. A low storage rate can still produce an expensive architecture if a service continuously reads a small dataset from an expensive class. Conversely, archive pricing may be economically attractive for data that must remain online but is rarely read. As of 30 September 2026, pricing should be captured in a dated spreadsheet or configuration repository because rates, regional premiums, and promotional conditions can change.

Also worth reading: How Do You Make S3-Compatible Object Storage Portable Across Clouds? · How Do You Validate an S3 Object-Storage Migration Before Cutover? · Cloudflare R2 vs Amazon S3 vs Backblaze B2: Which Is Cheapest for B2B Object Storage in 2026?

The most useful comparison unit is not simply “price per TB-month.” It is the effective monthly cost per workload, divided by the amount of data retained and the number of business-relevant operations performed on that data. Teams should distinguish logical data from physical replicas, because cross-cloud redundancy may double storage consumption immediately. They should also distinguish internet egress, private backbone transfer, same-region traffic, and cross-region transfer, since these can carry very different charges. The correct provider is usually the one that meets latency, availability, residency, retention, and security requirements at the lowest modeled total cost. No universal S3-versus-Google-versus-Azure winner exists without those workload details.

What Actually Determines Cross-Cloud Object Storage Pricing?

The first pricing component is the amount of data at rest, measured in GB-month or TB-month rather than as a one-time purchase. Rates normally differ by region, storage class, redundancy model, and commitment mechanism. Standard object storage is optimized for frequent access, while colder classes trade retrieval latency, minimum storage duration, or early-deletion penalties for lower rates. Google Cloud Storage publicly describes four storage classes with the same throughput and latency model, but the class and operation mix still affect the bill. Teams must confirm the current regional price rather than assuming a global list price applies. Storage consumed by versioning, object locks, snapshots, temporary migration copies, and cross-region replicas should be included.

The second component is requests. GET, LIST, PUT, COPY, DELETE, and data-management operations can each have different unit prices, and a small object can generate a surprisingly large request bill. A workload processing 50 million 4 KB objects monthly is not comparable to one reading one 200 GB object for the same volume of bytes. Batch jobs that issue many small writes, container registries, analytics pipelines, and metadata-heavy applications can be request-sensitive. Erasure coding or aggregation may reduce costs, but it can also change application behavior, durability guarantees, and recovery procedures. Pricing models should therefore use real request counts where possible rather than generic bandwidth assumptions.

The third component is data movement. Egress is often the largest surprise for applications built around a multi-cloud data plane. Transfers from object storage to the internet, another cloud region, or a different provider can be billed differently from internal service traffic. AWS documentation on distributed rclone migration to Amazon S3 illustrates that migration itself is not the end of cost analysis; placement, concurrency, verification, and ongoing transfer can all affect expense and duration. Teams should include a one-time migration allowance and a recurring egress forecast. Replication to a second cloud is not “free redundancy”; it ordinarily creates another storage bill plus PUT or replication charges.

Typical Price Structures and Planning Assumptions

Major hyperscalers generally charge separately for storage, requests, and data transfer, while lower-cost providers often emphasize low per-TB storage and may restrict the regions, services, or transfer patterns available to customers. A 2026 secondary comparison of Backblaze B2, Wasabi, and Amazon S3 reported a $6.95 per TB reference point, but that number should not be treated as a universal market price or a direct apples-to-apples quote. The comparison’s date, region, billing unit, storage class, and included transfer conditions matter. “$6.95 per TB” may refer to a particular capacity tier or a monthly unit, while enterprise storage, API operations, and egress can add material cost.

Reserved-capacity or committed-use discounts can improve predictability in stable workloads, but they also introduce commitment risk. A three-year commitment for data that will be deleted after a project ends may be more expensive than paying standard rates for a short retention period. Teams should compare the break-even point: for example, the month in which committed monthly savings exceed the remaining commitment value. They should also price the exit scenario, because early cancellation, minimum-duration, and overage terms vary. Archive minimum durations should be modeled in days, with a penalty applied when deletion or transition occurs earlier.

Cost or capabilityAmazon S3Google Cloud StorageLower-cost S3-compatible service
Typical pricing basisGB-month by class, requests, transfer, and featuresGB-month by class, operations, processing, and transferOften capacity-based, with provider-specific API and transfer limits
Premium useFrequent access and low-latency application dataGeneral-purpose and application dataBest when standard object semantics and supported regions are sufficient
Cold dataInfrequent Access, Glacier, and Intelligent-Tiering classesNearline, Coldline, and Archive classesArchive tiers where offered, with different minimum-duration rules
Main comparison riskComplex class and request mix can obscure the effective rateProcessing and retrieval charges can be missedFeature gaps or transfer restrictions can increase engineering cost
Cross-cloud migrationMature tooling exists, including rclone-based workflowsNative transfer and third-party tools are availableCompatible APIs may simplify movement, but compatibility is not always complete
This table is a planning framework, not a current rate card. Exact prices for 30 September 2026 should be obtained from each provider’s official calculator or contract quotation in the intended region. A valid business case should record the region, currency, tax treatment, commitment term, storage class, request profile, and egress destination beside every input.

How to Build a Fair Pricing Model

Start with a data inventory rather than a provider search. Record the current object count, average object size, growth rate, retention schedule, access temperature, latency target, and geographic distribution. Separate data that is written once and read occasionally from data consumed by active services. Measure monthly GET, LIST, PUT, and COPY counts, and identify tools that may amplify requests, including malware scanners, catalog rebuilds, backup agents, and analytics engines. For each dataset, assign a storage class candidate and a retention duration. A model using 1 PB at 2% monthly growth is materially different from one using 1 PB flat, even if the initial storage rate is identical.

Next, model at least four traffic patterns. The first is steady growth with low churn; the second is frequent access to a small working set; the third is large one-time migration followed by low activity; and the fourth is disaster-recovery replication with regular test reads. For each pattern, calculate storage, operations, retrieval, transfer, replication, and management costs separately. Include both ordinary and failure scenarios, such as restoring a dataset from cold storage or moving a large corpus between regions. This prevents a cheap normal-month forecast from hiding an expensive recovery event.

Use conservative rates and sensitivity ranges rather than one optimistic number. If egress is uncertain, test three cases: zero egress, a baseline equal to a measured monthly transfer volume, and a higher case for seasonal spikes. For request-heavy workloads, vary object size and count together. Track the date of the quote and the assumptions in version control. Revisit the model when a provider changes prices, when traffic doubles, or when a new region is added. The model should produce a total monthly cost, a cost per TB retained, and a cost per million business transactions.

Practical Migration and Operating Steps

Begin with a small representative pilot, not the entire production corpus. Select several datasets that differ in object size, request rate, retention, and sensitivity. Measure transfer throughput, checksum results, API errors, request counts, and the provider bill after the first billing cycle. A migration that is fast in a lab can become slow when source throttling, small objects, cross-account policies, or egress limits are introduced. Distributed rclone workflows can improve throughput for S3 destinations, but concurrency should be tuned deliberately rather than increased without observing errors and cost.

During the pilot, verify identity, encryption, object metadata, lifecycle rules, versioning, retention, and legal holds. Confirm that the application can tolerate the provider’s consistency and retry behavior, and document any nonstandard S3 API features used by the workload. Run a restore test from the destination and compare checksums or object counts with the source. Set budgets and anomaly alerts at the account, bucket, and project levels, and require approval for policies that replicate or expose large datasets. These steps matter because a storage bill can be only one part of the cost: failed migrations, duplicated datasets, and unplanned restores can dominate the business case.

After validation, migrate in waves ordered by business value and technical risk. Keep a rollback path until the application owner confirms data integrity and steady-state costs. For active systems, use dual reads or a controlled cutover where outage tolerance is limited. For bulk movement, measure actual elapsed time and transfer charges rather than estimating from nominal bandwidth. Finally, reconcile the first post-migration invoice against the model. Differences often reveal overlooked LIST calls, early archive deletion, inter-region replication, or storage consumed by temporary objects.

Common Mistakes in Cross-Cloud Cost Comparisons

The most common mistake is comparing a discounted provider’s headline capacity rate with a hyperscaler’s premium storage rate without matching service terms. Another is ignoring the cost of small-object requests, which can make a low storage rate irrelevant for an object-heavy application. Teams also underestimate egress by assuming that internal cloud traffic is always free or that a migration tool eliminates transfer charges. A third error is comparing only nominal capacity and omitting backup, replication, snapshots, logs, metadata indexes, and failed partial uploads.

There is a parallel risk of overengineering. Some teams add a second cloud for every workload even when their data rarely leaves one region, while others select an archive class for data that must be restored within minutes. Multi-cloud portability can improve negotiating leverage and reduce dependence on one provider, but it can also create duplicated control planes, inconsistent IAM, more expensive recovery paths, and additional operational training. A credible comparison should quantify these labor and complexity costs where possible, even if they are represented as internal engineering hours rather than vendor invoices. Price realism is more valuable than a falsely precise total.

When Platform Teams Should Act or Reconsider the Design

Reprice at least quarterly for dynamic workloads and before every major contract renewal, migration, or storage-class transition. A practical trigger is a monthly bill that exceeds the approved budget by 10%, sustained growth above 20% quarter over quarter, or a workload whose request and transfer costs exceed storage costs. Those are operating thresholds rather than universal rules, but they give teams a timely signal to inspect object counts, lifecycle policies, replication, and retrieval patterns. A provider change should also be reconsidered when a new region, compliance requirement, or disaster-recovery target materially changes the assumptions.

Do not switch solely because a competitor advertises a lower per-TB rate. First run a reversible pilot and test the full cost model for 30, 90, and 365 days. Verify support quality, API compatibility, security controls, region availability, and exit terms. If the workload is stable, compare a committed tier against standard pricing; if it is temporary or highly unpredictable, emphasize flexibility and measured egress. The best architecture is often a portfolio: premium storage for active objects, lower-cost storage for cold data, lifecycle automation, and selective cross-cloud replication for the data that genuinely requires it.

The Decision Framework for a 2026 Platform Team

A defensible decision begins with a written workload profile, a provider-neutral cost model, and a small production-like test. The team should present storage, requests, transfer, retrieval, replication, labor, and risk in separate categories so that executives can see what is a vendor charge and what is an internal cost. The final recommendation should identify the winning option under normal traffic, peak traffic, and recovery conditions, along with the assumptions that would reverse the result. In practical terms, a 1 PB archive with almost no reads may favor the lowest compliant storage tier, while a high-frequency analytics workload may favor lower request and processing costs even at a higher per-TB rate.

Cross-cloud object storage pricing is therefore a workload engineering question rather than a shopping exercise. AWS, Google Cloud, Azure, and compatible providers can all be reasonable choices, but the cheapest headline number can conceal transfer, API, retrieval, or commitment exposure. As of 30 September 2026, use current official calculators and signed quotations, document every assumption, and refresh the comparison as data and traffic change. That process gives platform teams a more reliable answer than any single marketing rate and preserves flexibility if the data plane evolves.