fshy

fshy / Storage

Amazon ECR Public

ecr.aws · Storage · 1 record · JSON

Amazon ECR Public Storage

caveatinstitutionno cardR

gallery.ecr.aws · registry · storage/amazon-ecr-public · JSON · compare

Free tier50 GB per month of always-free storage for public repositories: 'Both new and existing customers get 50 GB per month of always-free storage for their public repositories.' Past 50 GB it is not blocked — storage is billed to the repository owner: pricing table 'All storage / month ... per GB' resolves via AWS's price API to $0.1000000000/GB-month.
unit GB; metered on stored-bytes
Pricenone stated
Per-object capnot stated
Retentionnot stated
EgressHalf-free, and the free half is generous: 'You can anonymously (without using an AWS account) transfer 500 GB of data to the Internet from a public repository each month for free. If you sign up for an AWS account, or authenticate to Amazon ECR with an existing AWS account, you can transfer 5 TB of data to the Internet from a public repository each month for free.' Past that: 'Greater than 5 TB / month to non AWS Regions | $0.09 per GB'. Anonymous overage is not billed, it is refused: 'Up to 500 GB/month can be transferred out to non-AWS destinations to clients that have not authenticated (that is, anonymously). After that limit is reached, no further anonymous data transfer is allowed.' Zero egress cost to AWS compute in any region.
free_allowance: 5 TB per month
Identityinstitution derived from the record's prose, not from an identity field, and no signup was executed: 'All storage / month ... per GB' resolves via AWS's price API to $0.1000000000/GB-month. Very stable; the 1 pull/s anonymous rate limit is the thing that bites bulk fetches (a pa
Bindingnone no constraint in the record binds at this scale; the record carries no limit of a kind the vocabulary names
Interfaceoci, cli oci
Toolingdocker/skopeo/oras/crane; ORAS pushes arbitrary blobs as OCI artifacts. AWS CLI for auth (aws ecr-public get-login-password).
Composes with50 GB x N AWS accounts. Egress is per-downloader-IP for anonymous pulls and 5 TB/month for any authenticated AWS account, so a single account gives 5 TB/mo of public egress, and each additional free AWS account gives another 5 TB/mo as the authenticated client. Storage is only 50 GB/account, so the economics are inverted versus most registries: egress scales, storage does not.
ReliabilityVery stable; the 1 pull/s anonymous rate limit is the thing that bites bulk fetches (a parallel fetcher must spread across IPs or authenticate).
Notes50 GB per month of always-free storage for public repositories: 'Both new and existing customers get 50 GB per month of always-free storage for their public repositories.' Past 50 GB it is not blocked — storage is billed to the repository owner: pricing table 'All storage / month ... per GB' resolves via AWS's price API to $0.1000000000/GB-month.
Evidence rungreported One page read moves it to documented.
Checked2026-10-21 (inherited); stale on 2026-11-04
Evidence (4)
datesourcewhat it proved
2026-10-21aws.amazon.com/ecr/pricing/50 GB always-free public storage; 500 GB/mo anonymous egress, 5 TB/mo authenticated, $0.09/GB beyond
2026-10-21docs.aws.amazon.com/AmazonECR/latest/public/public-service-q'unauthenticated image pulls 1 per second', max layer 10,000 MiB
2026-10-21b0.p.awsstatic.com/pricing/2.0/meteredUnitMaps/ecr/USD/currerateCode zY12MU_... price 0.1000000000 (storage $/GB-mo)
2026-10-21public.ecr.aws/v2/probe: GET -> 401 with Www-Authenticate: Bearer realm="https://public.ecr.aws/token/"; GET /token/?service=public.ecr.aws&scope=repository:amazonlinux/amazonlinux:pull -> {"token":...}; GET /v2/amazonlinux/amazonlinux/manifests/latest with that Bearer -> 200, Content-Type application/vnd.docker.distribution.manifest.list.v2+json
Unknown or withheld values (5)
  • $.free_tier.notes process
  • $.per_object_cap.notes not-extracted
  • $.per_object_cap.stated not-extracted
  • $.retention.notes not-extracted
  • $.retention.stated not-extracted