google_artifact_registry_repository cost estimation
A managed registry for container images, Helm charts, language packages. $0.10/GB-month storage plus data transfer.
A google_artifact_registry_repository is the modern replacement for Container Registry (gcr.io). Supports container images, Helm charts, language-specific packages (npm, Maven, Python, Go, etc.), and generic artifacts.
Pricing has two components.
Storage: $0.10/GB-month after the 500 MB free tier per project. Artifact Registry uses content-addressable storage so duplicate layers across images are deduplicated automatically.
Data transfer: pulls within the same region are free. Cross-region pulls and pulls to the internet incur standard GCP egress rates.
Compared to AWS ECR: identical pricing model ($0.10/GB-month + egress). Compared to Azure Container Registry: ACR has fixed per-day tier pricing with included storage; Artifact Registry is purely per-GB.
Repository formats:
Docker: standard container images.
Helm: Helm chart repositories.
Generic: arbitrary file artifacts.
Language-specific (npm, Maven, Python, etc.): native package format support with vulnerability scanning.
Maven Standard and Maven Central remote repositories: free pull-through cache for public dependencies, billed at standard storage rates once cached.
c3x estimates Artifact Registry based on expected storage from c3x-usage.yml. Without usage, the repository shows $0 with a "depends on usage" note.
Terraform example
A minimal but realistic configuration that C3X can estimate.
resource "google_artifact_registry_repository" "containers" {
location = "us-central1"
repository_id = "production-containers"
description = "Production container images"
format = "DOCKER"
cleanup_policies {
id = "delete-untagged"
action = "DELETE"
condition {
tag_state = "UNTAGGED"
older_than = "604800s" # 7 days
}
}
cleanup_policies {
id = "keep-recent-tags"
action = "KEEP"
most_recent_versions {
keep_count = 10
}
}
}Pricing dimensions
What you actually pay for when you provision google_artifact_registry_repository.
| Dimension | Unit | What's being charged |
|---|---|---|
| Storage | per GB-month | Sum of all artifact sizes. First 500 MB/month free per project. $0.10/GB-month |
| Data egress to internet | per GB | Standard GCP egress rates for cross-region or external pulls. |
| Pulls within same region | free | Pulls from GKE, GCE, Cloud Run in the same region: no charge. $0 |
| Vulnerability scanning (when enabled) | per scan | Container Analysis vulnerability scanning is billed separately. $0.26 per image scanned with on-demand pricing. |
Optimization tips
Common ways to reduce google_artifact_registry_repository cost without changing the workload.
Set cleanup policies
Up to 90% on stored bytesArtifact Registry supports cleanup policies that automatically delete old or untagged versions. Without them, every CI build accumulates layers forever. Setting a 'keep 10 most recent' policy can cut storage by 90%+ for active repositories.
Use multi-stage Dockerfiles
50-80% per imageSmaller images mean less storage and faster pulls. Multi-stage builds drop build-time dependencies from final images, shrinking them by 50-80%.
Use the same region as your compute
Cross-region egress avoidedCross-region pulls trigger egress fees. Push images to the region where your GKE/GCE/Cloud Run actually runs.
Migrate from Container Registry (gcr.io) to Artifact Registry
No cost difference, better featuresGCR is deprecated. Artifact Registry has the same pricing but better features (cleanup policies, vulnerability scanning, more formats). Migrate in place; the URL changes from gcr.io to <region>-docker.pkg.dev.
FAQ
Why does c3x show Artifact Registry as $0?
The repository itself is free; cost is per-GB stored. Add expected storage_gb on the repository in c3x-usage.yml for a meaningful estimate.
What's the difference vs Container Registry (gcr.io)?
GCR is the older container-only registry; Artifact Registry replaces it with more features and broader format support. Pricing is identical. New deployments should use Artifact Registry. GCR is deprecated.
Is vulnerability scanning included?
Basic scanning of newly-pushed images is free for the first 90 days. After that, on-demand scans are $0.26 per image and continuous scanning is $0.42 per image scanned per scan. Most teams find this worth enabling for production images.
What about pull caches for public repositories?
Artifact Registry supports remote repositories that act as pull-through caches for Docker Hub, Maven Central, npm, PyPI, etc. Configuration is free; once data is cached, it bills as standard storage.
Related resources
Estimate this resource in your own Terraform
Free, open source, no API key. C3X parses your Terraform and shows line-item cost for every resource, including google_artifact_registry_repository.