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:
- Para simplificar la configuración, utilice el proporcionado Formación en la montón de AWS plantilla. Esta plantilla creará el clúster aprovisionado de Amazon MSK necesario y los bienes necesarios para esta publicación. Puede crear un clúster MSK Serverless mediante la consola de Amazon MSK y utilizarlo en esta decisión. Esta es una plantilla de muestra, no cinta para producción, y Administración de paso e identidad de AWS (IAM) las políticas deben implementarse utilizando las mejores prácticas y el principio de privilegio exiguo. Para más detalles, ver Comience a utilizar las políticas administradas de AWS y avance en torno a permisos con privilegios mínimos. Se creará una instancia EC2 como parte de esta plantilla. El clúster MSK y la instancia EC2 se crearán en una única montón privada aparente (VPC); sin confiscación, puede instalar Terraform en una cuenta diferente o en una VPC diferente. Para más detalles, ver Conecte las aplicaciones cliente de Kafka de forma segura a su clúster de Amazon MSK desde diferentes VPC y cuentas de AWS.
- Para esta publicación, utilizamos la última Terraformar interpretación (1.10.x) y Complementos de Terraform: proveedor de Mongey/Kafka. En Terraform, los complementos son ejecutables binarios responsables de implementar tipos y proveedores de bienes. Los complementos se instalan automáticamente cuando inicializamos una configuración de Terraform usando terraform init
- Necesita paso a una cuenta de AWS con permisos suficientes para crear y establecer bienes, incluidos roles de IAM y clústeres de MSK. Para obtener más información, consulte control de paso IAM.
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.
- Ejecute los siguientes comandos para instalar Terraform:
- 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:
- 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 elbootstrap_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. - Agregue puntos finales de servidores de comienzo de IAM en un formato de cinta separada por comas:
- 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.
- 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.
- Si el plan parece correcto, ejecute el comando
terraform apply
para aplicar la configuración. - 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.
- Posteriormente del
terraform apply
El comando está completo, verifique que la infraestructura se haya creado con la ayuda de la utilidad kafka-topics.sh:
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:
- Verifique el número de particiones en el tema usando el
--describe
dominio:
Este comando mostrará 50 particiones en el sampleTopic
tema.
- Modificar el archivo Terraform
main.tf
y cambie el valía del parámetro de particiones a 10: - Ejecute el comando
terraform plan
para revisar el plan de ejecución.
- Si el plan muestra los cambios, ejecute el comando
terraform apply
para aplicar la configuración. - Cuando se le solicite confirmación ayer de continuar, ingrese
yes
.
Terraform lanzará y recreará el sampleTopic
tema con la configuración modificada.
- Verifique el número modificado de particiones en el tema y vuelva a ejecutar el
--describe
dominio:
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.
- Ejecute el comando
terraform destroy
para eliminar el tema. - Cuando se le solicite confirmación ayer de continuar, ingrese
yes
.
Terraform eliminará el sampleTopic
tema de su clúster MSK.
- Para revisar, vuelva a ejecutar el
--list
dominio:
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.