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 — optimization run #1,284

$ 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. 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. 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. 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. 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:GetObject permission — we can't read your data even if compromised
  • Every transition auditable in your own CloudTrail
Read the security model →

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:GetObject permission. 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.