Despliegue de Kinesis con AWS CloudFormation
Clase 16 de 52 • Curso de Big Data en AWS
Resumen
¿Cómo desplegar AWS Kinesis con CloudFormation?
Para quienes buscan automatizar y gestionar recursos en AWS de manera eficiente, utilizar CloudFormation es una estrategia ganadora. CloudFormation ofrece la posibilidad de manejar infraestructuras a través de código, facilitando el despliegue de servicios como AWS Kinesis de forma automatizada. Aquí exploraremos cómo se lleva a cabo este proceso paso a paso.
¿Qué es CloudFormation y cómo lo utilizamos para Kinesis?
CloudFormation es un servicio de AWS que permite crear y gestionar un conjunto de recursos en la nube mediante plantillas en formato YAML o JSON. Es un enfoque que trata la infraestructura como código, permitiendo configuraciones precisas y repetitivas en la nube. Utilizando CloudFormation, podemos definir y desplegar una arquitectura completa, como Kinesis, a partir de un solo script.
Para desplegar un Kinesis Stream, comenzamos con una plantilla maestra escrita en YAML, donde definimos los parámetros y recursos necesarios:
- Environment Name: Especifica el entorno donde se desplegará Kinesis.
- Kinesis Shards Number: Define la cantidad de shards que queremos crear; por defecto es uno, pero se puede ajustar según necesidades individuales.
¿Cómo estructuramos las plantillas de CloudFormation?
Las plantillas se dividen en dos partes principales: la plantilla maestra y la plantilla de distribución de Kinesis.
-
Plantilla maestra: Define los parámetros básicos como el environment y los shards. Esta plantilla enlaza con una URL que contiene otra plantilla YAML más específica, dedicada al despliegue de Kinesis.
-
Plantilla de Kinesis Distribution: Recibe parámetros de la plantilla maestra y los utiliza para configurar y crear el Kinesis Stream con las propiedades siguientes:
- Nombre del entorno: Añadido al final del recurso para facilitar su identificación.
- Tiempo de retención: Por defecto, se establece en 24 horas.
- Shards: Utiliza el número especificado en la plantilla maestra.
¿Cómo almacenamos y desplegamos las plantillas?
Para manejar efectivamente las plantillas, las almacenamos en un bucket de S3, desde donde CloudFormation las accede durante el proceso de despliegue. El procedimiento es el siguiente:
-
Crear un bucket en S3: Este bucket almacenará las plantillas. Por ejemplo, un nombre para el bucket podría ser
CFN-Kinesis-Lab
. -
Cargar las plantillas en el bucket: Subimos la plantilla maestra y la de Kinesis Distribution al bucket recién creado.
¿Cómo se ejecuta el despliegue desde CloudFormation?
Una vez las plantillas están en S3, procedemos al despliegue mediante CloudFormation:
- Buscamos el servicio de CloudFormation en la consola de AWS.
- Creamos un nuevo stack, especificando la ruta de la plantilla maestra almacenada en S3.
- Configuramos el stack: Asignamos un nombre (por ejemplo,
Kinesis Lab Platzi
), seleccionamos el environment (como staging) y el número de shards. - Tras completar el proceso, CloudFormation empieza a crear los recursos, y podemos monitorizar el progreso hasta que el estatus indica "create complete".
¿Qué ventajas ofrece este método de despliegue?
El uso de CloudFormation para desplegar servicios como Kinesis tiene múltiples beneficios:
- Control de versiones: Las plantillas pueden estar versionadas y controladas en sistemas como GitHub.
- Reutilización: Las plantillas pueden reutilizarse mediante nested stacks, permitiendo la creación modular de infraestructuras.
- Portabilidad: Las arquitecturas definidas pueden desplegarse fácilmente en diferentes regiones o cuentas de AWS simplemente replicando las plantillas.
Este enfoque permite gestionar arquitecturas complejas y optimiza la manera en que se realizan los despliegues, alineando la infraestructura con las prácticas de DevOps al tratarla como código. Así, te invitamos a seguir explorando y desarrollando tus habilidades con AWS para maximizar el potencial de tus proyectos.