Direct answer: using verifiable official prices retrieved on 8 November 2026 (AWS us-east-1 / Azure eastus / Google Cloud public prices, USD, pay-as-you-go, excluding tax and discounts), container image registry storage is broadly USD 0.10/GB-month: AWS ECR Standard 0.10/GB-month; Google Artifact Registry 0.10/GiB-month (0.5GiB free); Azure ACR adds a daily fee — Basic 0.1666/day (10GB included), Standard 0.6666/day (100GB), Premium 1.6666/day (500GB), with additional storage at 0.10/GB-month. At 100GB: AWS about USD 10/month, GCP about 9.31, Azure Basic about 14; at 1TB: AWS about 100, GCP about 93.13, Azure Premium about 100; at 10TB: AWS about 1,000, GCP about 931.32, Azure Premium about 1,000. At scale the three converge; the differences are mainly the daily fee/included quota, cross-region replication, scanning and egress.

This guide is for DevOps, platform engineering, FinOps and procurement teams comparing AWS ECR, Azure Container Registry (ACR) and Google Artifact Registry storage/TCO, with 100GB/1TB/10TB estimates and an optimisation checklist. Prices come from the AWS ECR pricing page, the Azure Container Registry pricing page and Azure Retail Prices API (serviceName=Container Registry, eastus) and the Google Artifact Registry pricing page (all accessed 8 November 2026). Official price facts, editorial calculations and excluded items are kept separate.

Three rules to remember

(1) A registry is not "just per GB": Azure ACR has a daily fee + included quota, while AWS/GCP are mainly per GB/GiB; at small volumes Azure's daily fee weighs more. (2) Storage is around 0.10 at all three; the real differences are cross-region replication, egress, scanning and build minutes. (3) Deleting untagged/old images usually saves more than switching vendors; fix retention and tag policy first.

Scope: storage, daily fee, included quota, replication and scanning

The billing structures differ: AWS ECR charges GB-month (Standard 0.10/GB-month; Archive is cheaper but has a 90-day minimum storage duration); Google Artifact Registry charges GiB-month (0.10/GiB-month, 0.5GiB free); Azure ACR charges a daily fee + included storage (Basic/Standard/Premium include 10/100/500GB; additional storage 0.10/GB-month), plus geo-replication, connected registry and task vCPU fees. This article converts 1TB = 1,000GB = 931.32GiB for GCP and multiplies Azure daily fees by 30 days.

Billing itemAWS ECRAzure ACRGoogle Artifact Registry
StorageStandard 0.10/GB-month0.10/GB-month (above included quota)0.10/GiB-month
Fixed/daily feeNoneBasic 0.1666/day; Standard 0.6666/day; Premium 1.6666/dayNone
Included storage500MB private (new customers, 1 year); 50GB public free10/100/500GB0.5GiB free
Cross-region replicationCross-region data transfer/replication feesPremium 1.6666/day per replicated regionMulti-regional repository same price; cross-region traffic separate
Scanning/buildInspector/CodeBuild separateDefender/ACR Tasks separateScanning/Cloud Build separate
EgressStandard data transfer ratesStandard networking chargesBased on destination/region

Sources: AWS ECR pricing page, Azure Container Registry pricing page and Azure Retail Prices API (serviceName=Container Registry, eastus), Google Artifact Registry pricing page (accessed 8 November 2026). Rates are retail/pay-as-you-go and exclude tax, discounts, egress, scanning, build and support; the invoice governs.

TCO: 100GB / 1TB / 10TB

At 100GB, 1TB and 10TB: AWS is 0.10/GB-month; GCP is 0.10/GiB-month (1TB = 931.32GiB); Azure is daily fee x 30 plus 0.10/GB-month above the included quota, using the cheapest tier at each volume. The result: at 100GB, AWS 10, GCP 9.31, Azure Basic 14; at 1TB, AWS 100, GCP 93.13, Azure Premium 100; at 10TB, AWS 1,000, GCP 931.32, Azure Premium 1,000. Azure's Basic daily fee (about USD 5/month) makes 100GB more expensive than pure per-GB pricing; at 1TB/10TB, Premium's 500GB included quota plus 0.10/GB is essentially level with AWS.

StorageAWS ECRAzure ACR (best tier)Google Artifact RegistryLower
100GBabout 10.00about 14.00 (Basic)about 9.31GCP
1TBabout 100.00about 100.00 (Premium)about 93.13GCP
10TBabout 1,000.00about 1,000.00 (Premium)about 931.32GCP

Editorial calculation: AWS = GB x 0.10; GCP = GiB x 0.10 (1TB = 931.32GiB); Azure = daily fee x 30 + max(0, GB - included quota) x 0.10 (Basic 10GB/$5, Standard 100GB/$20, Premium 500GB/$50). Excludes egress, replication, scanning, build, tax and discounts; the invoice governs.

Azure tiers: how to choose the daily fee and included quota

Azure ACR's key is the "daily fee + included quota" combination: Basic is about USD 5/month with 10GB; Standard about USD 20/month with 100GB; Premium about USD 50/month with 500GB. At 100GB, Basic (5 + 90 x 0.1 = 14) is cheaper than Standard (20 includes 100GB); at 1TB, Premium (50 + 500 x 0.1 = 100) is level with AWS, while Standard is 20 + 900 x 0.1 = 110; at 10TB, Premium is 50 + 9,500 x 0.1 = 1,000. So: small volumes use Basic, medium volumes compare Standard/Premium, and large volumes benefit from Premium's included quota.

StorageBasic (10GB)Standard (100GB)Premium (500GB)
100GBabout 14.00about 20.00about 50.00
1TBabout 104.00about 110.00about 100.00
10TBabout 1,004.00about 1,010.00about 1,000.00

Editorial calculation: daily fee x 30 + max(0, GB - included quota) x 0.10; Basic $0.1666/day, Standard $0.6666/day, Premium $1.6666/day; excludes replication, egress, scanning, build, tax and discounts. Tiers differ in features (geo-replication, connected registry, throughput), so price alone is not the decision.

Hidden costs: replication, egress, scanning, build and retention

A registry bill is rarely just storage. Cross-region replication/multi-regional repositories add replication and traffic fees; pulling images to another region or the internet incurs egress; vulnerability scanning, image signing and build tasks (ACR Tasks/CodeBuild/Cloud Build) are separate; untagged images, old tags and CI caches keep consuming storage. The most underestimated item is retention: several builds per day with every tag retained can turn 100GB into terabytes within months. Fix retention/cleanup before considering a vendor switch.

Cost itemTriggerControl
Cross-region replicationMulti-region deployment/DRReplicate production images only; compare provider fees
EgressCross-region/internet pullsSame-region pulls; CDN/cache; check egress rates
ScanningVulnerability/enhanced scanningEnable per repository/image; distinguish free/paid
BuildACR Tasks/CodeBuild/Cloud BuildBudget by vCPU/minute; local build/cache
RetentionOld tags, untagged images, CI cacheRetention policy, periodic cleanup
Support/taxEnterprise support, cross-border purchasingTax-inclusive/support-inclusive basis

Editorial synthesis; specific replication/egress/scanning/build rates follow AWS/Azure/GCP official pricing pages and invoices. Tax, discounts and migration costs are not included.

How to choose: by team size, regions, security and ecosystem

Start with four questions: total image volume, whether multi-region is required, whether image scanning/signing is required, and whether you are already tied to a Kubernetes/CI ecosystem. For small teams under 100GB, GCP/ECR's pure per-GB pricing is simpler; if you already use Azure/AKS, ACR Basic's daily fee is acceptable; for multi-region/HA, Premium geo-replication or GCP multi-regional repositories fit better; for strong security, compare ECR Inspector, ACR Defender and GAR scanning coverage/price; if egress/replication dominates, fix topology before switching vendors.

ScenarioPreferCheck first
Small team, up to 100GBECR/GAR (pure per GB) or ACR BasicDaily fee, free quota
AKS/Azure ecosystemACR (Basic/Standard)Included quota, Defender
Multi-region/DRACR Premium or GAR multi-regionalReplication, egress
Strong scanning/signingECR+Inspector / ACR+Defender / GAR scanningCoverage and price
Large volume, cost firstGCP GiB pricing or ACR PremiumUnit, replication, egress

Editorial selection framework, not a vendor recommendation; validate against ecosystem, compliance, security and actual invoices.

90-day optimisation checklist

Use the first 90 days to establish image volume, tag policy, retention, replication/egress and scanning/build. The order is: inventory, cleanup, retention policy, topology/replication, scanning/build, procurement.

PhaseActionOutput
Weeks 1-2Inventory repositories, images, tags, untagged images and monthly storageImage list, bill baseline
Weeks 2-3Delete untagged/expired images; consolidate duplicate tagsCleanup record, savings estimate
Weeks 3-5Set retention policy and CI cache strategyRetention rules, automation
Weeks 5-7Assess multi-region/replication and same-region pullsTopology options, replication cost comparison
Weeks 6-8Check scanning/build cost and coverageScanning plan, build budget
Weeks 8-10Compare 1/3-year TCO and features across providersSelection recommendation, renewal plan
Weeks 10-12Monitor storage/egress/replication alertsDashboard, alert rules

Editorial optimisation advice, not an official template; retention, replication, scanning and compliance follow enterprise standards and vendor documentation.

FAQ

How is a container registry billed?

Usually per GB/GiB-month of storage, plus egress, cross-region replication, scanning and build. AWS ECR Standard is 0.10/GB-month; GCP Artifact Registry 0.10/GiB-month; Azure ACR has a daily fee (Basic 0.1666/day, Standard 0.6666/day, Premium 1.6666/day) + included quota (10/100/500GB) + 0.10/GB-month above it.

What does 100GB cost?

Under the assumptions here: AWS about USD 10/month; GCP about 9.31; Azure Basic about 14 (5 daily fee + 90GB overage). Actual cost varies with free quota, egress, scanning, tax and discounts.

Why does Azure have a daily fee?

ACR charges a daily registry fee and includes storage (Basic 10GB, Standard 100GB, Premium 500GB). At small volumes the daily fee can exceed pure per-GB pricing; at large volumes the included quota dilutes it.

Which is cheaper at 1TB?

Under the assumptions here: AWS about 100, Azure Premium about 100, GCP about 93.13. They are close; GCP is slightly lower because of GiB pricing. Real differences come more from replication, egress, scanning and build.

Are cross-region replication/pulls charged?

Usually yes. Azure Premium geo-replication is 1.6666/day per replicated region; AWS/GCP cross-region data transfer/replication is separate. Keep images in the same region as workloads and replicate only what is necessary.

Is vulnerability scanning charged?

It depends on the provider/feature: AWS ECR basic scanning vs Inspector enhanced scanning, Azure Defender for Containers, GCP Artifact Analysis/scanning all have different pricing. Check coverage (OS packages, language packages, continuous scanning) before comparing prices.

How much can image cleanup save?

It depends on build frequency and tag count. Several builds per day with all tags retained can turn 100GB into terabytes; retention policies, deleting untagged images and consolidating duplicate tags are usually the fastest savings.

How does self-hosted Harbor compare?

Harbor software is free, but you pay for servers, storage, backup, bandwidth, operations and HA; a managed registry's 0.10/GB usually buys managed operations, replication, scanning and ecosystem integration. With very large volumes and an existing Kubernetes/storage team, self-hosting may be cheaper; otherwise managed is simpler.

Research method and limitations

This article separates "official price facts" from "editorial calculations": AWS ECR Standard USD 0.10/GB-month comes from the AWS ECR pricing page; Azure ACR daily fees 0.1666/0.6666/1.6666, included 10/100/500GB and 0.10/GB-month overage come from the Azure Container Registry pricing page and Azure Retail Prices API (serviceName=Container Registry, eastus); GCP Artifact Registry 0.10/GiB-month and 0.5GiB free come from the Google Artifact Registry pricing page (accessed 8 November 2026). TCO, unit conversion and the 90-day list are editorial calculations/advice.

Eight limitations: (1) only public pay-as-you-go prices are used, excluding tax, enterprise/commit discounts and support; (2) egress, cross-region replication, scanning, build and connected registry are not included; (3) the scenario assumes 30 days/month and no free quota except where noted; (4) GCP bills in GiB and this article converts 1TB to 931.32GiB; (5) Azure tiers differ in features, so price alone is not the decision; (6) no pull-performance/availability testing was performed; (7) prices change and should be re-queried after publication; (8) self-hosted Harbor/third-party registries are not covered; this is not procurement, commercial or legal advice.

Sources and basis

Data cut-off 8 November 2026; prices and specifications follow AWS/Azure/GCP official pages/APIs and the invoice; not procurement, commercial or legal advice.

Turn image storage, replication, scanning and egress into a checkable budget

Bring image/repository inventory, storage volume, tag/retention policy, multi-region needs, scanning/build and egress bills; we turn container registry cost into a checkable budget.

Book a container registry cost review