10.2 C
Madrid
martes, marzo 4, 2025

Automatice el aprovisionamiento y la configuración de temas mediante Terraform con Amazon MSK


A medida que las organizaciones implementan Streaming administrado por Amazon para Apache Kafka (Amazon MSK) en múltiples casos de uso, la gestión handbook de las configuraciones de temas puede ser un desafío. Esto puede dar lugar a varios problemas:

  • Ineficacia – La configuración handbook requiere mucho tiempo y es propensa a errores, especialmente para implementaciones grandes. Mantener la coherencia entre múltiples configuraciones puede resultar difícil. Para evitar esto, los administradores de Kafka suelen establecer la propiedad create.matters.allow en los intermediarios, lo que provoca ineficiencia en el funcionamiento del clúster.
  • error humano – La configuración handbook aumenta el riesgo de errores que pueden interrumpir el flujo de datos y afectar las aplicaciones que dependen de Amazon MSK.
  • Desafíos de escalabilidad – Escalar un entorno de Amazon MSK con configuración handbook es engorroso. Agregar nuevos temas o modificar los existentes requiere intervención handbook, lo que dificulta la agilidad.

Estos desafíos resaltan la necesidad de un enfoque más automatizado y sólido para la gestión de la configuración de temas de MSK.

En esta publicación, abordamos este problema utilizando Terraform para optimizar la configuración de temas MSK. Esta solución admite clústeres MSK tanto aprovisionados como sin servidor.

Descripción normal de la solución

Los clientes quieren una mejor manera de gestionar la sobrecarga de los temas y sus configuraciones. Manejar manualmente las configuraciones de temas puede ser engorroso y propenso a errores, lo que dificulta el seguimiento de los cambios y actualizaciones.

Para abordar estos desafíos, puede utilizar Terraformaruna herramienta de infraestructura como código (IaC) de HashiCorp. Terraform le permite gestionar y aprovisionar infraestructura de forma declarativa. Utiliza archivos de configuración legibles por humanos escritos en el lenguaje de configuración HashiCorp (HCL) para definir el estado deseado de los recursos de infraestructura. Estos recursos pueden abarcar máquinas virtuales, redes, bases de datos y una amplia gama de ofertas específicas de proveedores de nube.

Terraform ofrece una solución convincente a los desafíos de la configuración handbook de temas de Kafka. Terraform le permite definir y gestionar sus temas de Kafka a través de código. Este enfoque proporciona varios beneficios clave:

  • Automatización – Terraform automatiza la creación, modificación y eliminación de temas MSK.
  • Consistencia y repetibilidad – Las configuraciones de Terraform proporcionan configuraciones y estructuras de temas coherentes en todo el entorno de Amazon MSK. Esto simplifica la gestión y cut back la probabilidad de cambios en la configuración.
  • Escalabilidad – Terraform le permite aprovisionar y administrar una gran cantidad de temas de MSK, lo que facilita el crecimiento de su entorno de Amazon MSK.
  • Management de versiones – Las configuraciones de Terraform se almacenan en sistemas de management de versiones, lo que le permite realizar un seguimiento de los cambios, revertirlos si es necesario y colaborar de forma eficaz en su infraestructura de Amazon MSK.

Al utilizar Terraform para la gestión de configuración de temas de MSK, puede optimizar sus operaciones, minimizar errores y tener un entorno de Amazon MSK sólido y escalable.

En esta publicación, proporcionamos una guía completa para usar Terraform para administrar configuraciones de Amazon MSK. Exploramos el proceso de instalación de Terraform en Nube informática elástica de Amazon (Amazon EC2), definiendo y descentralizando configuraciones de temas, e implementando y actualizando configuraciones de manera automatizada.

Requisitos previos

Antes de continuar con la solución, asegúrese de tener los siguientes recursos y acceso:

Si se asegura de tener estos requisitos previos implementados, estará listo para optimizar las configuraciones de sus temas con Terraform.

Instale Terraform en su máquina cliente

Cuando su clúster y su máquina cliente estén listos, conecte SSH a su máquina cliente (Amazon EC2) e instale Terraform.

  1. Ejecute los siguientes comandos para instalar Terraform:
    sudo yum replace -y
    sudo yum set up -y yum-utils shadow-utils
    sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/AmazonLinux/hashicorp.repo
    sudo yum -y set up terraform

  2. Ejecute el siguiente comando para verificar la instalación:

Esto indica que la instalación de Terraform se realizó correctamente y que está listo para automatizar la configuración de temas de MSK.

Aprovisionar un tema MSK usando Terraform

Para aprovisionar el tema MSK, full los siguientes pasos:

  1. Crea un nuevo archivo llamado essential.tf y copie el siguiente código en este archivo, reemplazando la información BOOTSTRAP_SERVERS y AWS_REGION con los detalles de su clúster. Para obtener instrucciones sobre cómo recuperar el bootstrap_servers información para la autenticación IAM desde su clúster MSK, consulte Obtener los agentes de arranque para un clúster de Amazon MSK. Este script es común para Amazon MSK aprovisionado y MSK Serverless.
    terraform {
    required_providers {
    kafka = {
    supply = "Mongey/kafka" }}}
    supplier "kafka" {
    bootstrap_servers = ({BOOTSTRAP_SERVERS})
    tls_enabled       = true
    sasl_mechanism    = "aws-iam"
    sasl_aws_region   ={AWS_REGION}
    sasl_aws_profile  = "dev" }
    useful resource "kafka_topic" "sampleTopic" {
    title               = "sampleTopic"
    replication_factor = 1
    partitions         = 50 }

  2. Agregue puntos finales de servidores de arranque de IAM en un formato de lista separada por comas:
    BOOTSTRAP_SERVERS = ("b-2.mskcluster…. ","b-3.mskcluster…. ","b-1.mskcluster…. ")

  3. Ejecute el comando terraform init para inicializar Terraform y descargar los proveedores necesarios.

El terraform init El comando inicializa un directorio de trabajo que contiene archivos de configuración de Terraform (essential.tf). Este es el primer comando que se debe ejecutar después de escribir una nueva configuración de Terraform.

  1. Ejecute el comando terraform plan para revisar el plan de ejecución.

Este comando muestra los cambios que Terraform realizará en la infraestructura según la configuración proporcionada. Este paso es opcional pero a menudo se utiliza como vista previa de los cambios que realizará Terraform.

  1. Si el plan parece correcto, ejecute el comando terraform apply para aplicar la configuración.
  2. Cuando se le solicite confirmación antes de continuar, ingrese sure.

El terraform apply El comando ejecuta las acciones propuestas en un Terraform plan. Terraform creará el sampleTopic tema en su clúster MSK.

  1. después del terraform apply El comando está completo, verifique que la infraestructura se haya creado con la ayuda de la utilidad kafka-topics.sh:
    kafka/bin/kafka-topics.sh 
    --bootstrap-server "b-1…..amazonaws.com:9098" 
    --command-config ./kafka/bin/consumer.properties  
    --list

Puede utilizar la herramienta kafka-toipcs.sh con el --list opción para recuperar una lista de temas asociados con su clúster MSK. Para obtener más información, consulte la crear documentación temática.

Actualice la configuración del tema MSK usando Terraform

Para actualizar la configuración del tema MSK, supongamos que queremos cambiar el número de particiones de 50 a ten en nuestro tema. Necesitamos realizar los siguientes pasos:

  1. Verifique el número de particiones en el tema usando el --describe dominio:
    kafka/bin/kafka-topics.sh 
    --bootstrap-server "b-1…...amazonaws.com:9098" 
    --command-config ./kafka/bin/consumer.properties  
    --describe 
    --topic sampleTopic

Este comando mostrará 50 particiones en el sampleTopic tema.

  1. Modificar el archivo Terraform essential.tf y cambie el valor del parámetro de particiones a ten:
    useful resource "kafka_topic" "sampleTopic" {
    title               = " sampleTopic "
    replication_factor = 1
    partitions         = 10 }

  2. Ejecute el comando terraform plan para revisar el plan de ejecución.

  1. Si el plan muestra los cambios, ejecute el comando terraform apply para aplicar la configuración.
  2. Cuando se le solicite confirmación antes de continuar, ingrese sure.

Terraform lanzará y recreará el sampleTopic tema con la configuración modificada.

  1. Verifique el número modificado de particiones en el tema y vuelva a ejecutar el --describe dominio:
    kafka/bin/kafka-topics.sh 
    --bootstrap-server "b-1…...amazonaws.com:9098" 
    --command-config ./kafka/bin/consumer.properties  
    --describe --topic sampleTopic

Ahora, este comando mostrará 10 particiones en el sampleTopic tema.

Eliminar el tema de MSK usando Terraform

Cuando ya no necesite la infraestructura, puede eliminar todos los recursos creados por su archivo Terraform.

  1. Ejecute el comando terraform destroy para eliminar el tema.
  2. Cuando se le solicite confirmación antes de continuar, ingrese sure.

Terraform eliminará el sampleTopic tema de su clúster MSK.

  1. Para verificar, vuelva a ejecutar el --list dominio:
    kafka/bin/kafka-topics.sh 
    --bootstrap-server "b-1…..amazonaws.com:9098" 
    --command-config ./kafka/bin/consumer.properties  
    --list

Ahora, este comando no mostrará el sampleTopic tema.

Conclusión

En esta publicación, abordamos los desafíos comunes asociados con la gestión handbook de la configuración de temas de MSK y presentamos una solución sólida basada en Terraform. El uso de Terraform para el aprovisionamiento y la configuración automatizados de temas agiliza sus procesos, fomenta la escalabilidad y mejora la flexibilidad. Además, facilita implementaciones automatizadas y gestión centralizada.

Lo alentamos a explorar Terraform como un medio para optimizar las configuraciones de Amazon MSK y desbloquear mayores eficiencias dentro de sus canales de transmisión de datos.


Sobre el autor

Vijay Kardile es gerente técnico senior de cuentas con soporte empresarial, India. Con más de dos décadas de experiencia en Ingeniería y Consultoría de TI, se especializa en servicios de Analytics, particularmente Amazon EMR y Amazon MSK. Ha empoderado a numerosos clientes empresariales al facilitarles la adopción de diversos servicios de AWS y ofrecerles orientación experta para lograr la excelencia operativa.

Related Articles

DEJA UNA RESPUESTA

Por favor ingrese su comentario!
Por favor ingrese su nombre aquí

Stay Connected

0SeguidoresSeguir
0SuscriptoresSuscribirte
- Advertisement -spot_img

Latest Articles