Read-only AWS cost analyst

Your AWS bill, off your mind.

Apoc watches your AWS spend and talks to you in Slack. Quiet when all is well, clear when it isn't.

You create the IAM role. You can revoke it at any moment.

# aws-costs
Yesterday
Ap
Apoc App 9:00 AM
🟢 Tue Sep 15 · spent $6,600 so far · AWS forecasts ~$12,300 · limit $13,000 · all limits ok · as of Sep 15 09:00 UTC
Today
Ap
Apoc App 9:00 AM
🔴 Wed Sep 16 · spent $8,350 so far · AWS forecasts ~$16,600 · limit $13,000 · over limit: total ($13,000), EC2 ($6,000) · as of Sep 16 09:00 UTC
Ap
Apoc App 9:00 AM
🔴 Over limit — AWS forecasts ~$16,600 for September vs limit $13,000 (set by @Chris)
Also over: EC2 ~$9,580 vs $6,000
Spent $8,350 so far · forecast for the rest of the month $8,300 · as of Sep 16 09:00 UTC
Apoc is looking at what grew — details follow in this thread.
Change a limit: /apoc limit total 17000 · see all: /apoc limits

You shouldn't have to check a dashboard to know you're fine.

Most days, nothing about your bill deserves your attention. Apoc says so, once, and then leaves you alone.

No message when nothing is notable. No alert you've already seen. The silence is the product.

Ap
Apoc App 9:00 AM
🟢 Tue Sep 15 · spent $6,600 so far · AWS forecasts ~$12,300 · limit $13,000 · all limits ok · as of Sep 15 09:00 UTC

the whole message. that's it.

Three steps to a daily check.

Setup takes about ten minutes, and the only thing deployed is an IAM role. From day one, your spend is monitored.

①

Create a read-only IAM role

One Terraform apply in your own AWS account: a cross-account role with read permissions only. You can delete it whenever you like.

②

Install Apoc in your Slack

From your account page, in one click. Pick the channel with /apoc channel #aws-costs and the time with /apoc daily 08:00 Europe/Prague.

③

Read the intro card, set your limits

Apoc posts your numbers (this month, AWS's forecast, last month, by service and by tag) and a starting limit on the whole bill. /apoc limit service ec2 6000 adds a limit on a service. After that: one line a day.

What it does, in its own words.

Every capability is a message in a thread. Nothing to open, nothing to learn.

The daily audit
Ap
Apoc App 9:00 AM
🟢 Tue Sep 15 · spent $6,600 so far · AWS forecasts ~$12,300 · limit $13,000 · all limits ok · as of Sep 15 09:00 UTC

One line a day, at the time you pick. Green means nothing to do. Red names what is over and by how much.

Spend limits
Ap
Apoc App 9:06 AM
⚙️ /apoc limit service ec2 6000 (by @Chris)
EC2: limit $6,000 (set) · AWS forecasts ~$4,920 — under.

A limit on the whole bill, on any service or on any tag value, as an amount or as +15% over last month. Checked every day against AWS's own forecast, not a projection of ours.

Breach alert and investigation
Ap
Apoc App 9:00 AM
🔴 Over limit — EC2: AWS forecasts ~$9,580 for September vs limit $6,000 (set by @Chris)
Spent $4,180 so far · forecast for the rest of the month $5,400 · as of Sep 16 09:00 UTC
Apoc is looking at what grew — details follow in this thread.
Change a limit: /apoc limit service ec2 9600 · see all: /apoc limits
Ap
Apoc App 9:02 AM
✅ RDS back under its limit — AWS now forecasts ~$2,200 vs $2,541. Closed.

One card per breach. The investigation follows in its thread: what grew, where it lives, whether it looks intended. The card closes itself when the forecast comes back.

Ask anything
CH
Chris 9:09 AM
what's actually in the "VPC" spend?
Ap
Apoc App 9:10 AM
Mostly your NAT gateways, and the traffic that goes through them.
In Cost Explorer, "Amazon Virtual Private Cloud" is the network plumbing you pay for by the hour and by the gigabyte: NAT gateways (an hourly charge plus every GB they process), interface VPC endpoints (hourly per endpoint plus data), and site-to-site VPN connections. Plain traffic between availability zones is billed under EC2, not here.
For this account, September so far:
NAT gateway hours (5 gateways)        $100
NAT data processed (5.2 TB)           $270
Interface endpoints (7)                $82
Site-to-site VPN (1 connection)        $28
VPC total                             $480
The NAT data charge is the part that moves: every GB your private subnets send to the internet, or to an AWS service without a VPC endpoint, passes through a NAT gateway and is billed per GB. Ask me what's sending it and I'll break it down by source.
Basis: unblended, excl. tax & credits · as of Sep 16

Plain language in, plain language out. A general answer first, then your own numbers.

Suggest cost savings
CH
Chris 9:12 AM
Are there any opportunities to reduce costs?
Ap
Apoc App 9:13 AM
One clear one, about $480/mo: your container images cross regions on every pull.
All images live in ECR in eu-central-1, but the EKS clusters in four other regions pull from it — that inter-region transfer is the cost, not the registry itself.
ECR pulls from eu-central-1 to:
eu-west-1        9 TB   ~$180/mo
us-east-1        7 TB   ~$140/mo
ap-southeast-1   5 TB   ~$100/mo
sa-east-1        3 TB    ~$60/mo
Usage types EUC1-EUW1-AWS-Out-Bytes, EUC1-USE1-AWS-Out-Bytes, EUC1-APS1-AWS-Out-Bytes and EUC1-SAE1-AWS-Out-Bytes, all flat since June; the pulls come from node churn on the shop-* clusters.
The fix: one ECR replication rule in eu-central-1 targeting those four regions, then point each cluster's image references at its local registry. Each image then crosses regions once, on push, instead of on every pull — under $40/mo in replication and storage. I can't make the change; your team can, with no downtime.
Basis: unblended, excl. tax & credits · August

It finds the cost, names the cause and describes the fix with its estimated saving. Your team makes the change.

And more: /apoc spend for the whole picture, coverage rules so untagged spend can't hide, a memory for what you tell it, and a note when the month closes. Ask it anything in a thread.

Trust & safety

It cannot change your infrastructure. Not by policy, by permission.

Apoc reads. That's the entire surface area. The boundary is your own AWS account, drawn by you.

Read-only by design

A cross-account IAM role with read permissions only. Cost Explorer and the read-only inventory it needs to explain a number. Nothing else, and no CloudTrail: it describes what changed, never guesses who did it.

No write path exists

There is no code path that mutates your account, so there is nothing to misconfigure and nothing to trust us about.

Suggest-only

It describes the change and the estimated savings. Your team makes it. Ask it to act and it declines.

Revoke at any moment

You created the role, so you can delete it. Access ends the instant you do, without asking us.

About us

The team behind your new teammate.

We are a small team of AI and DevOps engineers based in Prague. We have spent more than a decade running AWS infrastructure, and reading the bills it produces, so we know exactly how spend drifts when nobody is watching.

Apoc is how we'd want that watching done: carefully, quietly, and without ever touching your account. When you write to us, you talk to the people who wrote the code.

The Apoc team in Prague
Watching, quietly

Your AWS bill will not surprise you.

Tell us a little about your AWS setup and we'll take it from there. No demo booking, no sales call, just a real reply from the team.

Read-only access, created and revocable by you
About ten minutes to set up, nothing deployed
One line a day; a card only when a limit is crossed

We'll only use this to reply. No newsletter, no sequence.

Message sent.

Thanks, we've got it. Expect a reply from a person, not a sequence.