Cloud & infrastructure

Object Storage Pricing: S3 vs Azure Blob vs Google Cloud Storage Explained

Understand how Amazon S3, Azure Blob Storage and Google Cloud Storage charge for capacity, tiers, requests, retrieval and egress, with a method to estimate your own bill.

By EpiFive Editorial TeamReviewed/updated 10 min readHow we check articles
On this page

All three clouds charge for object storage in the same basic way: a monthly rate per gigabyte that depends on the tier, plus charges for requests, retrieval from colder tiers, early deletion, tier changes and data leaving the cloud. The cheapest tier per gigabyte is often the most expensive one to read from, so the right choice depends on how often you access the data. This guide explains how Amazon S3, Azure Blob Storage and Google Cloud Storage structure those charges, where they differ, and how to estimate a bill without relying on rates that change.

It is written for administrators, developers and small-business owners who store backups, files or application data in the cloud and want to compare the models before choosing or moving data. You will finish with a tier comparison, the minimum-duration rules that cause surprise charges, an egress checklist and a worksheet you can fill in with current rates. Documentation was checked on 28 October 2026. Dollar rates vary by region and change over time, so this article describes the structure and points to the pricing pages for the numbers.

The six cost components

Whichever cloud you use, a bill is the sum of these parts:

  1. Capacity. Gigabytes stored per month, priced by tier, region and redundancy.
  2. Requests (operations). Charges per thousand or per ten thousand operations such as writes, reads and listings. Azure bills per 10,000 operations; AWS's pricing page quotes GET requests per 1,000.
  3. Data retrieval. A per-gigabyte fee for reading from colder tiers.
  4. Early deletion and minimum duration. If you delete or move data before a tier's minimum period, you pay for the remainder.
  5. Tier changes and management. Lifecycle transitions are billed as operations. Automatic tiering features may add a monitoring fee.
  6. Outbound data transfer (egress). Data leaving the provider's network or region.

A large share of unexpected bills come from items 3 to 6 rather than capacity.

Tier comparison

Access patternAmazon S3Azure Blob StorageGoogle Cloud Storage
Frequent accessS3 Standard (default)Hot (default for new general-purpose v2 accounts)Standard (default)
Infrequent, immediate accessS3 Standard-IA, S3 One Zone-IACool, ColdNearline, Coldline
Archive with immediate accessS3 Glacier Instant RetrievalNot offered as a separate tierArchive (available within milliseconds)
Archive, retrieval in minutes to hoursS3 Glacier Flexible Retrieval, Deep ArchiveArchive (offline; up to 15 hours to rehydrate)Not applicable
Automatic tieringS3 Intelligent-TieringSmart tierAutoclass
Low-latency special casesS3 Express One ZonePremiumRapid storage (zonal buckets)

Minimum storage durations

TierMinimum duration
S3 Standard-IA, S3 One Zone-IA30 days
S3 Glacier Instant Retrieval, Flexible Retrieval90 days
S3 Glacier Deep Archive180 days
Azure Cool30 days (general-purpose v2 accounts)
Azure Cold90 days
Azure Archive180 days
Google Nearline30 days
Google Coldline90 days
Google Archive365 days

The penalty is prorated. Azure's documentation gives an example: a blob moved to cool and deleted after 21 days is charged an early deletion fee equal to 9 days of cool storage. AWS states that objects deleted, overwritten or transitioned before 30 days from Standard-IA incur the normal storage charge plus a prorated charge for the remainder of the minimum.

S3 Standard-IA, One Zone-IA and Glacier Instant Retrieval also have a 128 KB minimum billable object size, so many tiny objects in those classes cost more than their size suggests.

Amazon S3 details

S3 stores each object in a storage class, with S3 Standard used if you do not choose one. The user guide lists these classes: Standard, Express One Zone, Intelligent-Tiering, Standard-IA, One Zone-IA, Glacier Instant Retrieval, Glacier Flexible Retrieval and Glacier Deep Archive.

Points that affect cost:

  • Retrieval fees. Standard-IA, One Zone-IA and Glacier Instant Retrieval charge per-GB retrieval fees. Glacier Flexible Retrieval and Deep Archive include retrieval charges when you restore archived objects, which you must do before reading them.
  • Intelligent-Tiering. It has no retrieval fees but charges a small monthly per-object monitoring and automation fee. Objects under 128 KB are not monitored and stay in the Frequent Access tier. It moves objects not accessed for 30 consecutive days to Infrequent Access, and after 90 consecutive days to Archive Instant Access; optional Archive Access and Deep Archive Access tiers require restore requests.
  • One Zone classes. S3 One Zone-IA stores data in a single Availability Zone, so it is not resilient to losing that zone.
  • Data transfer. The pricing page says the first 100 GB per month of data transfer out to the internet is free, aggregated across AWS services and Regions (excluding China and GovCloud). Data in from the internet, transfers between buckets in the same Region and transfers to AWS services in the same Region are free.
  • Free plan. New AWS accounts on the free plan have separate credit-based terms; see AWS vs Azure vs Google Cloud Free Tier: What You Actually Get.

Azure Blob Storage details

Azure's access tiers are hot, cool, cold and archive, plus a smart tier that moves data between hot, cool and cold based on usage. Points that affect cost:

  • Capacity and access trade-off. Per-GB capacity cost falls as the tier gets cooler, while access and transaction charges rise.
  • Data retrieval. The pricing page states retrieval is free for hot and premium and charged for cool, cold and archive.
  • Operations. Write, read, list and other operations are billed per 10,000.
  • Archive is offline. A blob in archive cannot be read or modified until rehydrated to hot, cool or cold, which can take up to 15 hours depending on the priority. Only accounts configured for LRS, GRS or RA-GRS support archive; ZRS, GZRS and RA-GZRS accounts do not.
  • Tier changes. Moving to a cooler tier is billed as a write operation to the destination tier. Moving to a warmer tier is billed as a read from the source tier, including read operations and retrieval charges, and early deletion charges may apply. If you toggle a general-purpose v2 account's default tier, you pay write operations for blobs with inferred tiers when moving cooler and read plus retrieval when moving warmer.
  • Copy to avoid a penalty. Copy Blob can avoid the early deletion penalty when moving from cool or cold to hot, but you pay capacity for both blobs until the source is removed.
  • Redundancy. Redundancy choices (LRS, ZRS, GRS, RA-GRS, GZRS, RA-GZRS) change the capacity price. For the options, see Azure Storage Redundancy: LRS vs ZRS vs GRS Explained.
  • Egress. Outbound data transfer from an Azure region is billed per GB on the bandwidth pricing page, and geo-replication data transfer adds a charge for GRS, RA-GRS and GZRS.

Google Cloud Storage details

Cloud Storage has four storage classes: Standard, Nearline, Coldline and Archive. If you do not specify a class when creating a bucket, it defaults to Standard. Points that affect cost:

  • Retrieval fees apply to Nearline, Coldline and Archive; Standard has none.
  • No offline tier. Archive data is available within milliseconds, not hours or days, but carries a 365-day minimum.
  • Location types. Region, dual-region and multi-region buckets are priced differently; the pricing page is organised by location.
  • Autoclass. Lets Cloud Storage transition objects between classes automatically, with its own management pricing described on the pricing page.
  • Changing classes. Changing a bucket's default class does not affect existing objects; you rewrite objects or use Object Lifecycle Management.
  • Free tier. The free tier includes 5 GB-months of regional storage in US regions and 100 GB of outbound transfer from North America each month.

Egress: the cost people forget

Egress is the most common source of surprises, and it is easy to trigger accidentally:

  • Serving public files directly from a bucket to many users.
  • Pulling a large dataset to an on-premises system or another cloud.
  • Moving data between regions for analysis or replication.
  • Restoring a large backup.

Before you commit, estimate monthly outbound gigabytes and look up the rate on each provider's data transfer or bandwidth pricing page. Note the free allowances: AWS gives the first 100 GB per month out to the internet, and Google's free tier lists 100 GB of outbound transfer from North America for Cloud Storage. Check whether a content delivery network in front of storage changes the economics for public content. Also remember that migrating away later involves egress for the entire dataset.

Worksheet: estimate your own bill

Fill in the quantities, then multiply by the current rate from each provider's pricing calculator for your region.

LineQuantity to estimateRate source
Capacity per tierGB-months in each tierProvider pricing page
Write operationsCount per monthPer 1,000 (AWS) or per 10,000 (Azure) operations
Read operationsCount per monthSame
RetrievalGB read from cold tiersPer-GB retrieval rate
Early deletionGB removed before the minimum periodProrated remaining days of the tier's capacity rate
Tier transitionsObjects moved by lifecycle rulesOperation rate
EgressGB out to the internet or another regionBandwidth pricing page
RedundancyLRS, ZRS, GRS and so onPricing by redundancy

Run the worksheet for at least two scenarios: a typical month and a busy month (a restore, a migration or a traffic spike). The busy month usually shows which tier choices are risky.

Choosing a tier: practical rules

  • If you do not know the access pattern, use the provider's automatic tiering (S3 Intelligent-Tiering, Azure smart tier or Google Autoclass), and read the fee model first. On S3, remember the per-object monitoring fee and the 128 KB rule.
  • Use a lifecycle policy to move aging data to cooler tiers, and to expire data at the end of its life, rather than moving files by hand.
  • Keep short-lived data out of tiers with 90 to 365 day minimums.
  • For backups you might need to restore urgently, avoid offline or restore-first tiers (Azure archive, S3 Glacier Flexible Retrieval and Deep Archive) or accept the wait.
  • Prefer the default and simplest tier until you have measured access patterns.

Pre-decision checklist

  • List data sets, sizes, growth and how often each is read.
  • Check minimum durations against how long you will keep each data set.
  • Estimate egress, including restore scenarios.
  • Look up current regional rates in each pricing calculator.
  • Set a budget alert before loading data.
  • Test a lifecycle rule on a small container or bucket.

References

Questions people ask

What costs apply to cloud object storage besides gigabytes stored?

Besides capacity, you pay for requests (operations), data retrieval on colder tiers, early deletion if you remove data before a tier's minimum duration, tier changes, replication or redundancy choices, and outbound data transfer (egress). Colder tiers have lower capacity prices but higher access costs.

What are the minimum storage durations for archive tiers?

Amazon S3 Standard-IA and One Zone-IA are 30 days, Glacier Instant and Flexible Retrieval are 90 days and Deep Archive is 180 days. Azure recommends 30 days for cool, 90 for cold and 180 for archive. Google Cloud Storage uses 30 days for Nearline, 90 for Coldline and 365 for Archive.

Is data transfer into cloud storage free?

AWS states that data transferred in from the internet is free, as are transfers between buckets in the same Region. Outbound transfer to the internet is charged beyond the free allowance, which for AWS is the first 100 GB a month aggregated across services. Check each provider's bandwidth pricing page for current rates.

How do I get exact prices for my region?

Use each provider's pricing calculator or pricing page for your region and redundancy option, because rates differ by region, tier and redundancy. This article explains the structure of the charges rather than quoting rates that change.

Amazon S3Azure Blob StorageGoogle Cloud StorageEgress
  1. Amazon S3 for Azure admins: secure buckets with IAM and bucket policies

    Map Amazon S3 buckets, IAM policies, bucket policies, Block Public Access and presigned URLs to Azure Blob Storage, Azure RBAC and SAS, then build a locked down bucket with the AWS CLI.

  2. AWS EC2 Pricing Explained: On-Demand, Savings Plans, Reserved and Spot

    Compare the EC2 purchasing options in USD terms: On-Demand, Savings Plans, Reserved Instances and Spot. Learn when each fits and how to estimate cost with the AWS Pricing Calculator.

  3. Azure Reservations vs Savings Plan for Compute: Which Saves More

    Compare Azure reserved instances with a compute savings plan for steady workloads, including discounts, flexibility, exchange and refund rules, and how the two apply together.

  4. Statuszen: Free, Self-Hosted Uptime Monitoring and Status Pages (Open Source)

    Statuszen is an MIT-licensed uptime monitor, public status page and cron job monitor you run on your own server. What it does, how to install it and how heartbeat monitoring works.

  5. AWS Budgets and Billing Alerts: Set Them Up Before a Surprise Bill

    Set up AWS Budgets, Free Tier usage alerts and a CloudWatch billing alarm on a new AWS account, and learn what each one does, its delays, and why alerts do not stop spending.

  6. Azure Storage SAS Tokens: User Delegation SAS vs Account Keys

    Share Azure blobs through expiring links without handing out account keys. Compare the three SAS types, create a user delegation SAS with the Azure CLI and revoke it.