Google CloudArtifact RegistryContainers

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.

DimensionUnitWhat's being charged
Storageper GB-monthSum of all artifact sizes. First 500 MB/month free per project.
$0.10/GB-month
Data egress to internetper GBStandard GCP egress rates for cross-region or external pulls.
Pulls within same regionfreePulls from GKE, GCE, Cloud Run in the same region: no charge.
$0
Vulnerability scanning (when enabled)per scanContainer 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 bytes

Artifact 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 image

Smaller 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 avoided

Cross-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 features

GCR 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.