Registry Pricing Models Are Designed to Fuck You

Registry pricing is a dumpster fire - you've got storage, transfer, scanning fees, and a bunch of other charges that add up fast. Nobody tells you about the real costs until your credit card gets hit.

Storage Costs: Not As Simple As They Seem

AWS ECR Logo

AWS ECR looks straightforward - $0.10 per GB monthly with no base fee. Cool, right? Wrong. You'll hit data transfer costs that make storage look cheap. I've seen teams get a $50 storage bill and a $300 transfer bill in the same month.

Azure ACR Logo

Azure Container Registry plays the tiered game. Basic tier gets you 10 GB for $5/month - sounds reasonable until you realize Basic tier is basically useless. Premium tier is $50/month but includes 500 GB and actually works for production. Learned that the hard way when Basic's webhook limits broke our deployments.

Google Artifact Registry gives you 0.5 GB free, then it's $0.10 per GB. The 0.5 GB free is a joke - barely enough for a "hello world" image. Our 500 GB of images costs about $50/month there, which is honest at least.

Data Transfer: The Real Budget Killer

Here's where they get you. AWS data transfer follows their standard egress pricing - $0.09/GB to the internet, plus inter-region costs. We made the mistake of putting ECR in us-east-1 and deploying to eu-west-1. That 2.5GB Docker image costs $0.225 every time it gets pulled. With CI/CD pulling it 40 times daily across regions, that's $270/month just in transfer costs for ONE image.

Google's transfer costs range from $0.01 to $0.08 per GB depending on distance. Sounds cheap until you realize your CI/CD pipeline pulls the same images 50 times a day across regions. That $0.01 becomes real money.

Docker Hub pulled a fast one in 2024. Pricing went up 67% - Pro is now $9/month and Team jumped to $15/user/month. The sticker shock is brutal, especially with stricter rate limiting on free tiers. Had one client's Docker Hub bill go from $200/month to $480/month overnight when they upgraded to avoid rate limiting issues.

The Enterprise Tax

JFrog Artifactory starts at $150/month for Pro and goes to $950/month for Enterprise X. Expensive as hell, but it actually includes everything - scanning, X-ray analysis, distribution. No surprise bills. Sometimes paying more upfront saves money vs nickel-and-diming.

Harbor is free if you don't value your weekends. Self-hosting means you handle backups, updates, security patches, and 3am outages. One guy on the team becomes "the Harbor guy" and hates his life. But it works, and big enterprises save serious cash running it on existing K8s clusters.

Managed vs Self-Hosted: Pick Your Poison

Harbor Logo

Container Registry Architecture

Managed services cost more but someone else deals with backups and upgrades. Self-hosting Harbor is cheaper until things break at 3am and you're debugging networking issues while the CEO asks why deployments are down.

I've run both. Managed services are boring but reliable. Self-hosted saves money but requires ops expertise. Pick based on whether you want predictable bills or predictable 3am wake-up calls.

Ready for the real numbers? The comparison table below shows exactly what each provider actually costs, not their marketing promises.

Cloud Pricing Comparison

Additional Resources:

What Every Registry Actually Costs (The Truth)

Provider

Storage

Free Tier

Transfer Costs

Reality Check

Monthly Pain

AWS ECR

$0.10/GB

500MB for 12mo

$0.09/GB internet egress

Cheap storage, expensive transfers

Starts $0, kills you later

Azure ACR Basic

$5/month + overage

10 GB

Standard Azure rates

Basic tier is garbage

  • 2 webhooks only

$5 (then upgrade)

Azure ACR Premium

$50/month

500 GB

Standard Azure rates

Actually works in production

$50 minimum

Google Artifact

$0.10/GB

0.5 GB

$0.01-$0.08/GB

Honest pricing, predictable costs

Variable

Docker Hub Pro

Included

5 GB

Unlimited pulls (fair use)

$9/month with better rate limits than free

$9/month

Docker Hub Team

Included

5 GB

Unlimited pulls (fair use)

Price increased 67% in 2024 updates

$15/user/month

Docker Hub Business

Included

50 GB

Unlimited pulls (fair use)

Enterprise features, still expensive per user

$24/user/month

JFrog Pro

Included

25 GB

Included

Expensive but includes everything

$150 minimum

JFrog Enterprise

Included

125 GB

Included

Enterprise features, enterprise price

$950 minimum

Harbor

Your AWS/GCP bill

Unlimited

Your bandwidth costs

Free software, expensive operations

$50-300/month ops

GitHub Packages

Plan dependent

500MB-50GB

Included

Works if you're already paying GitHub

Varies wildly

The Hidden Costs That'll Demolish Your Budget

Registry pricing isn't just storage costs - the hidden fees will murder your budget if you're not careful. Here's what actually matters when you're spending real money.

Security and Scanning Costs (The Sneaky Bastards)

JFrog Logo

Vulnerability scanning costs extra everywhere, and you can't run production without it. Google Container Scanning charges $0.26 per image scan - sounds cheap at $0.26 until your CI pipeline triggers 47 scans per day. That Node.js app with 3 microservices? Each git push scans 3 images. 15 daily pushes = 45 scans = $11.70/day = $351/month in scanning costs alone. One team I know got a $500 scanning bill for a $50 storage bill.

Azure ACR Premium includes scanning, which is why it costs $50/month vs $5 for Basic. That $45 difference is your security tax. Worth it because security team won't sign off on Basic tier anyway.

Transfer Costs That Scale Like Crazy

Network costs are where they really get you. That 100 GB monthly sounds reasonable until you realize your CI/CD pipeline pulls images across regions constantly. I watched one team's AWS ECR bill go from $20 to $200 when they added a second region. $9 per 100 GB out to internet adds up fast.

Multi-region deployments are a budget killer. You either pay for transfer costs or pay for duplicated storage. Neither is cheap. We ended up with regional registries and still got hit with sync costs.

How Costs Scale (Spoiler: Badly)

JFrog's pricing actually scales well if you hit their tiers. 25 GB base in Pro, then reasonable overage rates. But that $150/month minimum hurts startups. Enterprise contracts are where the real savings happen, but you need serious volume to negotiate.

AWS ECR scales linearly - $0.10 per GB forever. No volume discounts, no enterprise rates (unless you're spending millions). Google and Azure are similar. They make money on predictable per-GB pricing, not enterprise deals.

Regional Placement Games

Registry placement matters for transfer costs. AWS pricing is the same globally for storage, but transfer between regions varies. Putting your registry in us-east-1 and pulling from eu-west-1 costs more than you think.

Smart teams put registries near their compute. Dumb teams (like us initially) put everything in one region and pay transfer costs to everywhere else. Learn from our stupidity.

Harbor: Free Software, Expensive Operations

Harbor Logo

Harbor is "free" until you calculate the real operational overhead. Running Harbor on AWS with proper HA costs $180/month minimum (2x t3.medium instances, RDS Postgres, ELB). But the hidden costs destroy the math:

  • DevOps engineer time: 3 hours/week at $75/hour = $900/month
  • Backup and monitoring setup: S3, CloudWatch, alerts
  • Security patches: Harbor 2.9.1 had 3 CVEs, someone has to patch it
  • 3am outages: Harbor's Redis cache fails, takes registry down, ruins weekend
  • Database maintenance: PostgreSQL upgrades, connection tuning, backup verification

The break-even point is around 1TB of storage or when managed service costs get ridiculous. But only if you have someone who doesn't mind being "the Harbor guy" and dealing with YAML hell.

Enterprise Deals (For the Big Spenders)

Large enterprises get 20-50% discounts through volume commitments and multi-year contracts. But you need serious usage to negotiate. If you're spending $10K+/month on registries, you can probably get better rates.

JFrog enterprise deals include support, professional services, and SLAs. Sometimes worth the premium when your container infrastructure is business-critical and downtime costs more than the subscription.

But most startups and smaller companies pay list price and deal with it. The discount tiers are designed for enterprises with budget and leverage.

Want real-world numbers? The cost scenarios below show what teams actually spend across different scales - from startups to enterprise, including all the hidden costs that pricing calculators ignore.

More Resources on Registry Costs:

Real-World Cost Examples (What You'll Actually Pay)

Provider

Storage + Transfer

Base Cost

Monthly Total

Reality

AWS ECR

~$15

0

$15

Best for small teams, predictable

Azure ACR Premium

Included

50

$50

Overkill but works

Google Artifact

~$12

0

$12

Cheapest option

Docker Hub Team

Included

75 (5 users)

$75

Price doubled in 2024, ouch

JFrog Pro

Included

150

$150

Expensive but bulletproof

Harbor

~$40 (AWS infra)

0

$40

If you have time to manage it

AWS ECR

~$70

0

$70

Transfer costs starting to hurt

Azure ACR Premium

Included

50

$50

Good value at this scale

Google Artifact

~$60

0

$60

Still predictable

Docker Hub Business

Included

600 (25 users)

$600

User-based pricing got worse

JFrog Pro

150-300

0

$225

Good value with volume

Harbor

~$115 (bigger infra)

0

$115

Worth considering

AWS ECR

~$290

0

$290

Transfer costs are brutal

Azure ACR Premium

~$245 (multi-region)

0

$245

Good enterprise option

Google Artifact

~$250

0

$250

Consistent pricing

Docker Hub Business

Included

2,400 (100 users)

$2,400

Absolutely avoid at this scale

JFrog Enterprise

Included

950

$950

Enterprise features justify cost

Harbor

~$650 (HA setup)

0

$650

Significant savings but ops heavy

Registry Pricing Questions (The Stuff Nobody Tells You)

Q

What hidden costs will obliterate my budget?

A

The hidden costs that'll murder your budget:

  • Vulnerability scanning - Google charges $0.26/scan, AWS Enhanced scanning adds 30% to your bill
  • Multi-region transfer costs - That innocent 1.2GB image costs $0.11 per cross-region pull
  • Rate limiting workarounds - Docker Hub went from $5 to $15/user pricing overnight in November 2024
  • Security compliance - SOC2 requirements force Azure Premium tier, $45/month penalty
  • Operational overhead - Harbor 2.9.0 has memory leaks, 2.8.3 breaks on Kubernetes 1.28, pick your poison

Your real costs will be 30-50% higher than their pricing calculator says. Always.

Q

How do I calculate what I'll actually spend?

A

Use this formula that actually works:

  1. Storage cost: Your GB × provider rate
  2. Transfer cost: Monthly pulls × regions × rate (multiply by 3x for CI/CD)
  3. Base subscription if tiered pricing
  4. Add 40% for scanning, redundancy, dev environments

Don't trust their calculators. They assume perfect usage patterns that don't exist in real life.

Q

Which pricing model won't destroy my budget?

A

Depends on your scale:

  • Under 100 GB: Google Artifact Registry - simple per-GB pricing
  • 100-500 GB: Azure ACR Premium - $50/month includes everything
  • 500GB+: Harbor if you have ops expertise, otherwise stick with cloud providers
  • Enterprise scale: Negotiate volume discounts or consider JFrog

Pay-as-you-go becomes cheaper at enterprise scale. Tiered pricing works for predictable usage.

Q

Multi-region deployments cost how much extra?

A

Multi-region will murder your transfer costs. Cross-region pulls cost $0.01-$0.08/GB, which sounds cheap until you realize:

  • CI/CD pipelines pull the same images constantly across regions
  • That $0.01/GB becomes hundreds/month with realistic usage
  • You either pay transfer costs or pay for duplicated storage

Smart strategy: Put registries near your compute clusters, not in one "cheap" region.

Q

Can I get volume discounts?

A

Enterprise discounts exist but require serious volume:

  • Cloud providers: 20-50% off with multi-year commits, but need $10K+/month spend
  • JFrog: Volume bundles with predictable annual costs
  • Startups: You pay list price, deal with it

If you're spending less than $5K/month on registries, don't waste time negotiating.

Q

When does self-hosted Harbor make sense?

A

Harbor breaks even around 300GB if you have existing K8s expertise. But factor in the real costs:

  • Infrastructure: $50-200/month
  • Operations time: 2-4 hours/week minimum
  • 3am pages when it breaks
  • High availability setup complexity

Only worth it if someone on your team actually wants to be "the Harbor guy" and you're saving serious money.

Q

Are free tiers actually useful?

A

Free tiers are mostly marketing:

  • AWS ECR: 500MB for 12 months (useless after year 1)
  • Google: 0.5GB permanent (barely enough for hello-world)
  • Azure Basic: 10GB for $5/month (but only 2 webhooks)

Budget for real usage from day one. Free tiers won't last a week with real applications.

Q

How much does CI/CD integration actually cost?

A

CI/CD multiplies your transfer costs by 3-10x because:

  • Builds pull base images constantly
  • Multi-stage builds pull multiple images per build
  • Parallel builds across multiple runners
  • Failed builds still count against transfer

Docker Hub pricing jumped 67% in 2024. That innocent Node.js project pulling node:18 base image 200 times/day hit rate limits instantly. Had to upgrade to Team plan at $15/user/month just to keep GitHub Actions working.

Q

Security requirements double my costs?

A

Security is expensive but required:

  • Azure ACR Premium: $50/month vs $5 Basic just for security features
  • AWS ECR: Separate charges for enhanced scanning
  • Image signing and compliance add operational complexity

Security team won't sign off on Basic tiers anyway. Budget for Premium features from the start.

Q

What do providers actually cost at scale?

A

For a realistic 500GB storage, 200GB monthly transfers:

  • Azure ACR Premium: $50/month - best value, includes everything
  • Google Artifact Registry: ~$60/month - predictable, honest pricing
  • AWS ECR: ~$70/month - transfer costs add up
  • Harbor: ~$115/month - including infrastructure and ops time
  • JFrog: $300+/month - expensive but comprehensive

Choice depends on ops expertise and tolerance for surprise bills.

Related Tools & Recommendations

integration
Recommended

GitHub Actions + Jenkins Security Integration

When Security Wants Scans But Your Pipeline Lives in Jenkins Hell

GitHub Actions
/integration/github-actions-jenkins-security-scanning/devsecops-pipeline-integration
100%
alternatives
Recommended

Docker Desktop Became Expensive Bloatware Overnight - Here's How to Escape

compatible with Docker Desktop

Docker Desktop
/alternatives/docker-desktop/migration-friendly-alternatives
92%
troubleshoot
Recommended

Docker Daemon Won't Start on Linux - Fix This Shit Now

Your containers are useless without a running daemon. Here's how to fix the most common startup failures.

Docker Engine
/troubleshoot/docker-daemon-not-running-linux/daemon-startup-failures
86%
alternatives
Similar content

GitHub Actions Alternatives: Reduce Costs & Simplify Migration

Explore top GitHub Actions alternatives to reduce CI/CD costs and streamline your development pipeline. Learn why teams are migrating and what to expect during

GitHub Actions
/alternatives/github-actions/migration-ready-alternatives
86%
troubleshoot
Recommended

Docker Socket Permission Denied - Fix This Stupid Error

Got permission denied connecting to Docker socket? Yeah, you and everyone else

Docker Engine
/troubleshoot/docker-permission-denied-var-run-docker-sock/docker-socket-permission-fixes
77%
tool
Recommended

Google Artifact Registry - Store Your Docker Images and Packages

Google's answer to "where do I put all this shit?" - now with security scanning that actually works and won't randomly go down when you need it most

Google Artifact Registry
/tool/google-artifact-registry/overview
64%
integration
Recommended

OpenTelemetry + Jaeger + Grafana on Kubernetes - The Stack That Actually Works

Stop flying blind in production microservices

OpenTelemetry
/integration/opentelemetry-jaeger-grafana-kubernetes/complete-observability-stack
61%
troubleshoot
Recommended

Your Kubernetes Cluster is Down at 3am: Now What?

How to fix Kubernetes disasters when everything's on fire and your phone won't stop ringing.

Kubernetes
/troubleshoot/kubernetes-production-crisis-management/production-crisis-management
61%
troubleshoot
Recommended

Fix Kubernetes ImagePullBackOff Error - The Complete Battle-Tested Guide

From "Pod stuck in ImagePullBackOff" to "Problem solved in 90 seconds"

Kubernetes
/troubleshoot/kubernetes-imagepullbackoff/comprehensive-troubleshooting-guide
61%
alternatives
Recommended

GitHub Actions Alternatives That Don't Suck

integrates with GitHub Actions

GitHub Actions
/alternatives/github-actions/use-case-driven-selection
58%
pricing
Similar content

Terraform, Pulumi, CloudFormation: IaC Cost Analysis 2025

What these IaC tools actually cost you in 2025 - and why your AWS bill might double

Terraform
/pricing/terraform-pulumi-cloudformation/infrastructure-as-code-cost-analysis
51%
tool
Recommended

Helm - Because Managing 47 YAML Files Will Drive You Insane

Package manager for Kubernetes that saves you from copy-pasting deployment configs like a savage. Helm charts beat maintaining separate YAML files for every dam

Helm
/tool/helm/overview
44%
tool
Recommended

Fix Helm When It Inevitably Breaks - Debug Guide

The commands, tools, and nuclear options for when your Helm deployment is fucked and you need to debug template errors at 3am.

Helm
/tool/helm/troubleshooting-guide
44%
integration
Recommended

Making Pulumi, Kubernetes, Helm, and GitOps Actually Work Together

Stop fighting with YAML hell and infrastructure drift - here's how to manage everything through Git without losing your sanity

Pulumi
/integration/pulumi-kubernetes-helm-gitops/complete-workflow-integration
44%
tool
Recommended

Jenkins Production Deployment - From Dev to Bulletproof

integrates with Jenkins

Jenkins
/tool/jenkins/production-deployment
33%
tool
Recommended

Jenkins - The CI/CD Server That Won't Die

integrates with Jenkins

Jenkins
/tool/jenkins/overview
33%
alternatives
Recommended

Maven is Slow, Gradle Crashes, Mill Confuses Everyone

compatible with Apache Maven

Apache Maven
/alternatives/maven-gradle-modern-java-build-tools/comprehensive-alternatives
33%
tool
Recommended

GitLab CI/CD - The Platform That Does Everything (Usually)

CI/CD, security scanning, and project management in one place - when it works, it's great

GitLab CI/CD
/tool/gitlab-ci-cd/overview
32%
tool
Similar content

containerd - The Container Runtime That Actually Just Works

The boring container runtime that Kubernetes uses instead of Docker (and you probably don't need to care about it)

containerd
/tool/containerd/overview
31%
compare
Recommended

PostgreSQL vs MySQL vs MongoDB vs Redis vs Cassandra - Enterprise Scaling Reality Check

When Your Database Needs to Handle Enterprise Load Without Breaking Your Team's Sanity

PostgreSQL
/compare/postgresql/mysql/mongodb/redis/cassandra/enterprise-scaling-reality-check
23%

Recommendations combine user behavior, content similarity, research intelligence, and SEO optimization