Athrun Data Intelligence


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

  • Ineficacia – La configuración manual requiere mucho tiempo y es propensa a errores, especialmente para implementaciones grandes. Surtir la coherencia entre múltiples configuraciones puede resultar difícil. Para evitar esto, los administradores de Kafka a menudo configuran la propiedad create.topics.enable en los intermediarios, lo que genera ineficiencia en la operación del clúster.
  • error humano – La configuración manual aumenta el peligro de errores que pueden interrumpir el flujo de datos y afectar las aplicaciones que dependen de Amazon MSK.
  • Desafíos de escalabilidad – Ascender un entorno de Amazon MSK con configuración manual es engorroso. Añadir nuevos temas o modificar los existentes requiere intervención manual, lo que dificulta la agilidad.

Estos desafíos resaltan la penuria de un enfoque más automatizado y sólido para la diligencia 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 decisión admite clústeres MSK tanto aprovisionados como sin servidor.

Descripción universal de la decisión

Los clientes quieren una mejor forma de resolver 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 encarar estos desafíos, puede utilizar Terraformaruna aparejo de infraestructura como código (IaC) de HashiCorp. Terraform le permite resolver y aprovisionar infraestructura de forma declarativa. Utiliza archivos de configuración legibles por humanos escritos en el jerga de configuración HashiCorp (HCL) para precisar el estado deseado de los bienes de infraestructura. Estos bienes pueden ocupar máquinas virtuales, redes, bases de datos y una amplia escala de ofertas específicas de proveedores de montón.

Terraform ofrece una decisión convincente a los desafíos de la configuración manual de temas de Kafka. Terraform le permite precisar y resolver sus temas de Kafka a través de código. Este enfoque proporciona varios beneficios esencia:

  • Automatización – Terraform automatiza la creación, modificación y matanza 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 diligencia y reduce la probabilidad de cambios en la configuración.
  • Escalabilidad – Terraform le permite aprovisionar y establecer una gran cantidad de temas de MSK, lo que facilita el crecimiento de su entorno de Amazon MSK.
  • Control de versiones – Las configuraciones de Terraform se almacenan en sistemas de control 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 diligencia 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 rumbo completa para usar Terraform para establecer configuraciones de Amazon MSK. Exploramos el proceso de instalación de Terraform en Nimbo informática elástica de Amazon (Amazon EC2), definiendo y descentralizando configuraciones de temas, e implementando y actualizando configuraciones de forma automatizada.

Requisitos previos

Antiguamente de continuar con la decisión, asegúrese de tener los siguientes bienes y paso:

Si se asegura de tener estos requisitos previos implementados, estará diligente 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 update -y
    sudo yum install -y yum-utils shadow-utils
    sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/AmazonLinux/hashicorp.repo
    sudo yum -y install terraform

  2. Ejecute el ulterior comando para revisar la instalación:

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

Aprovisionar un tema MSK usando Terraform

Para aprovisionar el tema MSK, complete los siguientes pasos:

  1. Crea un nuevo archivo llamado main.tf y copie el ulterior 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 comienzo para un clúster de Amazon MSK. Este script es global para Amazon MSK aprovisionado y MSK Serverless.
    terraform {
    required_providers {
    kafka = {
    source = "Mongey/kafka" }}}
    provider "kafka" {
    bootstrap_servers = ({BOOTSTRAP_SERVERS})
    tls_enabled       = true
    sasl_mechanism    = "aws-iam"
    sasl_aws_region   ={AWS_REGION}
    sasl_aws_profile  = "dev" }
    resource "kafka_topic" "sampleTopic" {
    name               = "sampleTopic"
    replication_factor = 1
    partitions         = 50 }

  2. Agregue puntos finales de servidores de comienzo de IAM en un formato de cinta 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 (main.tf). Este es el primer comando que se debe ejecutar luego 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 panorámica 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 ayer de continuar, ingrese yes.

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

  1. Posteriormente 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/client.properties  
    --list

Puede utilizar la aparejo kafka-toipcs.sh con el --list opción para recuperar una cinta 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 modernizar la configuración del tema MSK, supongamos que queremos cambiar el número de particiones de 50 a 10 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/client.properties  
    --describe 
    --topic sampleTopic

Este comando mostrará 50 particiones en el sampleTopic tema.

  1. Modificar el archivo Terraform main.tf y cambie el valía del parámetro de particiones a 10:
    resource "kafka_topic" "sampleTopic" {
    name               = " 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 ayer de continuar, ingrese yes.

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/client.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 bienes creados por su archivo Terraform.

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

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

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

Ahora, este comando no mostrará el sampleTopic tema.

Conclusión

En esta publicación, abordamos los desafíos comunes asociados con la diligencia manual de la configuración de temas de MSK y presentamos una decisió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 mejoría la flexibilidad. Encima, facilita implementaciones automatizadas y diligencia centralizada.

Le recomendamos que explore Terraform como un medio para optimizar las configuraciones de Amazon MSK y desbloquear mayores eficiencias en el interior de sus canales de transmisión de datos.


Sobre el autor

Vijay Kardile es director 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 acogida de diversos servicios de AWS y ofrecerles orientación experta para conquistar la excelencia operativa.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *