Amazon Athena: Serverless Presto/Trino for S3

⏱️ 4 min read 🗄️ Data Management

What it is: Amazon Athena is AWS's serverless query service built on the Presto/Trino engines. You point it at files in S3 (Parquet, ORC, CSV, JSON), write standard SQL, and pay only for the data each query scans — no cluster to size, patch, or keep running.

Quick answer: Amazon Athena is the easiest "managed Presto service": a fully serverless AWS offering that runs Presto/Trino-based SQL directly against data in S3 for $5 per TB scanned (as of 2026). There is zero infrastructure to manage, but costs are driven entirely by how much data each query reads — so partitioning and columnar formats matter more than anything else.

Is Athena the same as Presto?

Effectively yes, from the SQL side. Athena is a managed service wrapped around the open-source engines: engine version 1 was based on Presto 0.172, while engine versions 2 and 3 are based on Presto and then Trino. You get largely the same ANSI SQL dialect and functions as Presto and Trino, but AWS operates the cluster, autoscales it invisibly, and bills per query instead of per node.

The practical differences: Athena limits you to connectors AWS provides (S3 natively, other sources via Lambda-based federated connectors), you cannot tune worker memory or cluster size on the standard tier, and long-running queries hit service timeouts that a self-managed Trino cluster would not impose.

When do Athena costs blow up?

Athena costs explode when queries scan far more data than they return. The classic failure mode is running SELECT ... WHERE date = '2026-08-01' against an unpartitioned table of raw CSV or JSON: Athena must read every byte in the S3 prefix, so a "small" query scans terabytes. At $5/TB, a single careless query over a 10 TB unpartitioned dataset costs $50 — and dashboards repeat that query all day.

-- Unpartitioned CSV: scans the whole dataset every time ($$$)
SELECT COUNT(*) FROM logs_raw WHERE event_date = DATE '2026-08-01';

-- Partitioned Parquet: scans one day's worth of one column (pennies)
SELECT COUNT(*) FROM logs_parquet WHERE dt = '2026-08-01';

Three fixes cut most bills by 90%+: partition on the columns you filter by (usually date), convert to Parquet or ORC so Athena reads only needed columns, and compress. AWS's own guidance shows Parquet conversion alone routinely reducing scanned bytes by an order of magnitude.

What It Does Best

Zero-ops SQL on S3. No cluster, no capacity planning, no idle costs. Create a table over existing files and query it in under a minute.

Pay-per-query economics. Ideal for spiky, ad-hoc workloads — you pay nothing between queries, unlike an always-on warehouse or EMR cluster.

AWS-native integration. Reads the Glue Data Catalog, writes results to S3, plugs into QuickSight, Step Functions, and Lake Formation permissions out of the box.

Key Features

Serverless Trino/Presto engine: standard ANSI SQL, window functions, arrays, and joins across S3 data

Federated queries: Lambda-based connectors reach RDS, DynamoDB, Redshift, and more

Apache Iceberg support: ACID inserts, updates, deletes, and time travel on S3 tables

Athena for Spark: serverless PySpark notebooks under the same service

Provisioned Capacity: optional dedicated capacity (per-DPU pricing) for predictable heavy workloads

Pricing

SQL queries: $5 per TB of data scanned, rounded up to a 10 MB minimum per query (as of 2026)

Failed queries: free; cancelled queries billed for data scanned so far

Provisioned Capacity: hourly per-DPU pricing instead of per-TB, for steady high-volume use

Hidden costs: S3 storage/requests and Glue catalog charges are billed separately

When to Use It

✅ Ad-hoc SQL over data already sitting in S3

✅ Spiky or infrequent query workloads (pay only when querying)

✅ Teams with no bandwidth to operate a Trino/EMR cluster

✅ Log and event analysis (ALB, CloudTrail, VPC Flow Logs)

✅ Serving as the query layer for an S3 data lake with Glue

When NOT to Use It

❌ Constant heavy workloads — per-TB fees exceed a dedicated cluster's cost

❌ Sub-second latency dashboards (queries typically take seconds)

❌ Unpartitioned raw data you can't reformat (every query scans everything)

❌ Cross-cloud or many non-AWS sources (Trino/Starburst connect more natively)

❌ Workloads needing engine tuning, custom connectors, or long-running queries

Common Use Cases

Log analytics: query CloudTrail, ELB, and application logs in place

Data lake SQL: the default query layer over Glue-cataloged S3 data

One-off investigations: answer questions over cold data without loading a warehouse

ETL-lite: CTAS/INSERT INTO jobs that convert CSV to partitioned Parquet

BI backends: QuickSight and other tools querying S3 through Athena

Athena vs Alternatives

vs self-managed Trino: Athena is zero-ops but less tunable; a Trino cluster wins on control, connectors, and cost at sustained high volume

vs EMR (Presto/Trino): EMR gives cluster-level tuning for EC2 + ~25% surcharge; Athena removes all ops for $5/TB

vs Starburst Galaxy: Galaxy offers managed Trino with more connectors and cross-cloud reach; Athena is simpler and more AWS-native

vs Redshift Spectrum: similar per-TB S3 scanning, but Spectrum requires a Redshift cluster; Athena stands alone

vs BigQuery: comparable serverless per-TB model on Google Cloud, with its own storage layer

Unique Strengths

True serverless: no clusters, no warm-up management, no idle spend

Instant start: from S3 files to SQL results in minutes

AWS ecosystem: deepest integration with Glue, Lake Formation, and QuickSight

Transparent pricing: one number ($5/TB scanned) you can directly engineer down

Bottom line: If you searched for a "managed Presto service" and your data lives in S3, Athena is the answer with the least friction: the real Presto/Trino engine, fully serverless, $5 per TB scanned. Partition your data and store it as Parquet, and it's remarkably cheap; skip that step and the bill will teach you. Move to self-managed Trino or Starburst only when volume, latency, or connector needs outgrow it.

Visit Amazon Athena →

← Back to Data Management Tools