Technology

Your AWS logs are already in S3. Make them searchable.

CloudTrail, VPC flow, and WAF logs are the highest-volume, lowest-density data most teams own — expensive to keep in a SIEM and painfully slow to query with Athena. CtrlB indexes them where they already sit.

CloudTrail
S3
VPC
WAF
IAM
GuardDuty
CloudFront
Lambda
EC2
RDS
CloudWatch
Firehose
CtrlB+AWS
125 TB
Unique IP search in ~5 s
1.3 PB/month
WAF and CloudTrail at Zepto
In place
Indexes land in your bucket
Data events
Affordable to keep on

Index in place

The bucket you already have becomes the searchable lake

AWS is already writing Parquet to S3. CtrlB adds one prefix beside it — no second copy, no egress, and nothing leaves your account. The only thing that changes is how long a question takes.

s3://acme-logseu-west-1
0 TB retained
Already landing
CloudTrailCloudTrail
VPCVPC Flow
WAFWAF
CloudFrontCloudFront
cloudtrail/2026/08/*.parquetopen Parquet
vpcflow/2026/08/*.parquetopen Parquet
waf/2026/08/*.parquetopen Parquet
cloudfront/2026/08/*.parquetopen Parquet
_ctrlb_index/written beside the data
no second copyno egressyour accountyour lifecycle rules
One query · sourceIPAddress = 203.0.113.45same bucket, both rows
Athena · full scan5–10 min
CtrlB · index seek~5 s
Explore, don't scan

Your AWS logs are already in S3. The query layer is what hurts.

CloudTrail, VPC flow, and WAF are the sources investigations need most — and the first ones teams sample away or leave unsearchable in the archive tier.

CloudTrailCloudTrail
VPCVPC flow
WAFWAF
indexed in place

Typical Athena scan

125 TB

every object

CtrlB index lookup

12 MB

one row group

Cost per query

$142 → ¢

same SQL

s3://security-logs-prod · us-east-1
same bucket · same Parquet
SQLcloudtrail · sourceip lookup

SELECT * FROM cloudtrail WHERE sourceip = '203.0.113.44'

Athenaidle

full table scan

CtrlBwaiting

index lookup

bytes touched
125 TB
CloudTrailcloudtrail/
VPCvpcflow/
WAFwaf/
.ctrlb/indexes/

What AWS logging costs you today

What changes

CloudTrail data events are the most useful and the first thing disabled, because per-event SIEM pricing makes them unaffordable.

CtrlB indexes the Parquet already in your bucket — no new storage system and no copy of your AWS logs to keep in sync.

Athena queries the same S3 objects but scans them, so a needle question takes five to ten minutes and bills by bytes scanned.

A unique-IP search across 125 TB of CloudTrail returns in about five seconds, so an analyst follows a lead instead of batching questions.

VPC flow and WAF logs get sampled or dropped at exactly the volumes where an investigation needs them complete.

Data events, flow logs, and WAF stay on, because keeping them is a storage line item rather than a licensing negotiation.

The archive lifecycle rule that saves money is the one that makes last quarter unsearchable.

Every retained day answers at the same speed, so lifecycle policy and investigative reach stop being in tension.

How it works

If trails already deliver to S3, collection stays exactly as configured. CtrlB indexes where the data lands and answers with the SQL your team already writes.

Step 01
s3://org-security-logs · us-east-1
CloudTrail
AWSLogs/cloudtrail/
trail already writing
unchanged
VPC
AWSLogs/vpcflow/
trail already writing
unchanged
WAF
aws-waf-logs/
trail already writing
unchanged
CtrlB reads in place

indexes land in the same bucket · zero egress

1

Point at the bucket you have

CloudTrail, VPC flow, WAF, GuardDuty, and ALB logs are already landing in S3. CtrlB reads them where they are and writes its indexes into the same bucket.

Step 02
event lands
CloudTrail
sourceip=203.0.113.44 · eventtime=2026-08-28T08:41:22Z
part-000.parquet
.ctrlb/indexes/
sourceip.idxneedle
principal.idx
requestid.idx

targeted read · not a full-bucket scan

2

Index as events land

Compact inverted indexes are built at ingest, so a query for one principal, one IP, or one request id is a targeted read rather than a full-bucket scan.

Step 03
same SQL · same objects
SELECT eventtime, sourceip
FROM cloudtrail
WHERE sourceip = '203.0.113.44'
Athena
bytes scanned125 TB

~8 min

CtrlB
bytes read12 MB

0.0 s

3

Query with SQL you already write

The same SQL your team writes for Athena works here, against the same objects — only the latency and the scan bill change.

Source coverage

The sources that dominate your bill

Volume is what decides whether a source stays on. These are ordered by how much of it they produce — and the biggest three are the ones teams disable first.

CloudTrailS3VPCWAFGuardDutyIAMLambdaEC2RDSCloudFrontCloudWatchFirehose
CloudTrail

CloudTrail

Management and data events, unsampled.

Data events stay on
VPC

VPC Flow Logs

Every accepted and rejected flow, not a sample.

WAF

WAF

Edge allow/block decisions with the matched rule.

GuardDuty

GuardDuty

Findings correlated against the raw evidence behind them.

CloudFront

ALB & CloudFront

Access logs at request granularity.

S3

S3 access logs

Object-level reads and writes across buckets.

CloudWatch

AWS Config

Resource configuration history as a searchable timeline.

Lambda

CloudWatch export

Lambda, RDS, and ECS logs exported to S3.

What you get

CloudTrail at full fidelity

VPC flow logs

WAF and ALB

No data movement

Cross-account

Object Lock friendly

Production proof
Zepto
5–10 min → 500 ms–5 sec

Same security agent. Same S3 data. Only the query layer changed.

View customer story

Questions

No. If trails are already delivering to S3, CtrlB reads from that destination. The change is on the query side, not the collection side.

Athena is the right architecture — it queries data in place — but a needle query means a full scan. CtrlB adds inverted indexes beside the same Parquet, so point searches drop from minutes to sub-second and scan a fraction of the bytes.

Yes. A central bucket fed by many accounts is the common case, and cross-account trails are indexed as one searchable history.

Both are supported. The architecture is object storage generally, not S3 specifically.

Put it on your own bucket and see.

Point a source at CtrlB, keep everything else where it is, and compare the same investigation side by side.