Now optimizing over 4 PB of customer storage
Your S3 bill is 40–70% too high. We fix it automatically.
TierPilot learns how every object in your buckets is actually accessed, computes the optimal storage class for each one — including retrieval and transition costs — and executes the changes for you. No dashboards to read. No lifecycle rules to tune. No object data ever leaves your AWS account.
Read-only analysis is free. Paid plans are a percentage of what you actually save.
$ tierpilot run --bucket prod-media-assets
Analyzing 12,847,203 objects · 89.4 TB
Access patterns: 183 days of anonymized history
—
→ 7.2M objects → GLACIER_IR (cold, rare reads)
→ 2.9M objects → DEEP_ARCHIVE (no reads > 180d)
→ 1.1M objects → STANDARD_IA (monthly reads)
→ 1.6M objects → STANDARD (hot, kept in place)
—
Projected monthly spend: $2,056 → $734
✓ Saving $15,864 / year on this bucket
40–70%
typical S3 storage savings
15 min
to connect and deploy
0 bytes
of object data leaves your account
$0
upfront — we charge on realized savings
Storage tiering is a data problem, not a rules problem
S3 offers eight storage classes with a 23x price spread. Picking the right one for each object requires knowing how that object will be accessed — and that data is buried in access logs nobody wants to ETL.
Everything sits in Standard
Most teams write to S3 Standard and never look back. Objects that haven't been read in a year keep paying the hottest, most expensive rate — $0.023/GB, every month, forever.
Access patterns are invisible
Answering “which objects are actually cold?” means enabling server access logging or CloudTrail data events, then building an ETL pipeline over terabytes of log lines. Almost nobody does it.
Naive tiering backfires
Blanket lifecycle rules ignore retrieval fees, minimum storage durations, and per-object transition costs. Move the wrong objects to Glacier and your bill goes up. Getting it right requires modeling, not guessing.
How it works
Optimization runs in your account. Only math leaves it.
TierPilot deploys two small components into your AWS account via CloudFormation. Your object keys, your data, and your logs stay home.
-
1
Connect & select buckets
Launch our CloudFormation stack with a least-privilege IAM role, then choose which buckets to optimize. TierPilot enables S3 server access logging for them automatically.
-
2
Collector anonymizes in-account
The in-account collector aggregates access logs and replaces every object key with a salted, irreversible token before anything is shared. We see sizes, ages, and access frequencies — never names or contents.
-
3
We compute the strategy
Our optimizer models every storage class against each object's real access pattern — including retrieval fees, minimum durations, and transition request costs — and only proposes moves with guaranteed positive ROI.
-
4
Operator executes in-account
The in-account operator receives instructions referencing only anonymized tokens, resolves them locally, and performs the storage-class transitions. Every action is logged to your CloudTrail.
The privacy boundary is architectural, not contractual
Most cost tools ask for read access to everything and pull your metadata into their cloud. TierPilot inverts that: the components that can see your data run in your account, and the component that leaves your account can only see anonymized aggregates.
- ✓ Object keys tokenized with a salt that never leaves your account
- ✓ No
s3:GetObjectpermission — we can't read your data even if compromised - ✓ Every transition auditable in your own CloudTrail
What TierPilot's servers actually receive:
{
"object_ref": "obj_9f3ba2e1c8", // salted token, not a key
"size_bytes": 52428800,
"storage_class": "STANDARD",
"age_days": 412,
"reads_30d": 0,
"reads_180d": 2,
"last_access_days_ago": 97
}
Not another dashboard
Analytics tools show you savings opportunities and leave the work to you. TierPilot is a closed loop: it decides and executes.
| Cost dashboards | S3 Intelligent-Tiering | TierPilot | |
|---|---|---|---|
| Executes changes for you | ✗ You do the work | Partial — frequency only | ✓ Fully automated |
| Models retrieval & transition costs | ✗ | ✗ Ignores retrieval economics | ✓ Full cost model per object |
| Uses archive tiers safely | ✗ Manual | Opt-in, blunt age thresholds | ✓ Pattern-driven, ROI-gated |
| Per-object monitoring fee | — | $2.50 / million objects / month | None — we charge on savings |
| Sees your object keys & data | Usually yes | n/a (AWS-internal) | Never — anonymized in-account |
Frequently asked questions
- Can TierPilot read the data in my buckets?
- No. The IAM role we request has no
s3:GetObjectpermission. Storage-class transitions are performed by the in-account operator using metadata-level APIs. Our servers only ever receive anonymized aggregates — sizes, ages, and access counts keyed by irreversible tokens. - What if an archived object suddenly needs to be accessed?
- The optimizer is deliberately conservative: objects only move to archive tiers when their access history makes the probability-weighted retrieval cost far smaller than the storage savings. For Glacier Instant Retrieval, reads stay milliseconds-fast regardless. And you can exclude prefixes or set a floor tier per bucket.
- How is this different from setting lifecycle rules myself?
- Lifecycle rules are age-based guesses applied uniformly to a prefix. TierPilot decides per object using its actual access history, and re-evaluates continuously as patterns change — including moving objects back up to hotter tiers when they warm up.
- What does setup involve?
- You launch a CloudFormation stack (about two minutes), select buckets in the TierPilot console, and approve the optimization policy. The first optimization run happens after a learning period — typically 14 days of access-pattern collection, or immediately if you already have server access logs we can backfill from.
- How do you charge?
- Analysis is free on every plan — you see projected savings before anything moves. Paid plans take a percentage of realized savings, measured against your pre-optimization baseline. If we don't save you money, you don't pay. See pricing.
Find out what your buckets should cost
Connect a bucket, get a free savings projection from your real access patterns, and decide with numbers — not guesses.