DEV Community

Gustavo Ramirez
Gustavo Ramirez

Posted on

Comparando CDK SAM Amplify y Copilot cuando usar cada uno

Me han preguntado muchas veces cuál herramienta de IaC de AWS elegir. La respuesta honesta es "depende", pero puedo contarte cómo decido yo.

CDK

Lo uso cuando:

  • La infraestructura es compleja y heterogénea (Lambdas, EC2, RDS, EventBridge, etc.).
  • El equipo es fuerte en TypeScript o Python.
  • Quiero reutilizar constructs entre proyectos.
  • Necesito pipelines sofisticados con CDK Pipelines.

Lo evito cuando:

  • El proyecto es chico y solo tiene un par de recursos.
  • El equipo no quiere aprender una herramienta nueva.

SAM

Lo uso cuando:

  • El 80% o más del proyecto son Lambdas y API Gateway.
  • Quiero desarrollo local rápido con sam local.
  • El equipo prefiere YAML sobre TypeScript.

Lo evito cuando:

  • Tengo infraestructura compleja que no cabe en el modelo serverless.

Amplify (Gen 2)

Lo uso cuando:

  • Es una app fullstack con frontend y backend juntos.
  • El equipo es principalmente frontend y no quiere aprender CDK a fondo.
  • Necesito auth, data y storage sin pensar mucho.

Lo evito cuando:

  • Necesito control fino sobre la infraestructura.
  • El backend va a crecer más allá de lo que Amplify ofrece out of the box.

Copilot

Lo uso cuando:

  • El proyecto es principalmente contenedores en ECS o App Runner.
  • Quiero ambientes aislados sin configurar redes manualmente.
  • No quiero escribir CloudFormation para cosas estándar.

Lo evito cuando:

  • La arquitectura mezcla serverless y contenedores.

Una tabla mental

Proyecto Herramienta
API serverless simple SAM
Fullstack web con auth Amplify Gen 2
Microservicios en Fargate Copilot
Plataforma compleja CDK
Monorepo con todo lo anterior CDK + módulos

Lo que no cambio de opinión

Nunca mezclo dos herramientas de IaC gestionando los mismos recursos. Puedes tener un stack en CDK y otro en SAM, pero que no se pisen. Los errores de drift son una pesadilla.

Cierre

No existe la herramienta perfecta. Existe la herramienta que tu equipo puede mantener dentro de seis meses cuando tú ya no estés mirando el código todos los días.

Top comments (0)