dataonaws
— Stack · Data

S3 Tables

Managed Apache Iceberg tables in a new S3 bucket type. You store tabular data as Iceberg tables and AWS runs the table upkeep for you. Three choices decide how it connects and what it costs.

How it fits

Data lands as Iceberg tables. Engines read them through a catalog.

Spark, ETL, streamswrite Iceberg tablesIceberg RESTSigV4AMAZON S3 TABLESTable bucketnamespaces and tablesIceberg V3Parquet, Avro, ORC filesAutomatic maintenancecompaction, snapshots, unreferenced file cleanupIceberg REST · Glue Catalog · Lake FormationAthena, Redshift, EMRSpark, PyIcebergSageMaker Lakehouseone catalog across enginesmaintenance + access events → CloudTrail

Table buckets themselves are free; you pay for storage, requests and maintenance. Prices below come from the AWS pricing example (US West, Oregon): check the current price for your region.

What the service runs for you

The table upkeep Iceberg needs, done automatically.

Compaction

Small files into larger ones

Merges the many small files writes produce into fewer large ones, applying row-level deletes. Default target 512 MB, tunable 64 to 512 MB.

Snapshots

Old versions expire

Iceberg keeps each change as a snapshot. S3 Tables expires them past the age you set, default keep 1 and 120 hours.

Cleanup

Unreferenced files removed

Objects no snapshot points to are marked noncurrent, then deleted after your retention. On self-managed Iceberg you schedule all of this yourself.

All three are on by default per table and can be edited or turned off.

The three choices that matter

Most of the setup and the bill comes from here.

01

S3 Tables or self-managed Iceberg

Iceberg on a general purpose bucket gives full control but you schedule compaction and cleanup. S3 Tables takes that over at a per-object and per-GB fee.

02

Compaction strategy

Binpack just merges by size. Sort and z-order order the data for faster filtered queries, need a sort order defined, and cost more to run.

03

How engines connect

The s3tables Iceberg REST endpoint gives basic access to one bucket. Glue Data Catalog gives Athena, Redshift and EMR one catalog, with Lake Formation for permissions.

The dots are an illustrative sense of scope, not a measurement.

What you pay

An S3 Tables bill, in one line.

Storage
about $0.0265 per GB-month
First 50 TB per month, like S3 Standard for tables
+
Maintenance
per object + per GB processed
Compaction about $0.002 per 1,000 objects and $0.005 per GB (binpack)
+
Object monitoring
about $0.025 per 1,000 objects
A fee per object stored in a table bucket
+
Requests
PUT / GET
About $0.005 and $0.0004 per 1,000 requests, plus the query engine
What we see in production
Writes land as many tiny files.Compaction fixes it, but the per-object maintenance fee rises with how often you write.
Self-managed Iceberg with no one running compaction.Queries slow as small files pile up; S3 Tables removes that manual job.
Engines wired straight to the bucket endpoint.Going through Glue Data Catalog gives one governed catalog instead of per-engine config.
How we help

Build & optimize your data platform on AWS

State of the art, costs under control. Most bills grow with habits, not with data.

Read the approach →
PDF · coming soon

The one-page S3 Tables field guide.

Best practices, cost traps and performance checks, in the order you should run them. Printable, no fluff.

One email when the PDF is ready. Nothing else unless you tick the box.