Back to Articles
October 2, 2025
aws, architecture, mistakes, lessons-learned

The AWS Services I Regret Using (And What I Use Instead)

AWS has incredible services—but not all of them age well in real-world systems. Here are the ones I regret choosing.

AWS boasts unbelievable services—not every one of them stands the test of time in the real world systems. These are the ones I wish I had not selected.

Introduction

AWS doesn't fail you. Uncritical adoption does.

I have been using a number of AWS services over the years due to the following reasons:

  • They were recommended
  • They looked powerful
  • Everyone else was using them

Some of them? I wouldn't choose again.

The following is a dissecture of the services that I regretted using, why, and my options today.

1. Amazon Cognito The Annoyingest Managed Service.

Why I Chose It

  • Native AWS auth
  • Supposedly scalable
  • "Enterprise-ready"

Why I Regret It

  • Terrible DX
  • Confusing error messages
  • UI customization pain
  • It is horrible to debug auth flows.

What I'd Use Instead

  • Auth0 / Clerk (for DX)
  • Or custom auth + IAM (to control)

2. AWS AppSync - Potent yet Extravagant.

Why I Chose It

  • GraphQL + real-time
  • AWS-managed everything

Why It Fell Apart

  • Complex mental model
  • Velocity drops after MVP
  • Resolver debugging is agonizing.

Better Alternatives

  • REST with API Gateway
  • tRPC + Lambda
  • GraphQL with ECS/Lambda manually GraphQL with ECS/Lambda with Lisp.

3. Step Functions - Until You actually Maintain them.

The Promise

  • Visual workflows
  • Retry logic
  • Error handling

The Reality

  • State explosion
  • Cost surprises
  • Hard to version and test

What I Use Now

  • SQS + workers
  • Effortless code orchestration.
  • EventBridge where needed

4. EKS (Too Early)

Why I Regret It

  • Operational tax
  • Kubernetes learning curve
  • Overkill for small teams

When EKS Is Worth It

  • Large teams
  • Platform engineering
  • Multi-cloud strategies

What I'd Pick First

  • ECS + Fargate
  • Plain EC2 with Docker

What These Regrets Common to.

  • Complexity was abstracted ≠ Complexity was eliminated.
  • The location of the managed services is the site of pain.
  • DX is important in the same way as scalability.

A Simple Rule I Follow Now

In case I am unable to describe the mode of failure, I do not utilize the service.

AWS gives power. Sustainability is determined through engineering judgment.

Final Thoughts

AWS is a tool box- not a checklist.

The fewer services I selected at a higher degree of intent have made my systems:

  • Easier to debug
  • Cheaper to run
  • Faster to evolve

Use AWS. And just avoid giving your reason to it.

AG

Anup Giri

Software Engineer

Building scalable systems and crafting digital experiences that make a difference.

Connect

© 2026 Anup Giri. Built withusing Next.js