Introducción a las plantillas de AWS CloudFormation

AWS CloudFormation es un servicio que gestiona y configura diferentes recursos de AWS de manera que se puede reducir el tiempo necesario para realizarlos y aumentar el tiempo que se enfoca en diferentes aplicaciones en Amazon Web Services. Para lograr esto, se utiliza una plantilla que contiene todos los recursos que el usuario necesita. Estas plantillas se conocen como plantillas de CloudFormation. Con la ayuda de estas plantillas, AWS CloudFormation se encarga de configurar y aprovisionar esos recursos para el usuario. La estructura y el funcionamiento de la plantilla se describen en la siguiente sección.

Plantillas de CloudFormation

La plantilla de Amazon CloudFormation es un archivo de texto formateado en lenguaje YAML o JSON. Estas plantillas se pueden crear con la ayuda de una consola o escribiendo un script manualmente. En la consola, los recursos serán arrastrados y soltados por el usuario. Una vez que se haya completado, se generará automáticamente un script JSON o YAML y el usuario puede editarlo si lo desea. Para modificar o editar la plantilla, el usuario puede usar cualquier herramienta de editor de texto o diseñador de AWS CloudFormation. Para escribir, se debe seguir un cierto formato con los siguientes objetos. Los principales objetos de la plantilla CloudFormation se describen a continuación.

1. Formato: aquí se define la versión de la plantilla de AWS CloudFormation.

Ejemplo:

(
"AWSTemplateFormatVersion": "2019-09-09"
)

2. Descripción: Cualquier comentario o descripción sobre la plantilla se puede anotar en este objeto.

Ejemplo:

(
"Description": "An Amazon Redshift cluster is created within a Virtual Private Cloud”
)

3. Metadatos: se define más información sobre la plantilla en lenguaje JSON o YAML.

Ejemplo:

(
"Metadata":
(
"AWS::CloudFormation::Interface": ()
)

4. Parámetros: la personalización de las plantillas se puede hacer usando los parámetros. Es dando valores personalizados a la plantilla cuando se crea o actualiza la pila.

Ejemplo:

"Parameters" :
(
"KeyName": ()
"InstanceType" : ()
"DBName" : ()
"DBUser" : ()
"DBPassword" : ()
)

5. Asignaciones: en función de un valor en el parámetro condicional, el usuario podrá asignarle la clave. Además, desde un mapa, los usuarios pueden recuperar valores utilizando una función intrínseca "Fn :: FindInMap".

Ejemplo:

(
"AWSInstanceType2Arch" :
(
"t1.micro" : ( "Arch" : "HVM64" ),
.
.
"t2.large" : ( "Arch" : "HVM64" ),
"m1.small" : ( "Arch" : "HVM64" ),
.
"m1.large" : ( "Arch" : "HVM64" )
)

6. Recursos: en la sección Recursos de la plantilla de AWS CloudFormation, es posible declarar recursos como el bucket de AWS Simple Storage Services (S3), AWS Lambda. Estos recursos también se pueden crear y especificar en la pila.

Ejemplo:

"Resources" :
(
"WebServerSecurityGroup" :
(
"Type" : " ",
"Properties" :
(
"GroupDescription" : "",
"SecurityGroupIngress" :() )
)
)

7. Salida: la sección de salida contiene los valores que deben importarse a otras pilas o los que se devuelven mientras ve sus propias propiedades de pila.

Ejemplo:

"Outputs" :
(
"Description" : "”
“Value”: “”
)
)

Ahora, combinemos todas estas secciones y veamos cómo se verá una plantilla.

Plantilla de muestra

(
"AWSTemplateFormatVersion": "2019-09-09"
"Description": "An Amazon Redshift cluster is created within a Virtual Private Cloud”
"Metadata": (
"AWS::CloudFormation::Interface": ()
)
"Parameters" : (
"KeyName": ()
"InstanceType" : ()
"DBName" : ()
"DBUser" : ()
"DBPassword" : ()
)
"Mappings" :
(
"AWSInstanceType2Arch" :
(
"t1.micro" : ( "Arch" : "HVM64" ),
.
.
"t2.large" : ( "Arch" : "HVM64" ),
"m1.small" : ( "Arch" : "HVM64" ),
.
"m1.large" : ( "Arch" : "HVM64" )
)
"Resources" :
(
"WebServerSecurityGroup" :
(
"Type" : " ",
"Properties" :
(
"GroupDescription" : "",
"SecurityGroupIngress" :() )
)
)
"Outputs" :
(
"Description" : "”
“Value”: “”
)
)

Una vez que se crea la plantilla, el usuario puede cargar la plantilla en la pila.

Configurar la pila de CloudFormation

Una pila en AWS es una colección de recursos que puede administrar una sola unidad. Los recursos se pueden crear, eliminar y actualizar creando, eliminando y actualizando pilas. Ahora, veamos cómo estamos lanzando esta pila y usemos la plantilla CloudFormation dentro de ella.

1. Registre la cuenta de AWS si no tiene una. Si ya está presente, inicie sesión con las credenciales.

2. Abra la consola de AWS CloudFormation utilizando la URL https://console.aws.amazon.com/cloudformation.

3. Si tiene una nueva cuenta de CloudFormation, haga clic en Crear nueva pila. De lo contrario, crear pila.

4. Seleccione Cargar una plantilla en Amazon S3 en Elegir una plantilla. Cargue su plantilla seleccionando Elegir archivo o proporcionando una URL.

5. Tenga en cuenta que si la plantilla de CloudFormation se almacena en el bucket de S3, el usuario debe tener acceso a esa y las regiones de Bucket and Stack de S3 deben ser las mismas.

6. Dé un nombre de pila apropiado en la sección Especificar detalles a su pila de CloudFormation.

7. Proporcione el nombre del par de claves EC2 en KeyName

8. Asegúrese de que EC2 Keypair y Stack estén en la misma región.

9. Haga clic en Siguiente.

10. Aparece una página con algunos campos de entrada opcionales como etiqueta. Las etiquetas ayudan a identificar las pilas, ya que contiene pares clave-valor. Pero, ahora no estamos creando ninguna etiqueta.

11. Revise los detalles y seleccione Crear.

12. El progreso de la creación de la Pila se puede ver ahora en la pestaña Eventos. Si la creación de la pila está en curso, se mostrará el estado CREATE_IN_PROGRESS y si se completa la creación, se mostrará el estado CREATE_COMPLETED.

13. Una vez que se crea la Pila, el usuario puede comenzar a usar los recursos. Para evitar cargos adicionales por servicios no deseados, se recomienda eliminar las pilas y sus recursos.

Para eliminar la pila, se pueden usar los siguientes pasos.

  • Vaya a la consola de CloudFormation y seleccione la pila que ha creado.
  • Haz clic en Eliminar pila.
  • Haga clic en Sí, Eliminar cuando aparezca el mensaje de confirmación.

Conclusión

CloudFormation Templates ayuda a aprovisionar y configurar los recursos para el usuario, de modo que se puede disminuir el tiempo necesario para realizar operaciones en múltiples recursos y se puede aumentar el enfoque en diferentes aplicaciones que están en Amazon Web Services. La creación y el uso de estas plantillas se analizan en la sección anterior.

Artículo recomendado

Esta es una guía de las plantillas de AWS CloudFormation. Aquí discutimos la introducción y las diferentes plantillas de CloudFormation junto con ejemplos. También puede consultar nuestros otros artículos sugeridos para obtener más información:

  1. Arquitectura de AWS
  2. Servicios de AWS
  3. ¿Qué es AWS CloudFront?
  4. Preguntas de la entrevista de AWS
  5. Servicios de almacenamiento de AWS
  6. Competidores de AWS | Los 7 principales competidores de AWS con características
  7. Nube Privada vs Nube Pública
  8. ¿Qué es la nube privada?

Categoría: