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.
Data lands as Iceberg tables. Engines read them through a catalog.
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.
The table upkeep Iceberg needs, done automatically.
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.
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.
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.
Most of the setup and the bill comes from here.
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.
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.
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.
An S3 Tables bill, in one line.
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 →The one-page S3 Tables field guide.
Best practices, cost traps and performance checks, in the order you should run them. Printable, no fluff.