Infraestructura como código (IaC)
Con la infraestructura como Código (IaC), puede automatizar la implementación y la administración de los recursos de AWS, como las aplicaciones sin servidor. La IaC permite definir la infraestructura mediante código, lo que facilita la creación de versiones, el uso compartido y la replicación de las implementaciones. Este enfoque ayuda a realizar lo siguiente:
-
Acelerar el ciclo de desarrollo
-
Facilitar la administración de la configuración
-
Mejorar la fiabilidad y coherencia de las implementaciones
Herramientas de IaC para aplicaciones sin servidor de AWS
AWS ofrece numerosas herramientas de IaC para permitir la creación, implementación y administración de los recursos en la nube. En esta sección se explica cómo AWS SAM se integra en este ecosistema y cómo funciona con otras herramientas de IaC de AWS.
- AWS CloudFormation
-
Con CloudFormation
, es posible modelar y aprovisionar toda la infraestructura de AWS con plantillas YAML o JSON. CloudFormation gestiona la creación, actualización y eliminación de recursos de forma automática. Al implementar aplicaciones de AWS SAM, CloudFormation procesa las plantillas transformadas para crear y administrar recursos. - AWS Serverless Application Model (AWS SAM)
-
AWS SAM permite crear aplicaciones sin servidor con una sintaxis simplificada para definir recursos sin servidor. Puede usar plantillas de AWS SAM para aprovisionar funciones de Lambda, API, bases de datos y orígenes de eventos mediante una sintaxis YAML concisa. AWS SAM transforma estas plantillas en plantillas de CloudFormation durante la implementación.
nota
Si bien AWS SAM se especializa en aplicaciones sin servidor, puede usar cualquier tipo de recurso de CloudFormation en las plantillas de AWS SAM. Esto confiere flexibilidad para incluir recursos sin servidor cuando sea necesario.
- AWS Cloud Development Kit (AWS CDK)
-
Con AWS CDK
, se puede definir la infraestructura sin servidor mediante lenguajes de programación conocidos como TypeScript, Python, Java, C#/.Net o Go. Puede utilizar constructos de programación, como bucles y condiciones, para definir la infraestructura. AWS CDK genera plantillas para la implementación de CloudFormation. Ahora puede utilizar la CLI de AWS SAM para probar y depurar aplicaciones creadas con AWS CDK. Para obtener más información, consulte Probar aplicaciones de CDK de manera local.
Comparación de herramientas de IaC para aplicaciones sin servidor
Para elegir una herramienta de IaC para sus aplicaciones sin servidor, es importante tener presente las preferencias de su equipo, los requisitos del proyecto y los flujos de trabajo existentes. La siguiente tabla compara las características clave de las herramientas de IaC de AWS para el desarrollo sin servidor:
Herramienta |
Uso principal |
Lo mejor para |
Funciona con AWS SAM |
Cuándo elegir |
|---|---|---|---|---|
CloudFormation |
Administrar una infraestructura compleja de AWS |
Aplicaciones que requieren un control detallado de los recursos de AWS |
Las plantillas de AWS SAM se transforman en plantillas de CloudFormation durante la implementación |
Para un control detallado sobre recursos que no están sin servidor |
AWS SAM |
Desarrollo de aplicaciones sin servidor |
Equipos que crean aplicaciones sin servidor con Lambda |
Funcionalidad nativa |
Cuando se centra principalmente en arquitecturas sin servidor con funciones de Lambda, API Gateway, API y otros recursos sin servidor |
AWS CDK |
Definición de infraestructura mediante lenguajes de programación |
Equipos que prefieran los lenguajes tipados y el enfoque basado en el código |
Genera plantillas de AWS SAM y utiliza la CLI de AWS SAM para realizar pruebas |
Cuando necesite una definición de infraestructura programática o una lógica de configuración de recursos compleja |
nota
Si bien esta guía se centra en las herramientas de IaC nativas de AWS, Terraform es otra popular solución de IaC que se puede utilizar para definir aplicaciones sin servidor. La CLI de AWS SAM admite las pruebas locales de las funciones de Lambda definidas en Terraform. Para obtener más información, consulte Compatibilidad de la CLI de AWS SAM con Terraform.
Más información
-
Para obtener más información sobre las prácticas de DevOps en AWS, consulte Introducción a DevOps en AWS
-
Para obtener información sobre el uso de Lambda con diferentes herramientas de IaC, consulte Uso de Lambda con la infraestructura como código (IaC)