Amazon Kinesis Streams permite crear aplicaciones personalizadas que procesan o analizan datos de streaming para necesidades especiales. Puede configurar cientos de miles de generadores de datos para incluir datos de manera continua en una transmisión de Amazon Kinesis. Por ejemplo, datos de transmisiones de clics de sitios web, logs de aplicaciones y feeds de redes sociales. En menos de un segundo, los datos estarán disponibles en sus aplicaciones de Amazon Kinesis para su lectura y procesamiento desde la transmisión.

En el siguiente diagrama arquitectónico, Amazon Kinesis Streams se utiliza como gateway de una solución de big data. Se colocan datos de diferentes fuentes en una transmisión de Amazon Kinesis para que puedan consumirse en las diferentes aplicaciones de Amazon Kinesis. En este ejemplo, una aplicación (resaltada en amarillo) ejecuta un panel de estado en tiempo real con los datos de streaming. Otra aplicación (destacada en rojo) realiza una agregación sencilla y emite los datos procesados a Amazon S3. Los datos presentes en Amazon S3 se continúan procesando y se almacenan en Amazon Redshift para la realización de análisis complejos. La tercera aplicación (resaltada en verde) emite datos sin procesar a Amazon S3, que seguidamente se archivan en Amazon Glacier para un almacenamiento a largo plazo más económico. Observe cómo estas tres líneas de procesamiento de datos funcionan simultáneamente y en paralelo. Amazon Kinesis Streams permite que existan todos los consumidores de la transmisión de datos que requiera su solución sin penalizar el desempeño.

Comience con AWS de forma gratuita

Cree una cuenta gratuita
O inicie sesión en la Consola
kinesis-architecture-crop

El fragmento es la unidad base de caudal de una transmisión de Amazon Kinesis. Un fragmento proporciona una capacidad de entrada de datos de 1 MB/s y de salida de datos de 2 MB/s. Un fragmento puede soportar hasta 1 000 registros PUT por segundo. Cuando cree una transmisión, deberá especificar el número de fragmentos que necesita. Por ejemplo, puede crear una transmisión con dos fragmentos. Esta transmisión tiene un desempeño de entrada de datos de 2 MB/s y de salida de datos de 4 MB/s y admite hasta 2 000 registros PUT por segundo. Puede monitorizar las métricas a nivel de fragmento en Amazon Kinesis Streams y añadir o eliminar fragmentos de la transmisión de forma dinámica a medida que cambie el desempeño de sus datos al modificar los fragmentos de la transmisión.

Un registro es la unidad de datos que se almacena en una transmisión de Amazon Kinesis. Un registro se compone de un número secuencial, una clave de partición y un blob de datos. Un blob de datos son los datos de interés que el generador de datos agrega a su transmisión. El tamaño máximo de un blob de datos (la carga útil de datos posterior a la descodificación Base64) es de 1 megabyte (MB).

La clave de partición se utiliza para segregar y enrutar registros de datos a diferentes fragmentos de una transmisión. El generador de datos especifica la clave de partición en el momento de incluir datos en una transmisión de Amazon Kinesis. Por ejemplo, supongamos que tiene una transmisión de Amazon Kinesis con dos fragmentos (Fragmento 1 y Fragmento 2). Puede configurar el generador de datos para que utilice dos claves de partición (clave A y clave B), a fin de que todos los registros con clave A se incluyan en el fragmento 1 y todos los registros con clave B se incluyan en el fragmento 2.

Un número secuencial es un identificador exclusivo de cada registro de datos. Amazon Kinesis Streams asigna el número secuencial cuando un generador de datos llama a una API PutRecord o PutRecords para añadir datos a una transmisión de Amazon Kinesis. Por lo general, los números secuenciales de una misma clave de partición aumentan a medida que pasa el tiempo; cuanto mayor sea el período de tiempo transcurrido entre las solicitudes de PutRecord o PutRecords, más aumentarán los números secuenciales. 


Una vez que se inscriba en Amazon Web Services, puede comenzar a utilizar Amazon Kinesis Streams mediante:

  • La creación de una transmisión de Amazon Kinesis a partir de la consola de administración de Amazon Kinesis o con la API CreateStream de Amazon Kinesis.
  • Configure los generadores de datos para incluir datos en su transmisión de Amazon Kinesis sin interrupción.
  • Desarrollo de sus aplicaciones de Amazon Kinesis para que lean y procesen datos de su transmisión de Amazon Kinesis.

Los generadores de datos pueden añadir datos a las transmisiones de Amazon Kinesis a través de las API de Amazon Kinesis Streams, la biblioteca de generadores de Amazon Kinesis (KPL) o el agente de Amazon Kinesis

 

Amazon Kinesis Streams dispone de dos API para agregar datos a una transmisión de Amazon Kinesis: PutRecord y PutRecords. PutRecord permite incluir un solo registro de datos en una llamada a la API, mientras que PutRecords permite varios registros de datos en una llamada a la API.

La biblioteca de generadores de Amazon Kinesis (KPL) es una biblioteca de uso sencillo y altamente configurable que le permite incluir datos en una transmisión de Amazon Kinesis. La biblioteca de generadores de Amazon Kinesis (KPL) contiene una interfaz sencilla, asíncrona y de confianza que le permite lograr un alto desempeño de generación de manera rápida con recursos del cliente mínimos.

Agente de Amazon Kinesis es una aplicación precompilada de Java que ofrece una forma fácil y recopilar y enviar datos a una transmisión de Amazon Kinesis. Puede instalar el agente en entornos de servidor basados en Linux, como servidores web, servidores de log y servidores de base de datos. El agente monitoriza ciertos archivos y continuamente envía datos a la transmisión. 


Una aplicación de Amazon Kinesis es un consumidor de datos que se encarga de leer y procesar datos procedentes de una transmisión de Amazon Kinesis. Puede crear aplicaciones de Amazon Kinesis con el API de Amazon Kinesis o la biblioteca de clientes de Amazon Kinesis (KCL).

La biblioteca de clientes de Amazon Kinesis (KCL) es una biblioteca preintegrada que permite desarrollar de forma sencilla aplicaciones de Amazon Kinesis para la lectura y el procesamiento de datos procedentes de una transmisión de Amazon Kinesis. La KCL se encarga de administrar las cuestiones complejas, como la adaptación a los cambios del caudal de la transmisión, el equilibrio de carga de los datos de streaming, la coordinación de servicios distribuidos y el procesamiento de datos con tolerancia a errores. La KCL le permite concentrarse en la lógica de negocio al desarrollar aplicaciones de Amazon Kinesis.

La biblioteca de conectores de Amazon Kinesis es una biblioteca preintegrada que permite integrar de forma sencilla Amazon Kinesis con otros servicios de AWS y herramientas de terceros. La biblioteca de clientes de Amazon Kinesis (KCL) es necesaria para el uso de la biblioteca de conectores de Amazon Kinesis. La versión actual de esta biblioteca proporciona conectores para Amazon DynamoDB, Amazon Redshift, Amazon S3 y Elasticsearch. La biblioteca también incluye conectores de muestra de cada tipo, además de archivos de compilación de Apache Ant para ejecutar las muestras.

Amazon Kinesis Storm Spout es una biblioteca preintegrada que permite integrar de forma sencilla Amazon Kinesis Streams con Apache Storm. La versión actual de Amazon Kinesis Storm Spout obtiene datos de la transmisión de Amazon Kinesis y los emite como tuplas. Se añade el canal (spout) a la topología de Storm para poder utilizar Amazon Kinesis Streams como un servicio escalable y de confianza para la captura, el almacenamiento y la reproducción de transmisiones.


Amazon Kinesis Streams se integra con Amazon CloudWatch para recopilar, ver y analizar métricas de CloudWatch correspondientes a las transmisiones de Amazon Kinesis y los fragmentos de esas transmisiones. Para obtener más información sobre las métricas de Amazon Kinesis Streams, consulte Monitorización de Amazon Kinesis con Amazon CloudWatch.

Amazon Kinesis Streams se integra con AWS Identity and Access Management (IAM), un servicio que permite controlar de forma segura el acceso de los usuarios a sus recursos y productos de AWS. Por ejemplo, puede crear una política que permita únicamente a un usuario o a un grupo específico incluir datos en su transmisión de Amazon Kinesis. Para obtener más información sobre cómo administrar y controlar el acceso a su transmisión de Amazon Kinesis, consulte Control del acceso a los recursos de Amazon Kinesis por medio de IAM.

Amazon Kinesis Streams se integra con AWS CloudTrail, un servicio que registra las llamadas a la API de AWS de su cuenta y le entrega archivos de registros. Para obtener más información sobre los registros de las llamadas a la API y una lista de las API de Amazon Kinesis admitidas, consulte Registro de las llamadas a API de Amazon Kinesis por medio de Amazon CloudTrail.

Puede obtener acceso de manera privada a las API de Kinesis Streams desde su Amazon Virtual Private Cloud (VPC) mediante la creación de puntos de conexión de VPC. Con los puntos de conexión de VPC, el enrutamiento entre la VPC y Kinesis Streams se controla mediante la red de AWS sin la necesidad de utilizar una Internet gateway, una gateway de NAT ni una conexión de VPN. La última generación de puntos de conexión de VPC que usa Kinesis Streams cuenta con la tecnología de AWS PrivateLink, un recurso que habilita la conectividad privada entre los servicios de AWS al usar interfaces de red elástica (ENI) con sus IP privadas en sus VPC. Para obtener más información, consulte la documentación de AWS PrivateLink.

Es posible cifrar los datos que coloca en Kinesis Streams mediante el uso de cifrado del lado del servidor o cifrado del lado del cliente. El cifrado del lado del servidor es una característica completamente administrada que cifra y descifra datos automáticamente cuando los coloca o recupera desde una transmisión. Opcionalmente, puede cifrar datos en el lado del cliente antes de colocarlos en su transmisión. Para obtener más información, consulte la sección seguridad de las preguntas y respuestas de Kinesis Streams.

Amazon Kinesis permite etiquetar las transmisiones de Amazon Kinesis para facilitar la administración de recursos y costos. Una etiqueta es una par clave-valor definido por el usuario que ayuda a organizar los recursos de AWS. Por ejemplo, puede etiquetar las transmisiones de Amazon Kinesis por centros de costos para clasificar en categorías y seguir los costos de Amazon Kinesis de cada centro de costos. Para obtener más información, consulte Etiquetado de sus transmisiones en Amazon Kinesis Streams.