Agente de Kinesis es una aplicación de software Java independiente que ofrece una forma sencilla de recopilar y enviar datos a Secuencias de datos de Amazon Kinesis y Manguera de bomberos de datos de Amazon Kinesis. El agente monitorea continuamente un conjunto de archivos y envía nuevos datos al destino deseado. El agente maneja la rotación de archivos, los puntos de control y los reintentos en caso de falla. Entrega todos sus datos de una manera confiable, oportuna y sencilla. También emite Reloj en la nube de Amazon métricas para ayudarle a monitorear y solucionar mejor el proceso de transmisión.
Esta publicación describe los pasos para enviar datos desde una aplicación en contenedores a Kinesis Data Firehose mediante Kinesis Agent. Más específicamente, mostramos cómo ejecutar Kinesis Agent como un contenedor complementario para una aplicación que se ejecuta en Servicio de contenedor elástico de Amazon (Amazon ECS). Una vez que los datos estén en Kinesis Data Firehose, se pueden enviar a cualquier proveedor compatible. destino, Tales como Servicio de almacenamiento simple de Amazon (Amazon S3).
Para presentar los puntos clave necesarios para esta configuración, asumimos que está familiarizado con Amazon ECS y que trabaja con contenedores. También evitamos los detalles de implementación y el proceso de empaquetado de nuestra aplicación de generación de datos de prueba, denominada productor.
Resumen de la solución
Como se muestra en la siguiente figura, configuramos un contenedor de Kinesis Agent como un complemento que puede leer archivos creados por el contenedor productor. En este caso, los contenedores del productor y del Kinesis Agent comparten datos a través de un enlace de montaje en Amazon ECS.
Requisitos previos
Debe cumplir los siguientes requisitos previos para completar con éxito esta tarea:
Con estos requisitos previos implementados, puede comenzar el siguiente paso para empaquetar un Kinesis Agent y la configuración de agente deseada como un contenedor en su máquina de desarrollo local.
Crear un archivo de configuración del Agente Kinesis
Usamos la Archivo de configuración del agente Kinesis para configurar el origen y el destino, entre otras configuraciones de transferencia de datos. El siguiente código utiliza la configuración mínima requerida para leer el contenido de los archivos que coinciden /var/log/producer/*.log
y publicarlos en un flujo de entrega de Kinesis Data Firehose llamado kinesis-agent-demo
:
Crear una imagen de contenedor para Kinesis Agent
Para implementar Kinesis Agent como complemento en Amazon ECS, primero debe empaquetarlo como una imagen de contenedor. El contenedor debe tener Kinesis Agent, which
y find
binarios y el archivo de configuración de Kinesis Agent que preparó anteriormente. Su punto de entrada debe configurarse utilizando el start-aws-kinesis-agent
guion. Este comando se instala cuando ejecuta el yum install aws-kinesis-agent
paso. El Dockerfile resultante debería tener el siguiente aspecto:
Ejecute el docker build
comando para construir este contenedor:
Una vez creada la imagen, se debe enviar a un registro de contenedor como Amazon ECR para que pueda hacer referencia a ella en la siguiente sección.
Cree una definición de tarea de ECS con Kinesis Agent y el contenedor de la aplicación
Ahora que tiene Kinesis Agent empaquetado como una imagen de contenedor, puede usarlo en las definiciones de tareas de ECS para ejecutarlo como sidecar. Para hacer eso, crea una definición de tarea ECS con el contenedor de su aplicación (llamado producer
) y el contenedor del agente Kinesis. Todos los contenedores en una definición de tarea están programados en el mismo host de contenedor y, por lo tanto, pueden compartir recursos como montajes de enlace.
En la siguiente definición de contenedor de ejemplo, utilizamos un montaje de enlace llamado logs_dir
para compartir un directorio entre producer
contenedor y kinesis-agent
recipiente.
Puede utilizar la siguiente plantilla como punto de partida, pero asegúrese de cambiarla taskRoleArn
y executionRoleArn
a roles de IAM válidos en su cuenta de AWS. En este caso, el rol de IAM utilizado para taskRoleArn
debe tener permisos de escritura en Kinesis Data Firehose que especificó anteriormente en el agent.json
archivo. Además, asegúrese de que las rutas de la imagen ECR y awslogs-region
se modifican según su cuenta de AWS.
Registre la definición de tarea con el siguiente comando:
Ejecute una nueva tarea de ECS
Finalmente, puede ejecutar una nueva tarea de ECS usando la definición de tarea que acaba de crear usando el aws ecs run-task
dominio. Cuando se inicia la tarea, debería poder ver dos contenedores ejecutándose bajo esa tarea en la consola de Amazon ECS.
Conclusión
Esta publicación mostró lo sencillo que es ejecutar Kinesis Agent en un entorno en contenedores. Aunque utilizamos Amazon ECS como nuestro servicio de orquestación de contenedores en esta publicación, puede utilizar un contenedor de Kinesis Agent en otros entornos, como Servicio Amazon Elastic Kubernetes (Amazon EKS).
Para obtener más información sobre el uso de Kinesis Agent, consulte Escritura en Amazon Kinesis Data Streams mediante Kinesis Agent. Para obtener más información sobre Amazon ECS, consulte la Guía para desarrolladores de Amazon ECS.
Sobre la autora
Budhike de Silva es arquitecto senior de soluciones especializado en Amazon Web Services. Buddhike ayuda a los clientes a ejecutar cargas de trabajo de análisis de streaming a gran escala en AWS y aprovechar al máximo su viaje a la nube.
- Distribución de relaciones públicas y contenido potenciado por SEO. Consiga amplificado hoy.
- PlatoData.Network Vertical Generativo Ai. Empodérate. Accede Aquí.
- PlatoAiStream. Inteligencia Web3. Conocimiento amplificado. Accede Aquí.
- PlatoESG. Carbón, tecnología limpia, Energía, Ambiente, Solar, Gestión de residuos. Accede Aquí.
- PlatoSalud. Inteligencia en Biotecnología y Ensayos Clínicos. Accede Aquí.
- Fuente: https://aws.amazon.com/blogs/big-data/run-kinesis-agent-on-amazon-ecs/