Every layer AWS built on ECS is dying
AWS FOR THE REAL WORLD
โฑ๏ธ
Reading time: 10 minutes
๐ฏ
Main Learning: Every convenience layer AWS built on ECS is dead or dying, while ECS itself has not
changed since 2014. Build on the primitive, and make the layer above it prove itself first.
๐
Hey ๐๐ฝ Getting started with an AWS service often feels more complicated than it should.
So, the fancy CLI that promises to do all of it for you is tempting. One thing we learned the hard way: learn the primitives once and skip the convenience layer. I (Sandro) learned that with the first thing I ever built on AWS. A mobile app called Deposur (here is an โold tweet โI've found). It was a full-stack mobile app to track your investments like ETFs or stocks. I used the Amplify v1 CLI for that. It worked great. Amplify generated the whole GraphQL API and DynamoDB schema for me. The issue back then was that there was no way to get out of it. It was very opinionated about things. If you had an issue with a CloudFormation deployment or with some generated path, you were mostly stuck. Newer Amplify versions are much better about that now. I'd still only use the main services! Especially with AI. It is so easy to get in-depth explanations of what each service configuration is doing. Learn it once, apply it forever. That is what today's deep dive is about. Tobi keeps a list of every layer AWS built on top of ECS. Most of it is dead or dying.
Sponsored
Trigger.dev chat.agent ย โขย Open Source
One conversation, one durable task.I have built the same AI chat feature three times now. LangChain, Strands, plain Vercel AI SDK. The orchestrator changes, the plumbing never does: API Gateway with streaming, Lambda, DynamoDB for conversation state, OTEL into CloudWatch for the traces. It works, but it is annoying.
chat.agent moves that plumbing into one durable task per conversation. Every message is stored on the server, the client only sends the new one. Responses stream straight into the normal useChat hook. A tool that needs a human answer pauses the agent until it arrives. And every turn is a span, so you open a session in the dashboard and read what happened. It is 100% open source. Read the code, self-host it, try it without asking anyone. The next chat feature I build, I will give it a try. Give chat.agent a try โSponsored by Trigger.dev. The words are Sandro's own.
That's it for this issue. If you take one thing away: when something on AWS promises to make a service easier, check what sits underneath it first. Build on that. Let the layer above it prove it survives before anything production-critical depends on it. And if you are still running on Copilot or Proton: the task definitions and services are still there. You are closer to plain ECS than it feels. See you in the next one! Sandro & Tobi |