Preguntas frecuentes sobre el kit de desarrollo de la nube de AWS

Aspectos generales

El kit de desarrollo de la nube de AWS (AWS CDK) es un marco de desarrollo de software de código abierto que define la infraestructura de nube como código con lenguajes de programación modernos y se implementa mediante AWS CloudFormation.

Puede utilizar AWS CDK Command Line Interface (CLI) para interactuar con sus aplicaciones de CDK. CDK CLI le permite enumerar las pilas definidas en su aplicación de CDK, sintetizar las pilas en las plantillas de CloudFormation, determinar las diferencias entre ejecutar instancias de pilas y las pilas definidas en su código de CDK, e implementar pilas en cualquier región de AWS pública.

Utilice el marco de AWS CDK a fin de crear proyectos de AWS CDK que se ejecuten para generar plantillas de CloudFormation. Los proyectos de AWS CDK pueden ejecutarse con la línea de comandos de AWS CDK o en un sistema de entrega continua.

La mejor manera de comenzar a utilizar AWS CDK es consultar la sección Introducción de la Guía para desarrolladores de AWS CDK. En cuestión de minutos, podrá definir e implementar su primera aplicación de AWS CDK. Para obtener un tutorial guiado más detallado, visite https://CDKworkshop.com.

Sí, puede encontrar varios ejemplos de AWS CDK, en varios lenguajes de programación, en https://github.com/aws-samples/aws-cdk-examples. La guía para desarrolladores de AWS también incluye ejemplos en https://docs.aws.amazon.com/cdk/latest/guide/examples.html.

AWS crea la lógica empresarial de los paquetes de la Biblioteca de constructos de AWS en TypeScript y proporciona mapeos de cada uno de los lenguajes de programación admitidos. Esto garantiza que el comportamiento de los constructos de AWS CDK sea consistente entre los lenguajes, lo que permite ofrecer un conjunto completo de paquetes de constructos disponibles en todos los lenguajes. El código que escribe en sus proyectos de AWS CDK es todo nativo en el lenguaje de programación que prefiera, y el tiempo de ejecución de JavaScript es un detalle de implementación para su experiencia de programación. Puede consultar el proyecto jsii en https://github.com/aws/jsii.

El código fuente de AWS CDK es de código abierto y está disponible mediante GitHub en https://github.com/awslabs/aws-cdk.

Para migrar su aplicación a la versión 2 de AWS CDK, actualice los marcadores de características en cdk.json. Luego, actualice las dependencias y las importaciones de su aplicación según sea necesario para su lenguaje de programación. Puede obtener más información en: https://docs.aws.amazon.com/cdk/latest/guide/work-with-cdk-v2.html

Estamos desarrollando AWS CDK con código abierto, así que le damos la bienvenida a todos aquellos que quieran contribuir a nuestra base de códigos. Puede obtener más información en https://github.com/awslabs/aws-cdk/blob/master/CONTRIBUTING.md.

En general, AWS CDK está disponible en JavaScript, TypeScript, Python, Java, C# y Go (en la versión preliminar para desarrolladores). Estamos planificando enlaces de AWS CDK para otros lenguajes en el futuro. Puede votar por su favorito en GitHub.

AWS CDK está disponible para definir e implementar los recursos de AWS en todas las regiones públicas. Dado que AWS CDK aprovecha el servicio de CloudFormation, consulte los Productos y servicios regionales para obtener más detalles acerca de la disponibilidad específica de los recursos según la región de AWS.

Dado que AWS CDK aprovecha CloudFormation, las aplicaciones de AWS CDK están sujetas a los mismos límites que impone el servicio CloudFormation.

AWS Solutions Constructs es una extensión de la biblioteca de código abierto de AWS CDK. Le ofrece una colección de patrones de arquitectura multiservicio examinados y creados con las prácticas recomendadas que se establecen en el AWS Well-Architected Framework. AWS Solutions Constructs requiere la instalación del AWS CDK como requisito previo. Para obtener instrucciones sobre cómo agregar AWS Solutions Constructs a su entorno de AWS CDK, consulte nuestra guía de desarrollo.

Biblioteca de constructos de AWS

Los constructos de AWS CDK se entregan a través de la Biblioteca de constructos de AWS y representan abstracciones de la lógica de la infraestructura de nube que están empaquetadas para su reutilización. Los constructos pueden definirse de manera local o pueden publicarse con administradores de paquete como npm, Maven, NuGet o PyPI para compartirlos entre las organizaciones.

Tenemos cobertura para muchos de los servicios comunes de AWS y características con constructos enriquecidos de alto nivel, además de cobertura completa de los recursos de nivel inferior de CloudFormation, incluidos los recursos nuevos apenas están disponibles. Mantenemos actualizada la Biblioteca de constructos de AWS al generar automáticamente las API a nivel de recursos cada vez que cambia la especificación de CloudFormation. Además de las API generadas automáticamente, proporcionamos abstracciones artesanales de mayor nivel que facilitan aún más el trabajo con cada servicio. Aún no tenemos estas convenientes abstracciones de alto nivel para cada uno de los servicios de AWS, pero estamos agregando características nuevas todo el tiempo con el interés enfocado en los servicios que más se utilizan en las aplicaciones de nube modernas. Visite la referencia de la API en la Biblioteca de constructos de AWS para obtener más información.

Mantenemos sincronizada la Biblioteca de Constructos de AWS con la especificación de CloudFormation al agregar rápidamente las nuevas características de CloudFormation a AWS CDK apenas se publican.

Las bibliotecas de constructos de AWS CDK son como cualquier otra biblioteca. Se consumen a través del administrador de paquetes del lenguaje de programación que usted utiliza; mantener actualizadas las bibliotecas es parte de su flujo de trabajo normal. Todos los paquetes admiten versiones semánticas, lo que le permite tomar decisiones de manera consiente acerca de cuándo migrar a los nuevos modelos de infraestructura.

CloudFormation y SAM

Considere a AWS CDK como un conjunto de herramientas centrado en los desarrolladores que aprovecha toda la potencia de los lenguajes de programación modernos para definir su infraestructura como código de AWS. Cuando se ejecutan las aplicaciones de AWS CDK, se compilan en plantillas JSON/YAML de CloudFormation totalmente formadas que luego se envían al servicio CloudFormation para su aprovisionamiento. Dado que AWS CDK aprovecha CloudFormation, puede disfrutar de todos los beneficios que ofrece CloudFormation, tales como implementación segura, reversión automática y detección de desviaciones.

Ambos, el modelo de aplicaciones sin servidor de AWS y AWS CDK, abstraen la infraestructura de AWS como código, lo que simplifica la definición de su infraestructura de nube. AWS SAM se centra específicamente en casos de uso y arquitecturas sin servidor y le permite definir su infraestructura en plantillas JSON/YAML compactas y declarativas. AWS CDK ofrece amplia cobertura para todos los servicios de AWS y le permite definir la infraestructura de nube en lenguajes de programación modernos como TypeScript, Python, C# y Java. AWS SAM y AWS CDK aprovechan CloudFormation como el motor de aprovisionamiento para sus pilas de infraestructura. Si prefiere definir su infraestructura sin servidor en plantillas declarativas concisas, SAM es el más adecuado. Si quiere definir su infraestructura en un lenguaje de programación familiar, le recomendamos que pruebe AWS CDK. En ambos casos, puede confiar en las implementaciones repetibles y seguras de infraestructuras a través de CloudFormation.

Sí, puede sintetizar de manera local su aplicación de AWS CDK en una plantilla de CloudFormation y luego, hacer referencia al ID del controlador de AWS Lambda generado en SAM CLI. Consulte la sección de SAM CLI en la Guía para desarrolladores de CDK para obtener más información.

Costo

AWS CDK se distribuye con la licencia Apache, versión 2.0. Consulte LICENSE y NOTICE para obtener más información.

No se aplican cargos adicionales para AWS CDK. Debe pagar los recursos de AWS (por ejemplo, las instancias de Amazon EC2 o los balanceadores de carga de Elastic Load Balancing) creados con AWS CDK de la misma forma que si los creara manualmente. Solo paga por lo que consume y a medida que lo utilice. No hay tarifas mínimas ni compromisos iniciales obligatorios.