Conceptos

AWS CDK

Framework de infraestructura como código de AWS que permite definir recursos cloud usando lenguajes de programación como TypeScript, Python o Java, generando CloudFormation.

seed#aws#cdk#iac#typescript#cloudformation#devops

¿Qué es?

AWS CDK (Cloud Development Kit) es un framework de infraestructura como código que permite definir recursos AWS usando lenguajes de programación reales en lugar de YAML/JSON. El código se sintetiza a CloudFormation para el despliegue.

CDK vs Terraform vs CloudFormation

AspectoCDKTerraformCloudFormation
LenguajeTypeScript, Python, etc.HCLYAML/JSON
AbstracciónConstructs de alto nivelRecursosRecursos
Multi-cloudNoNo
EstadoCloudFormationTerraform stateCloudFormation

Conceptos clave

ConceptoFunciónEjemplo
AppPunto de entrada, contiene stacksnew cdk.App()
StackUnidad de despliegue (= CloudFormation stack)MyServiceStack
Construct L1Mapeo 1:1 con CloudFormationCfnBucket (bajo nivel)
Construct L2Abstracciones con defaults sensatoss3.Bucket (permisos, cifrado automáticos)
Construct L3Patrones completosLambdaRestApi (API + Lambda + permisos)

Ejemplo TypeScript

const fn = new lambda.Function(this, 'Handler', {
  runtime: lambda.Runtime.NODEJS_20_X,
  handler: 'index.handler',
  code: lambda.Code.fromAsset('lambda'),
});
 
const api = new apigateway.RestApi(this, 'Api');
api.root.addMethod('GET', new apigateway.LambdaIntegration(fn));

¿Por qué importa?

CDK permite definir infraestructura con lenguajes de programación reales, lo que habilita abstracciones, testing unitario y reutilización de patrones que no son posibles con HCL o YAML. Para equipos de desarrollo que ya dominan TypeScript o Python, reduce la barrera de entrada a IaC.

Referencias

Conceptos