S3, without the S3 bill you cannot predict.
S3-compatible buckets on a prepaid tier that includes storage, egress, and requests. Your existing S3 client works unchanged, and an optional CDN puts objects at the edge when you need them there.
- 9 regions
- from USD 5 / month
- S3 compatible
- Private by default
# the client you already have$ aws s3 cp ./build s3://acme-assets/ --recursiveupload: build/app.js → s3://acme-assets/app.jsupload: build/app.css → s3://acme-assets/app.css2 files uploaded# served from the edgehttps://cdn.acme.com/app.js 200 cache HIT
INCLUDED
3 allowances
Storage, egress, and requests
ENTRY TIER
USD 5/ mo
25 GB storage, 10 GB egress
CDN
USD 0.12/ GB
Opt-in add-on, toggle any time
HEADROOM
110%
Grace buffer before suspension
Three steps to a public URL
Nothing new to learn
A bucket here behaves like a bucket anywhere. What changes is that the allowances are prepaid, so the bill is a number you chose rather than one you discover.
- 01
Create a bucket on a tier
Pick a region and a prepaid tier. The tier sets the storage, egress, and request allowances included each month.
- 02
Point your S3 client at it
Any S3-compatible SDK or tool works unchanged — the AWS CLI, boto3, the JavaScript SDK, or whatever your framework already uses.
- 03
Serve it publicly, or through the CDN
Make the bucket public for a plain HTTPS URL, then add the CDN when you want objects cached at edge locations worldwide.
What comes with a bucket
Built on S3, managed by us
The same infrastructure behind every tier. What differs is the allowance, and what Cosmoner adds around it.
S3-compatible API
Backed by AWS S3, so any S3-compatible SDK or tool talks to it unchanged. There is no client library to adopt and no dialect to learn.
aws s3 · boto3 · @aws-sdk/client-s3
Optional global CDN
Put a CloudFront distribution in front of a public bucket to cache objects at edge locations worldwide. Toggle it on or off at any time.
USD 0.12 / GB · USD 0.015 / 10K requests
Private by default
Objects are reachable only with signed credentials until you explicitly make a bucket public. Everything is encrypted at rest.
publicAccess: false
Warned before you are cut off
At 80% of any allowance you get an in-app notification and an email. Suspension only happens past 110%, and nothing is ever deleted.
80% warn · 110% suspend
CORS you control
Set the origins, methods, and headers a browser may use against the bucket, so a web app can upload directly without a proxy in between.
Per-bucket rules
Instant, prorated upgrades
Move a bucket to a larger tier the moment traffic demands it. Upgrades apply immediately and are prorated against the billing cycle.
Reactivates a suspended bucket
Public access and delivery
Two URLs, and you decide which ones exist
A private bucket has no public surface at all. Making it public gives it a plain HTTPS URL; adding the CDN gives it a second, cached one.
- Both URLs are shown on the bucket overview page as soon as they exist.
- The CDN cannot be enabled on a private bucket — public access comes first.
- Disabling the CDN removes its cost and leaves the regular public URL working.
- CORS rules are set per bucket, so browser uploads never need a proxy of your own.
{ "cdnEnabled": true}
# public URL, always availablehttps://acme-assets.s3.eu-north-1.amazonaws.com/…# CDN URL, once provisionedhttps://d3k1v9m2q0abcd.cloudfront.net/…
Prepaid tiers
Pick the allowance, not the invoice
Every tier includes storage, egress, and requests together. Upgrades are instant and prorated, and the CDN is the only add-on that meters.
- Starter
- USD 5 / month
- 25 GB storage · 10 GB egress · 500K requests. Development, prototypes, and low-traffic assets.
- Growth
- USD 20 / month
- 100 GB storage · 50 GB egress · 2M requests. Production workloads with moderate traffic.
- Scale
- USD 75 / month
- 500 GB storage · 250 GB egress · 5M requests. Media-heavy apps and CDN origins.
- Enterprise
- USD 300 / month
- 2 TB storage · 1 TB egress · 50M requests. Data lakes and high-throughput APIs.
All tiers run on the same AWS S3 infrastructure — only the included allowances differ. CDN delivery is metered separately at USD 0.12 / GB and USD 0.015 / 10K requests.
One project
What it plugs into
Buckets sit in the same project as the apps reading from them, on the same invoice and behind the same access controls.
Questions worth answering up front
Tier limits, regions, CORS, and the full API are covered in the Object Storage guide.
- Which tier should I start on?
- Weigh all three allowances, not just storage — a small dataset with heavy read traffic can need a larger tier than a big archive nobody touches. Starter or Growth is the right guess when you are unsure, because upgrading is instant.
- What happens if I go over?
- At 80% of any dimension you are warned in-app and by email. Past 110% the bucket is suspended: reads and writes are blocked, but the data is preserved and the bucket stays visible. Upgrading reactivates it immediately.
- Do I need the CDN?
- Only if you serve public assets to end users. It requires public access, and delivery is metered on top of the tier. Turning it off removes the added cost and the bucket stays reachable on its regular public URL.
- Can I upload straight from the browser?
- Yes. Set the bucket's CORS rules to allow your origin and the methods you need, and a web app can upload without routing files through your own server.
- Which region should I pick?
- One close to the servers doing the reading and writing — nine are available across the US, Europe, and Asia Pacific. Proximity cuts both latency and egress cost.
- What happens when I delete a bucket?
- The bucket and its objects are removed and the tier's subscription stops. Metered CDN usage already recorded in the period is still invoiced.
Growing into it
Upgrade before the buffer runs out
Usage is tracked per bucket across all three dimensions and checked continuously, so the warning arrives well before anything stops working.
Early warning
An in-app notification and an email. Nothing changes on the bucket — it is a prompt to consider the next tier.
Suspension, not deletion
Reads and writes are blocked while every object is preserved and the bucket stays visible in the dashboard.
Upgrade to resume
A larger tier reactivates the bucket immediately and is prorated against the current billing cycle.