AWS CDK icono

AWS CDK Populardesde 2019

Un framework de IaC que permite definir infraestructura AWS usando lenguajes de programación como TypeScript o Python

Qué hace

AWS CDK (Cloud Development Kit) es un framework de IaC (Infrastructure as Code) que permite definir infraestructura AWS mediante código usando lenguajes de programación de propósito general como TypeScript, Python, Java, C# y Go. Puedes aprovechar al máximo las capacidades del lenguaje como condicionales, bucles y funciones para describir la infraestructura, y el código definido se convierte en plantillas de CloudFormation para su despliegue. Las abstracciones de alto nivel (Constructs) permiten construir infraestructura compleja con poco código.

Casos de uso

Se utiliza para definir infraestructura de aplicaciones serverless, construir entornos de arquitectura de microservicios, automatizar pipelines de CI/CD y gestionar infraestructura de múltiples entornos (desarrollo, staging, producción). Es especialmente adecuado para desarrolladores familiarizados con la programación que desean construir infraestructura sin escribir YAML/JSON.

Analogía cotidiana

Piensa en él como bloques de LEGO. Si CloudFormation es ensamblar pequeños bloques individuales (recursos individuales), CDK es combinar conjuntos de piezas prefabricadas (Constructs). Si eliges un "kit de casa" (configuración de aplicación web), las paredes, el techo y las puertas (VPC, ALB, ECS) vienen incluidos, y se completa en pocos pasos.

¿Qué es AWS CDK?

AWS CDK es un framework para definir infraestructura AWS con lenguajes de programación. Mientras que CloudFormation tradicional describe recursos en YAML o JSON, CDK permite escribirlos en lenguajes familiares como TypeScript o Python. Gracias al autocompletado del IDE y la verificación de tipos en tiempo de compilación, puedes detectar errores de configuración tempranamente, mejorando significativamente la eficiencia del desarrollo.

Cómo funcionan los Constructs

El núcleo de CDK son componentes reutilizables llamados Constructs. Los L1 Constructs corresponden uno a uno con los recursos de CloudFormation, y los L2 Constructs son abstracciones de alto nivel con mejores prácticas incorporadas. Por ejemplo, usando la clase Bucket de L2, puedes crear un bucket S3 con cifrado y versionado correctamente configurados en pocas líneas. Los L3 Constructs (Patterns) agrupan combinaciones de múltiples recursos en un solo componente.

Relación con CloudFormation

El código escrito en CDK se convierte (sintetiza) en plantillas de CloudFormation mediante el comando cdk synth. El despliegue se realiza a través de CloudFormation, por lo que puedes utilizar directamente funciones como la gestión de stacks, change sets y rollbacks de CloudFormation. CDK es una "capa superior" de CloudFormation; no lo reemplaza, sino que es una herramienta para hacerlo más fácil de usar. Desde los fundamentos hasta la aplicación avanzada de la relación con CloudFormation, puedes aprender sistemáticamente en libros técnicos en Amazon.

Cómo empezar

Instala el CLI de CDK con npm install -g aws-cdk y crea un nuevo proyecto con cdk init app --language typescript. Define los recursos en el archivo de stack del directorio lib/ y despliega con cdk deploy. La primera vez necesitas ejecutar el comando cdk bootstrap para crear el bucket S3 y los roles IAM necesarios para CDK. Puedes verificar los cambios previamente con cdk diff.

Aspectos a tener en cuenta

  • CDK en sí es una herramienta gratuita de código abierto; solo se paga por los recursos de AWS desplegados
  • Las actualizaciones de versión de CDK pueden incluir cambios incompatibles, por lo que se recomienda fijar la versión y revisar el historial de cambios
  • cdk bootstrap debe ejecutarse una vez por cada combinación de cuenta de AWS y región. En desarrollo en equipo, basta con que una persona lo ejecute al principio
CompartirXB!