What the translation relay costs
The relay is cheap because it does the expensive thing as rarely as possible. Every message gets one or two small model calls; the stronger, pricier model only touches the handful of passages that need it. There’s no always-on compute, no API Gateway, no NAT Gateway. At typical SMB volume the bill is a few dollars a month, and the fixed cost is essentially zero.
Key takeaways
- Around $3/month at typical SMB volume (about 600 messages a month, both directions).
- Fixed AWS cost is essentially zero. No always-on compute, no NAT Gateway, no API Gateway.
- Most of the bill is the Bedrock translate calls — and the cheap model carries almost all of it.
- The stronger Claude Sonnet 4.6 only fires on the tricky passages, so it stays a small sliver.
- At 2,000 messages the bill is around $9. At 5,000 it’s around $20.
Cost at three volumes
Where the dollars actually go
Bedrock Haiku (the bulk). Every message gets translated in, and every reply gets translated out, on Claude Haiku 4.5. Each call is a few hundred input tokens and a few hundred output tokens — a fraction of a cent. Detection’s careful fallback (for short or mixed notes) and the round-trip check add a couple more small Haiku calls per conversation. Multiply by a few hundred messages a month and it’s a couple of dollars. This is the part that scales with how busy you are, and it scales gently.
Bedrock Sonnet (only the tricky passages). The stronger model never translates a whole message — only the handful of clauses the cheap model flagged as shaky. At typical volume that’s a small share of passages, so Sonnet stays a sliver. A business with a lot of slangy, mixed-language messages will see this slice grow, but it’s still bounded by “only the hard bits, only when needed.”
Lambda runtime. Short functions: intake, detect, translate-in, translate-back, send, and the drive-sync job every fifteen minutes. Each runs for well under a second on arm64. Pennies a month at all three volumes.
DynamoDB on-demand. The conversation threads, the swap log, and the audit trail. A few small reads and writes per message. Pennies.
S3 + storage. The mirrored glossary, the voice note, and the raw inbound email MIME. A few hundred KB at SMB volume. Effectively free.
SES. Inbound for the email lane: $0.10 per thousand received messages. Outbound for the replies: $0.10 per thousand sent. Negligible at this scale.
SQS. The queue that sits between detect and translate so a burst of messages can’t overwhelm the model calls. A million requests a month is under a dollar; you’ll use a tiny fraction of that.
What doesn’t cost money
- API Gateway. Replaced by Lambda Function URLs for the web widget and the send-reply endpoint.
- NAT Gateway. Nothing is in a VPC. No NAT, no $32/month minimum.
- Always-on compute. No EC2, no Fargate. Everything runs only when a message moves through.
- A Knowledge Base. The relay translates; it doesn’t answer from documents. No embeddings, no vector store, no S3 Vectors.
- A second model on the easy path. The cheap model handles the everyday work; the stronger one is reserved for the passages that earn it.
How the cost scales
Bedrock Haiku grows roughly linearly with message volume, because every message is translated both ways. Sonnet grows too, but only with the share of tricky passages, which is small and fairly stable. Lambda, DynamoDB, and SES all grow linearly and stay tiny. So the bill at 10,000 messages a month is around $40, and at 20,000 it’s around $80 — still far cheaper than one part-time bilingual hire, and it covers every language at once. Past those volumes you’d start caching common phrases and batching the round-trip checks, but those are optimizations for a busy support desk, not redesigns.
Set an AWS Budgets alarm at $25/month so anything unusual pages you before the bill matters. The relay’s normal-volume cost stays well under that ceiling.
Last post in the series: the engineering reference. Same system, drawn for engineers — service names, Lambda inventory, IAM scopes, DynamoDB schemas, SES rule set, the SQS lanes, and the Bedrock model IDs.
All posts