Despliegue de Kinesis con AWS CloudFormation

Clase 16 de 52Curso 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.

  1. 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.

  2. 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:

  1. Crear un bucket en S3: Este bucket almacenará las plantillas. Por ejemplo, un nombre para el bucket podría ser CFN-Kinesis-Lab.

  2. 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:

  1. Buscamos el servicio de CloudFormation en la consola de AWS.
  2. Creamos un nuevo stack, especificando la ruta de la plantilla maestra almacenada en S3.
  3. Configuramos el stack: Asignamos un nombre (por ejemplo, Kinesis Lab Platzi), seleccionamos el environment (como staging) y el número de shards.
  4. 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.