Aspectos generales
¿Qué es AWS CloudFormation?
AWS CloudFormation es un servicio que ofrece a desarrolladores y empresas una manera sencilla de crear una colección de recursos de AWS y de terceros. También ayuda a aprovisionarlos y administrarlos de forma ordenada y predecible.
¿Qué pueden hacer los desarrolladores con AWS CloudFormation?
Los desarrolladores pueden implementar y actualizar la informática, la base de datos y muchos otros recursos en un estilo simple y enunciativo que abstrae la complejidad de las API de recursos específicos. AWS CloudFormation está diseñado para permitir que los ciclos de vida de los recursos se administren de manera repetida, predecible y segura. Al mismo tiempo, permite restauraciones automáticas, administración automatizada del estado y administración de recursos en todas las cuentas y regiones. Las mejoras y las opciones que se han puesto a disposición recientemente permiten múltiples formas de crear recursos, incluido el uso de AWS CDK para codificar en idiomas de nivel superior, la importación de recursos existentes, la detección de cambios en la configuración y un nuevo registro que facilita la creación de tipos personalizados de recursos que heredan muchos beneficios básicos de CloudFormation.
¿En qué se diferencia CloudFormation de AWS Elastic Beanstalk?
Estos servicios se han diseñado para complementarse entre sí. AWS Elastic Beanstalk proporciona un entorno en el que es posible implementar y ejecutar aplicaciones en la nube fácilmente. Está integrado con herramientas de desarrollo y ofrece una experiencia única para administrar el ciclo de vida de las aplicaciones. Si las cargas de trabajo de su aplicación se pueden administrar como cargas de trabajo de Elastic Beanstalk, puede disfrutar de una experiencia más completa en la creación y la actualización de aplicaciones. Elastic Beanstalk usa CloudFormation en segundo plano para crear y mantener recursos. Si los requisitos de su aplicación exigen un control más personalizado, la funcionalidad adicional de CloudFormation le brinda más opciones para controlar sus cargas de trabajo.
AWS CloudFormation es un mecanismo de aprovisionamiento práctico para una amplia gama de recursos de AWS y de terceros. Admite las necesidades de infraestructura de muchos tipos diferentes de aplicaciones, como aplicaciones empresariales existentes, heredadas o creadas con diversos recursos de AWS y soluciones basadas en contenedores (incluidas aquellas creadas con AWS Elastic Beanstalk).
AWS CloudFormation admite entornos de aplicaciones de Elastic Beanstalk como uno de los tipos de recursos de AWS. Esto le permite, por ejemplo, crear y administrar una aplicación alojada en AWS Elastic Beanstalk junto con una base de datos de RDS para almacenar los datos de la aplicación. También se puede agregar al grupo cualquier otro recurso de AWS compatible.
¿Qué conceptos nuevos presenta AWS CloudFormation?
CloudFormation presenta cuatro conceptos: una plantilla es un archivo de código declarativo JSON o YAML que describe el estado previsto de todos los recursos que necesita para implementar su aplicación. Una pila implementa y administra el grupo de recursos descritos en su plantilla y permite que el estado y las dependencias de esos recursos se administren juntos. Un conjunto de cambios es una vista previa de los cambios que ejecutarán las operaciones de pila para crear, actualizar o eliminar recursos. Un conjunto de pilas es un grupo de pilas que se administran juntas y que pueden replicar un grupo.
¿Qué recursos son compatibles con AWS CloudFormation?
Para ver una lista completa de los recursos de AWS compatibles y sus características, visite la página de servicios de AWS compatibles en el historial de versiones de la documentación.
El Registro de AWS CloudFormation y los recursos personalizados de AWS CloudFormation permiten administrar recursos adicionales de AWS y de terceros.
¿Puedo administrar recursos de AWS individuales que formen parte de una pila de AWS CloudFormation?
Sí, es posible. CloudFormation no interfiere; usted mantiene el control total de todos los elementos de la infraestructura, a la vez que podrá continuar con el uso de todas las herramientas existentes de AWS y de terceros para administrar los recursos de AWS. Sin embargo, dado que CloudFormation puede permitir reglas adicionales, prácticas recomendadas y controles de cumplimiento, recomendamos que permita que CloudFormation administre los cambios en los recursos. Este enfoque controlado y predecible ayuda a administrar cientos o miles de recursos en la cartera de aplicaciones.
¿Cuáles son los elementos de una plantilla de AWS CloudFormation?
Las plantillas de CloudFormation son archivos de texto con formato JSON o YAML compuestos por cinco tipos de elementos:
1. Una lista opcional de parámetros de plantilla (valores de entrada suministrados en el momento de creación de la pila)
2. Una lista opcional de valores de salida (p. ej., la dirección URL completa de una aplicación web)
3. Una lista opcional de tablas de datos utilizadas para buscar valores de configuración estáticos (p. ej., nombres de AMI)
4. La lista de recursos de AWS y sus valores de configuración
5. Un número de versión de formato de archivo de plantilla
Los parámetros de las plantillas se utilizan para personalizar aspectos de la plantilla en el tiempo de ejecución, cuando la pila está compilada. Por ejemplo, el tamaño de la base de datos de Amazon RDS, los tipos de instancias de Amazon EC2, los números de puerto de servidor web y la base de datos pueden transmitirse a AWS CloudFormation en el momento de creación de una pila. Cada parámetro puede tener un valor y una descripción predeterminados, y se puede marcar como “NoEcho” para ocultar el valor real que haya especificado en la pantalla y en los registros de eventos de AWS CloudFormation. Al crear una pila de AWS CloudFormation, la consola de administración de AWS se sintetizará automáticamente y presentará un formato de diálogo emergente el que podrá editar los valores de los parámetros.
Los valores de salida son una forma cómoda de presentar los recursos clave de una pila (por ejemplo, la dirección de un balanceador de carga de Elastic Load Balancing o una base de datos de Amazon RDS) al usuario a través de la consola de administración de AWS o de las herramientas de línea de comandos. Puede utilizar funciones sencillas para concatenar los literales de cadena y el valor de los atributos asociados a los recursos de AWS reales. Una plantilla también puede aprovechar los tipos de recursos del Registro, sus tipos privados personalizados, sus macros y la recuperación de parámetros de configuración de AWS Secrets Manager y AWS System Manager Parameter Store.
¿Cómo selecciona AWS CloudFormation los nombres de recursos reales?
Puede asignar nombres lógicos a los recursos de AWS en una plantilla. Cuando se crea una pila, AWS CloudFormation vincula el nombre lógico con el nombre del recurso real de AWS correspondiente. Los nombres de recursos reales son una combinación del nombre de recurso lógico y de la pila. Esto permite la creación de varias pilas a partir de una plantilla sin miedo a que exista confrontación de nombres entre los recursos de AWS.
¿Por qué no puedo asignar un nombre a todos mis recursos?
Aunque AWS CloudFormation permite nombrar algunos recursos, como los buckets de Amazon S3, no se puede dar un nombre a todos. Cuando asigna nombres a los recursos, se restringe la capacidad de reutilización de las plantillas y pueden provocarse conflictos de nombre si una actualización sustituye un recurso. Para reducir al mínimo estos problemas, CloudFormation evalúa cada caso particular para admitir que se asignen nombres a los recursos.
¿Puedo instalar software al momento de crear la pila con AWS CloudFormation?
Sí. AWS CloudFormation proporciona un conjunto de scripts para el proceso de arranque de las aplicaciones que le permiten instalar paquetes, archivos y servicios en sus instancias EC2, con la simple descripción en la plantilla de CloudFormation. Para obtener información más detallada e instrucciones prácticas, consulte Proceso de arranque de aplicaciones a través de AWS CloudFormation.
CloudFormation también se puede integrar con Systems Manager para guiar y mantener las instalaciones de software con los documentos de automatización de Systems Manager.
¿Puedo utilizar AWS CloudFormation con Chef?
Sí. AWS CloudFormation se puede utilizar para dar arranque tanto al software Chef Server como Chef Client en sus instancias EC2. Para obtener información más detallada e instrucciones prácticas, consulte Integración de AWS CloudFormation con Chef.
¿Puedo utilizar AWS CloudFormation con Puppet?
Sí. AWS CloudFormation se puede utilizar para dar arranque tanto al software Puppet Master como Puppet Client en sus instancias EC2. Para obtener información más detallada e instrucciones, consulte el artículo Integración de AWS CloudFormation con Puppet.
¿Puedo utilizar AWS CloudFormation con Terraform?
Sí. CloudFormation puede arrancar su motor Terraform en sus instancias EC2 y puede utilizar los proveedores de recursos de Terraform para crear recursos en pilas, aprovechando la administración del estado de las pilas, las dependencias, la estabilización y la restauración.
¿AWS CloudFormation admite el etiquetado de Amazon EC2?
Sí. Los recursos de Amazon EC2 que admiten la característica de etiquetado también se pueden etiquetar en una plantilla de AWS. Los valores de etiqueta pueden hacer referencia a parámetros de plantilla, otros nombres de recurso, valores de atributos de recurso (por ejemplo, direcciones) o valores calculados mediante funciones sencillas (por ejemplo, una lista concatenada de cadenas). CloudFormation etiqueta automáticamente los volúmenes de Amazon EBS y las instancias de Amazon EC2 con el nombre de la pila de CloudFormation de la que forman parte.
¿Tengo acceso a la instancia de Amazon EC2 o a los campos de datos de usuario de la configuración de lanzamiento de Auto Scaling?
Sí. Puede utilizar funciones simples para concatenar los literales de cadena y los valores de atributo de los recursos de AWS, y pasarlos a los campos de datos de usuario en su plantilla. Consulte nuestras plantillas de muestra para obtener más información sobre estas funciones fáciles de usar.
¿Qué sucede cuando uno de los recursos de una pila no se puede crear correctamente?
De manera predeterminada, se activa la función “automatic rollback on error” (restauración automática cuando se produce un error). Esto le indicará a CloudFormation que solo debe crear o actualizar todos los recursos en su pila si todas las operaciones individuales tienen éxito. Si no es así, CloudFormation revierte la pila a la última configuración estable conocida. Resulta útil, por ejemplo, cuando supera accidentalmente su límite predeterminado de direcciones IP elásticas o no tiene acceso a una AMI de EC2 que intenta ejecutar. Esta característica permite confiar en el hecho de que las pilas se crean en su totalidad o no se crean, lo que simplifica la administración del sistema y las soluciones en capas creadas encima de CloudFormation.
¿La creación de pilas puede esperar a que mi aplicación se inicie?
Sí. Una de las opciones que ofrece CloudFormation es un recurso WaitCondition que actúa como barrera y bloquea la creación de otros recursos hasta que se reciba una señal de finalización de una fuente externa, como su aplicación o el sistema de administración. Otras opciones incluyen la creación de lógica personalizada con funciones de AWS Lambda.
¿Puedo guardar mis datos cuando se elimina una pila?
Sí. CloudFormation permite definir políticas de eliminación para los recursos de una plantilla. Puede especificar que se creen instantáneas para volúmenes de Amazon EBS o instancias de base de datos de Amazon RDS antes de su eliminación. También puede especificar que un recurso se conserve y no se elimine cuando se elimine la pila. Esto es útil para conservar los buckets de Amazon S3 cuando se elimine la pila.
¿Puedo crear pilas en una Virtual Private Cloud (VPC)?
Sí. CloudFormation admite la creación de VPC, subredes, gateways, tablas de rutas y ACL de red, así como de recursos, como IP elásticas, instancias de Amazon EC2, grupos de seguridad de EC2, grupos de Auto Scaling, balanceadores de carga elásticos, instancias de bases de datos de Amazon RDS y grupos de seguridad de Amazon RDS en una VPC.
¿Puedo actualizar mi pila después de que se haya creado?
Sí. Puede utilizar CloudFormation para modificar y actualizar los recursos de sus pilas existentes de manera controlada y previsible. Mediante el uso de plantillas para administrar los cambios de su pila, tiene la posibilidad de aplicar el control de la versión de su infraestructura de AWS de la misma forma que controla la versión del software que se ejecute en ella.
¿Cómo puedo participar en la comunidad de CloudFormation?
Únase a la comunidad de AWS CloudFormation GitHub.
¿Puedo administrar recursos creados fuera de CloudFormation?
Sí. Con la importación de recursos, puede incorporar un recurso existente a la administración de AWS CloudFormation mediante la importación de recurso.
Introducción
¿Cómo puedo registrarme en AWS CloudFormation?
Para registrarse en CloudFormation, haga clic en “Crear cuenta gratuita” en la página del producto de CloudFormation. Después de registrarse, consulte la documentación sobre CloudFormation, la cual incluye la Guía de introducción.
¿Por qué se me pide que verifique mi número de teléfono cuando me registro en AWS CloudFormation?
El registro en CloudFormation requiere que tenga un número de teléfono y una dirección de email válidos guardados en AWS por si alguna vez debemos contactarlo. Para verificar el número de teléfono solo necesita unos minutos: recibirá una llamada telefónica automática durante el proceso de registro y deberá especificar un número de PIN con el teclado telefónico.
¿Cómo puedo comenzar a usar la aplicación después de haberme inscrito?
La mejor manera de comenzar a utilizar CloudFormation es consultando la Guía de introducción, que forma parte de nuestra documentación técnica. En unos pocos minutos, podrá implementar y utilizar una de las plantillas de muestra que ilustran cómo crear la infraestructura necesaria para ejecutar aplicaciones, como WordPress. Existen varias otras fuentes de capacitación en CloudFormation, desde proveedores de planes de estudios de terceros hasta tutoriales y artículos en la web. Para obtener más información, consulte Recursos de CloudFormation.
¿Existen plantillas de muestra que pueda utilizar para probar AWS CloudFormation?
Sí, CloudFormation incluye plantillas de muestra que puede utilizar para poner a prueba la oferta y analizar su funcionalidad. Nuestras plantillas de muestra ilustran cómo interconectar y utilizar varios recursos de AWS de forma sincronizada, conforme a las prácticas recomendadas para redundancia de varias zonas de disponibilidad, escalabilidad y alarmas. Para comenzar, todo lo que debe hacer es ir a la consola de administración de AWS, hacer clic en “Crear una pila” y seguir los pasos para seleccionar y lanzar uno de los ejemplos. Luego de haber creado la pila, selecciónela en la consola y revise las pestañas Plantilla y Parámetro para observar los detalles del archivo de plantilla que se utilizó para crear la pila correspondiente. Las plantillas de ejemplo también están disponibles en GitHub.
Registro de AWS CloudFormation
¿Qué es el Registro de AWS CloudFormation?
El Registro de AWS CloudFormation es un servicio administrado que permite registrar, usar y descubrir los tipos de recursos de AWS y de terceros. Los tipos de recursos de terceros deben estar registrados antes de que puedan ser usados para proporcionar recursos con plantillas de AWS CloudFormation. Consulte el artículo Uso del registro de AWS CloudFormation en nuestra documentación para obtener detalles.
¿Qué son los tipos de recursos en AWS CloudFormation?
Un proveedor de recursos es un conjunto de tipos de recursos con especificaciones y controladores que controlan el ciclo de vida de los recursos subyacentes mediante operaciones de creación, lectura, actualización, eliminación y enumeración. Puede usar los proveedores de recursos para modelar y aprovisionar los recursos con CloudFormation. Por ejemplo, AWS::EC2::Instance es un tipo de recurso desde el proveedor de Amazon EC2. Puede usar este tipo para modelar y aprovisionar una instancia de Amazon EC2 con CloudFormation. Cuando usa el Registro de CloudFormation puede construir y usar los proveedores de recursos para modelar y aprovisionar recursos de terceros como la monitorización de SaaS, la productividad de equipo o los recursos de administración de código de origen.
¿Cuál es la diferencia entre los proveedores de recursos de AWS y de terceros?
La diferencia entre los proveedores de recursos de AWS y de terceros es su origen. Los proveedores de recurso de AWS se construyen y mantienen por Amazon y AWS para administrar recursos y servicios de AWS. Por ejemplo, tres proveedores de recursos de AWS lo ayudan a administrar recursos de Amazon DynamoDB, AWS Lambda y Amazon EC2. Estos proveedores contiene tipos de recursos como AWS::DynamoDB::Table, AWS::Lambda::Function, y AWS::EC2::Instance. Para una referencia completa, diríjase a su documentación.
Los proveedores de recurso de terceros se construyen por otra empresa, organización o comunidad de desarrolladores. Pueden ayudarlo a administrar recursos de AWS y de otros proveedores, como los recursos de aplicaciones de AWS y los servicios de software SaaS que no son de AWS, como herramientas de monitorización, productividad del equipo, administración de incidentes o control de versiones.
¿Qué es un esquema de recursos?
Un esquema de recursos define un tipo de recurso en un formato estructurado y consistente. Este esquema también se usa para validar la definición de un tipo de recurso. El esquema incluye todos los parámetros y los atributos admitidos para un tipo de recurso dado, así como también los permisos requeridos para crear el recurso con la menor cantidad de privilegios posible.
¿Cómo desarrollo tipos de recursos?
Use la CLI de AWS CloudFormation para crear proveedores de recursos. Comienza por definir un esquema declarativo simple para sus recursos, el cual incluye permisos requeridos y relaciones con otros recursos. Luego, usa la CLI de CloudFormation para generar el andamiaje para los controladores del ciclo de vida de los recursos (crear, leer, actualizar, eliminar y enumerar) junto con los apéndices de prueba para las pruebas de unidad e integración.
¿Cómo registro un proveedor de recurso?
Puede usar la CLI de AWS CloudFormation de código abierto o llamar directamente a RegisterType y las API de registro relacionadas que están disponibles a través de AWS SDK y AWS CLI. Para obtener más detalles, consulte el artículo Uso del registro de AWS CloudFormation en nuestra documentación. Los proveedores de recursos de AWS están disponibles listos para usar y no requieren ningún paso de registro adicional antes de su uso.
Registro público de AWS CloudFormation
¿Cómo se relaciona el registro público de CloudFormation con el registro de CloudFormation?
El registro de CloudFormation lanzado en noviembre de 2019 consistía en un listado privado que permitía a los clientes ampliar CloudFormation para su uso privado. El registro público amplía el registro de CloudFormation y agrega una ubicación central, pública y con capacidad de búsqueda para compartir, encontrar, consumir y administrar tipos de recursos y módulos <>, lo que hace mucho más fácil configurar y administrar la infraestructura y las aplicaciones de manera coherente tanto para AWS como para productos de terceros.
¿Tiene algún costo el uso de tipos de recursos de terceros disponibles en el registro público de CloudFormation?
Sí. Consulte la página de precios de CloudFormation.
¿Verifica AWS a los editores de extensiones de terceros en el registro público de CloudFormation?
Sí. En el registro público de CloudFormation, se tiene acceso a contenido seleccionado de editores verificados. En primer lugar, verificamos la identidad de cada editor mediante AWS Marketplace o terceros como GitHub y Bitbucket.
¿Qué es el registro público de AWS CloudFormation?
El registro público de CloudFormation es un nuevo catálogo de extensiones administrado y con capacidad de búsqueda que contiene tipos de recursos (lógica de aprovisionamiento) y módulos publicados por los socios de la red de socios de AWS (APN) y la comunidad de desarrolladores. Con el registro público de CloudFormation, ahora cualquiera puede publicar tipos de recursos y módulos en el registro. Los clientes pueden descubrir y utilizar fácilmente estos tipos de recursos y módulos publicados, lo que les elimina la necesidad de crearlos y darles mantenimiento.
¿Qué diferencia hay entre un recurso y un módulo?
Un tipo de recurso es un paquete de código que contiene una lógica de aprovisionamiento que permite administrar el ciclo de vida de un recurso, como una instancia Amazon EC2 o una tabla de Amazon DynamoDB, desde su creación hasta su eliminación, lo que abstrae las complejas interacciones de la API. Los tipos de recursos contienen un esquema que define la forma y las propiedades de un recurso, así como la lógica necesaria para aprovisionar un recurso, actualizarlo, eliminarlo y describirlo. Un ejemplo de tipo de recurso de terceros en el registro público de CloudFormation es un monitor de Datadog, un proyecto de MongoDB Atlas o un usuario de Atlassian Opsgenie, entre otros.
Los módulos son bloques de creación que se pueden reutilizar en varias plantillas de CloudFormation y se utilizan como un recurso nativo de CloudFormation. Estos bloques de creación pueden ser para un solo recurso, como prácticas recomendadas para definir una instancia de Amazon Elastic Compute Cloud (Amazon EC2) o pueden ser para múltiples recursos, para definir patrones comunes de arquitectura de aplicaciones.
¿Cómo puedo desarrollar y agregar mi propio recurso o módulo al registro de AWS CloudFormation?
Puede consultar este enlace para desarrollar y agregar su propio recurso o módulo al registro de AWS CloudFormation. Puede optar por publicarlo de forma privada o en el registro público.
Facturación
¿Cuánto cuesta AWS CloudFormation?
No se aplica ningún cargo adicional por usar AWS CloudFormation con proveedores de recursos en los siguientes espacios de nombres: AWS::*, Alexa::* y Custom::*. En caso que deba pagar por los recursos de AWS, (como instancias Amazon EC2, balanceadores de carga de Elastic Load Balancing, etc.), creados con la utilización de AWS CloudFormation 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.
Cuando utiliza proveedores de recursos con AWS CloudFormation fuera de los espacios de nombres mencionados anteriormente, incurre en cargos por operación del controlador. Las operaciones del controlador son acciones de creación, actualización, eliminación, lectura o enumeración en un recurso. Para más información, consulte nuestra página de precios.
¿Se me cobrarán los recursos cancelados durante un intento fallido de creación de pila?
Sí. Los cargos correspondientes a los recursos de AWS creados durante la creación de instancias a partir de una plantilla se aplicarán independientemente de que se haya creado de manera correcta la pila en su totalidad.
Límites y restricciones
¿Hay límites en el número de plantillas o pilas?
Para obtener más información sobre el número máximo de pilas de AWS CloudFormation que se pueden crear, consulte Pilas en Cuotas de AWS CloudFormation. Si desea un límite más alto, complete la solicitud que se incluye aquí y recibirá nuestra respuesta en un plazo de dos días laborables.
¿Hay límites en el tamaño de los campos de descripción?
Para obtener más información, consulte Descripción de la plantilla en cuotas de AWS CloudFormation y Parámetros, Recursos y Salidas en la documentación de AWS.
¿Hay límites en el número de parámetros o salidas de una plantilla?
Para obtener más información sobre el número de parámetros y resultados que puede especificar en una plantilla, consulte las secciones de Parámetros y Salidas de Cuotas de AWS CloudFormation.
¿Hay límites en la cantidad de recurso que se crean de una pila?
Para obtener más información sobre el número de recursos que puede declarar en una plantilla, consulte Recursos en Cuotas de AWS CloudFormation. La creación de plantillas y pilas más pequeñas y la modularización de su aplicación entre múltiples pilas es la práctica recomendada para minimizar el radio de alcance de los cambios de sus recursos y para solucionar problemas con múltiples dependencias de recursos de manera más rápida, dado que, con grupos de recursos más pequeños, habrá menos dependencias complejas que con los grupos más grandes.
Regiones y puntos de enlace
¿Cuáles son los puntos de acceso al servicio AWS CloudFormation de cada región?
Los puntos de conexión de cada región se encuentran disponibles en los puntos de conexión de AWS CloudFormation en la documentación técnica.
¿En qué regiones está disponible AWS CloudFormation actualmente?
Consulte Productos y servicios regionales para obtener más información sobre la disponibilidad por región de CloudFormation.