- Amazon Kinesis›
- Data Streams›
- Preguntas frecuentes
Preguntas frecuentes de Amazon Kinesis Data Streams
Temas de la página
Aspectos generalesAspectos generales
¿Qué es Amazon Kinesis Data Streams?
Con Kinesis Data Streams, puede crear aplicaciones personalizadas que procesan o analizan datos de streaming para satisfacer necesidades especiales. Puede agregar distintos tipos de datos (por ejemplo, secuencias de clics, registros de aplicaciones y redes sociales) de cientos de miles de fuentes a una secuencia de datos de Kinesis. En cuestión de segundos, los datos estarán disponibles en sus aplicaciones para su lectura y procesamiento desde la secuencia.
¿Qué administra Kinesis Data Streams por usted?
Kinesis Data Streams se encarga de administrar la infraestructura, el almacenamiento, las redes y la configuración que se necesitan para transmitir datos al nivel de su rendimiento de datos. No tiene que preocuparse por el aprovisionamiento, la implementación ni el mantenimiento continuo del hardware, del software, ni por ningún otro servicio necesario para las secuencias de datos. Además, Kinesis Data Streams realiza una réplica sincronizada de los datos en tres zonas de disponibilidad, lo que proporciona un alto nivel de disponibilidad y durabilidad de los datos. De forma predeterminada, Kinesis Data Streams escala la capacidad automáticamente sin necesidad de aprovisionarla ni de administrarla. Tiene la opción de elegir el modo aprovisionado si desea aprovisionar y administrar el rendimiento por su cuenta.
¿Qué puedo hacer con Kinesis Data Streams?
Kinesis Data Streams resulta útil para trasladar datos rápidamente desde los generadores de datos y procesarlos sin interrupción, ya sea para transformarlos antes de enviarlos a un almacenamiento de datos, ejecutar métricas y análisis en tiempo real o para derivar las secuencia de datos más complejas con el fin de someterlos a un procesamiento más amplio.
A continuación, se muestran casos de uso típicos de Kinesis Data Streams:
- Introducción acelerada de registros y datos: en lugar de esperar a agrupar los datos en lotes, puede hacer que los generadores de datos los envíen a un flujo de datos de Kinesis en cuanto se hayan creado y, de este modo, se evita la pérdida de datos en caso de que haya errores en el generador. Por ejemplo, los logs de sistemas y aplicaciones se pueden agregar sin interrupción a un streaming de datos de Amazon Kinesis y quedar disponibles para su procesamiento en cuestión de segundos.
- Métricas e informes en tiempo real: puede obtener métricas y elaborar informes a partir de datos del flujo de datos de Kinesis en tiempo real. Por ejemplo, su aplicación de Amazon Kinesis puede utilizar las métricas y los informes para los registros de sistemas y aplicaciones a medida que ingresan los datos del streaming, en lugar de esperar a que lleguen lotes de datos.
- Análisis de datos en tiempo real: con Kinesis Data Streams, puede analizar los datos de streaming en tiempo real. Por ejemplo, puede agregar secuencias de clics a los flujos de datos de Kinesis y hacer que su aplicación de Kinesis realice análisis en tiempo real, con lo que obtendrá información de los datos en cuestión de minutos, y no de horas o días.
- Recopilación de datos de eventos y de registros: puede recopilar datos de eventos y registros de diversos orígenes, como servidores, equipos de escritorio y dispositivos móviles. Seguidamente, podrá crear aplicaciones mediante Amazon Lambda Amazon Managed Service para Apache Flink para procesar de manera continua los datos, generar métricas, alimentar paneles en directo y emitir datos agregados a almacenes de datos, como Amazon Simple Storage Service (Amazon S3).
- Mejora de las aplicaciones impulsadas por eventos: realice una rápida sincronización con AWS Lambda para responder o ajustarse a sucesos inmediatos dentro de las aplicaciones impulsadas por eventos en su entorno, a cualquier escala.
¿Cómo utilizo Kinesis Data Streams?
Una vez que se registre en AWS, puede comenzar a utilizar Kinesis Data Streams y, de este modo, crear una secuencia de datos de Kinesis, ya sea a través de la consola de administración de AWS o de la operación CreateStream. Luego configure los generadores de datos para agregar datos a los flujos de datos sin interrupción. De manera opcional, puede enviar datos a partir de los recursos existentes en los servicios de AWS, como Amazon DynamoDB, Amazon Aurora, Amazon CloudWatch y AWS IoT Core. A continuación, puede utilizar AWS Lambda, Amazon Managed Service para Apache Flink o el streaming en AWS Glue para procesar rápidamente los datos almacenados en Kinesis Data Streams. También puede crear aplicaciones personalizadas que se ejecuten en Amazon Elastic Compute Cloud (Amazon EC2), Amazon Elastic Container Service (Amazon ECS) y Amazon Elastic Kubernetes Service (Amazon EKS) mediante la API de Amazon Kinesis o Biblioteca de clientes de Amazon Kinesis (KCL).
Conceptos clave
¿Qué es una partición, un generador y un consumidor en Kinesis Data Streams?
Una partición posee una secuencia de registros de datos en una transmisión. Actúa como unidad básica de rendimiento de un flujo de datos de Kinesis. En el caso de las operaciones de escrituras, una partición admite 1 MB/segundo y 1000 registros por segundo, mientras que en las de lecturas, 2 MB/segundo. Los límites de las particiones garantizan un rendimiento predecible, lo que facilita el diseño y el funcionamiento de un flujo de trabajo de datos de streaming altamente confiable. Un generador introduce los registros de datos en las particiones y un consumidor obtiene de ellas esos registros. Los consumidores utilizan las particiones para el procesamiento de datos en paralelo y para el consumo posterior de estos en el orden exacto en que se almacenan. Si las operaciones de escritura y lectura superan los límites de la partición, las aplicaciones generadoras y consumidoras sufrirán limitaciones, que podrán gestionarse mediante reintentos.
¿Qué es un registro?
Un registro es la unidad de datos que se almacena en un streaming de datos de Amazon Kinesis. Un registro se compone de un número secuencial, una clave de partición y un blob de datos. El blob de datos son los datos de interés que su generador de datos agrega a una transmisión de datos. El tamaño máximo de un blob de datos (la carga útil de datos anterior a la codificación Base64) es de 1 megabyte (MB).
¿Qué es una clave de partición?
La clave de partición se utiliza para aislar y dirigir registros a diferentes particiones de una secuencia de datos. El generador de datos especifica la clave de partición en el momento de agregar datos a una secuencia de datos de Kinesis. Por ejemplo, supongamos que tiene un flujo de datos con dos particiones (partición 1 y partición 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 la partición 1 y todos los registros con clave B se incluyan en la partición 2.
¿Qué es un número secuencial?
Un número secuencial es un identificador exclusivo de cada registro. Amazon Kinesis asigna el número secuencial cuando un generador de datos llama a una operación PutRecord o PutRecords para agregar datos a un flujo de datos de Amazon Kinesis. Por lo general, los números secuenciales de una misma clave de partición aumentan a medida que transcurre el tiempo; cuanto mayor sea el período transcurrido entre las solicitudes PutRecord o PutRecords, mayor será el aumento de los números secuenciales.
¿Qué es un modo de capacidad?
El modo de capacidad de Kinesis Data Streams determina la forma en que se administra la capacidad y se cobra el uso de un flujo de datos. Puede elegir entre el modo aprovisionado y el de bajo demanda. En el modo aprovisionado, se especifica la cantidad de particiones del flujo de datos. La capacidad total de un flujo de datos se obtiene con la suma de las capacidades de cada una de sus particiones. Puede aumentar o disminuir la cantidad de particiones en un flujo de datos según sea necesario, y paga una tarifa por hora en función de la cantidad que tenga. En el modo bajo demanda, AWS administra las particiones para proporcionar el rendimiento adecuado. Solo paga por el rendimiento real utilizado, y Kinesis Data Streams se adapta automáticamente a las necesidades de rendimiento de su carga de trabajo a medida que esta aumenta o disminuye. Todas las API de escritura y lectura de Kinesis Data Streams, así como otras características opcionales como Retención ampliada y Distribución ramificada mejorada, son compatibles con ambos modos de capacidad.
¿Cómo puedo elegir entre el modo bajo demanda y el modo aprovisionado?
El modo bajo demanda es el más adecuado para cargas de trabajo con patrones de tráfico imprevisibles y muy variables. Este modo es el que debe utilizar si prefiere que AWS administre la capacidad en su nombre o si prefiere un precio de pago en función del rendimiento. El modo aprovisionado es el más adecuado para el tráfico previsible, en el que los requisitos de capacidad resultan fáciles de pronosticar. Debería tener en cuenta la posibilidad de utilizar el modo aprovisionado si desea un control detallado sobre la forma en que se distribuyen los datos entre las particiones. Además, el modo aprovisionado es adecuado si se pretende aprovisionar más particiones para que la aplicación que las consume pueda tener un mayor rendimiento de lectura que permita acelerar el procesamiento general.
¿Puedo cambiar entre el modo bajo demanda y el modo aprovisionado?
Sí. Puede cambiar entre el modo bajo demanda y el aprovisionado dos veces al día. La cantidad de particiones de su flujo de datos no varía cuando se pasa del modo aprovisionado al modo bajo demanda y viceversa. Con el cambio del modo de capacidad aprovisionada al modo bajo demanda, su flujo de datos retiene la cantidad de particiones de la que disponía antes de realizar esa transición. Sin embargo, a partir de ese momento, Kinesis Data Streams monitorea el tráfico de datos y escala la cantidad de particiones de este flujo de datos bajo demanda de forma creciente o decreciente en función del aumento o la disminución del tráfico.
Incorporación de datos a Kinesis Data Streams
¿Cómo agrego datos a una secuencia de datos de Amazon Kinesis?
Puede agregar datos a una secuencia de datos de Kinesis a través de las operaciones PutRecord y PutRecords, KPL o el agente de Amazon Kinesis.
¿Qué diferencia hay entre PutRecord y PutRecords?
La operación PutRecord permite incluir un solo registro de datos en una llamada a la API, mientras que la operación PutRecords permite varios registros de datos en una llamada a la API. Para obtener más información, consulte PutRecord y PutRecords.
¿Qué es la biblioteca de generadores de Amazon Kinesis (KPL)?
La KPL es una biblioteca de uso sencillo y altamente configurable que le permite incluir datos en una secuencia de datos de Amazon Kinesis. La KPL contiene una interfaz sencilla, asíncrona y de confianza que le ayuda a lograr un alto rendimiento de generación de manera rápida con recursos del cliente mínimos.
¿Qué es el agente de Amazon Kinesis?
El agente de Amazon Kinesis es una aplicación precompilada en Java que ofrece una forma fácil de recopilar y enviar datos a un flujo de datos de Amazon Kinesis. Puede instalar el agente en entornos de servidor basados en Linux, como servidores web, servidores de registro y servidores de base de datos. El agente monitorea determinados archivos y envía continuamente datos a su transmisión de datos. Para obtener más información, consulte Escritura con agentes.
¿Qué datos se tendrán en cuenta en relación con la capacidad de rendimiento de los datos de un flujo de Amazon Kinesis durante una llamada PutRecord o PutRecords?
El blob de datos, la clave de partición y el nombre del flujo de datos son parámetros imprescindibles para realizar una llamada PutRecord o PutRecords. El tamaño de su blob de datos (antes de la codificación Base64) y de su clave de partición se tendrán en cuenta en relación a la capacidad de procesamiento de datos de su streaming de Amazon Kinesis, que se determina según la cantidad de particiones que componen el streaming de datos.
Lectura y procesamiento de datos de Kinesis Data Streams
¿Qué es un consumidor y cuáles son los diferentes tipos de consumidores que ofrece Kinesis Data Streams?
Un consumidor es una aplicación encargada de procesar todos los datos de una secuencia de datos de Kinesis. Puede elegir entre los tipos de consumidor de distribución ramificada compartida y la distribución ramificada mejorada si desea realizar la lectura de datos de un flujo de datos Kinesis. Los consumidores de distribución ramificada compartida tienen un rendimiento de lectura de 2 MB/segundo y un límite de cinco transacciones por segundo en una partición y, además, requieren el uso de la API GetRecords. Un consumidor de distribución ramificada mejorada obtiene su propia asignación de 2 MB/segundo de rendimiento de lectura, lo que permite que varios consumidores lean, en paralelo, datos del mismo flujo, sin necesidad de competir por el rendimiento de lectura con otros consumidores. Es necesario utilizar la API SubscribeToShard con los consumidores de distribución ramificada mejorada. Se recomienda utilizar los consumidores de distribución ramificada mejorada si se desea agregar más de un consumidor a la secuencia de datos.
¿Cómo puedo procesar los datos obtenidos y almacenados en Kinesis Data Streams?
Puede utilizar los servicios administrados, como AWS Lambda, Amazon Managed Service para Apache Flink y AWS Glue, para procesar los datos almacenados en Kinesis Data Streams. Estos servicios administrados se encargan del aprovisionamiento y la administración de la infraestructura subyacente de manera tal que pueda centrarse en elaborar la lógica empresarial. También puede entregar los datos almacenados en Kinesis Data Streams a Amazon S3, Amazon OpenSearch Service, Amazon Redshift y puntos de enlace HTTP personalizados mediante su integración prediseñada con Kinesis Data Firehose. Asimismo, es posible crear aplicaciones personalizadas mediante el uso de la biblioteca de clientes de Amazon Kinesis, una biblioteca prediseñada, o la API de Amazon Kinesis Data Streams.
¿Qué es la biblioteca de clientes de Amazon Kinesis (KCL)?
La KCL para Java, Python, Ruby, Node.js y .NET es una biblioteca preintegrada que permite crear de forma sencilla aplicaciones de Amazon Kinesis para la lectura y el procesamiento de datos de una secuencia de datos de Amazon Kinesis.
La KCL se encarga de administrar las cuestiones complejas, como la adaptación a los cambios de volumen de las secuencias de datos, el equilibrio de carga de 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. Para obtener más detalles sobre la KCL, consulte la documentación de Kinesis Data Streams aquí.
¿Qué es la API SubscribeToShard?
La API SubscribeToShard es una API de streaming de alto rendimiento que envía datos de las particiones a los consumidores a través de una conexión persistente sin un ciclo de solicitud del cliente. La API SubscribeToShard utiliza el protocolo HTTP/2 para entregar datos a los consumidores registrados cada vez que llegan nuevos datos a la partición, generalmente dentro de los 70 milisegundos, lo que ofrece una entrega aproximadamente 65 % más rápida en comparación con la API GetRecords. Los consumidores disfrutarán de una entrega rápida, incluso cuando múltiples consumidores registrados estén leyendo en la misma partición.
¿Qué es la distribución ramificada mejorada?
La distribución ramificada mejorada es una característica opcional para los consumidores de Kinesis Data Streams que proporciona canales de rendimiento lógicos de 2 MB/segundo entre consumidores y particiones. De este modo, se puede escalar la cantidad de consumidores que leen un flujo de datos en paralelo, a la vez que se mantiene un alto rendimiento.
¿Por qué debo utilizar la distribución ramificada mejorada?
Debe utilizarla si tiene, o espera tener, varios consumidores que recuperan datos de una transmisión en paralelo, o si tiene al menos un consumidor que requiere el uso de la API SubscribeToShard para ofrecer velocidades de entrega de datos inferiores a 200 milisegundos entre generadores y consumidores.
¿Cómo utiliza un consumidor la distribución ramificada mejorada?
Los consumidores utilizan la distribución ramificada mejorada mediante la recuperación de datos con la API SubscribeToShard. El nombre del consumidor registrado se utiliza dentro de la API SubscribeToShard, que a lleva a utilizar el beneficio de la distribución ramificada mejorada que se ofrece al consumidor registrado.
¿Puedo hacer que algunos consumidores utilicen la distribución ramificada mejorada y otros no?
Sí. Puede hacer que, al mismo tiempo, varios consumidores utilicen la distribución ramificada mejorada y otros no. El uso de una distribución ramificada mejorada no afecta los límites de las particiones para el uso tradicional de GetRecords.
¿Debo utilizar la distribución ramificada mejorada si quiero utilizar SubscribeToShard?
Sí. Para utilizar SubscribeToShard, debe registrar a sus consumidores y así activar la distribución ramificada mejorada. De forma predeterminada, su consumidor utilizará la distribución ramificada mejorada automáticamente cuando se recuperen los datos a través de SubscribeToShard.
Modo bajo demanda
¿Cuáles son las cuotas de rendimiento predeterminadas para la escritura de datos en el flujo de datos mediante el modo bajo demanda?
Un nuevo flujo de datos creado en modo bajo demanda dispone de una cuota de 4 MB/segundo y 4000 registros por segundo para las operaciones de escritura. De forma predeterminada, estas transmisiones se escalan vertical y automáticamente a 200 MB/segundo y 200 000 registros por segundo para las operaciones de escritura.
¿Cómo se desescalan horizontalmente los flujos de datos en el modo bajo demanda para manejar un mayor rendimiento de las operaciones de escritura?
Un flujo de datos en modo bajo demanda puede llegar a duplicar el rendimiento máximo de escritura observado en los últimos 30 días. Cuando el rendimiento de escritura de su flujo de datos alcanza un nuevo pico, Kinesis Data Streams escala la capacidad del flujo automáticamente. Por ejemplo, si su flujo de datos tiene un rendimiento de escritura que varía entre 10 MB/segundo y 40 MB/segundo, Kinesis Data Streams se asegurará de que pueda duplicar el rendimiento máximo de 80 MB/segundo sin ninguna dificultad. Posteriormente, si el mismo flujo de datos mantiene un nuevo pico de rendimiento de 50 MB/segundo, Data Streams se asegurará de que haya suficiente capacidad para capturar un rendimiento de escritura de 100 MB/segundo. Sin embargo, podrá observar las excepciones “ProvisionedThroughputExceeded” si su tráfico experimenta un crecimiento superior al doble del pico anterior en un plazo de 15 minutos. Es necesario que reintente estas solicitudes limitadas.
¿Cuáles son los límites del rendimiento para la lectura de datos de transmisiones en el modo bajo demanda?
La capacidad de lectura agregada del modo bajo demanda crece a la par que el rendimiento de escritura con el objetivo de garantizar que las aplicaciones consumidoras tengan siempre un rendimiento de lectura adecuado que permita procesar los datos entrantes en tiempo real. Se obtiene, como mínimo, el doble de rendimiento de escritura para leer datos mediante la API GetRecords. Se recomienda utilizar un consumidor con la API GetRecord de modo que disponga de espacio suficiente para recuperarse cuando la aplicación necesite hacerlo tras un tiempo de inactividad. Para agregar más de una aplicación consumidora, es necesario utilizar la distribución ramificada mejorada, que admite la incorporación de hasta 20 consumidores a un flujo de datos mediante la API SubscribeToShard, y cada uno de ellos tiene un rendimiento dedicado.
Modo aprovisionado
¿Cuáles son los límites de Kinesis Data Streams en el modo aprovisionado?
El rendimiento de un flujo de datos de Kinesis en ese modo está diseñado para escalarse sin límites mediante el aumento de la cantidad de particiones de un flujo de datos.
¿Cómo puedo escalar la capacidad de Kinesis Data Streams en el modo aprovisionado?
Puede escalar verticalmente la capacidad de Kinesis Data Stream en el modo aprovisionado si divide las particiones existentes mediante la API SplitShard. Puede desescalar verticalmente la capacidad si combina dos particiones mediante la API MergeShard. De manera opcional, puede utilizar la API UpdateShardCount a fin de escalar verticalmente, o bien reducir, la capacidad de una transmisión a una cantidad específica de particiones.
¿Cómo determino la capacidad de rendimiento de un flujo de datos de Amazon Kinesis en el modo aprovisionado?
La cantidad de particiones de un flujo de datos determina la capacidad de rendimiento de un flujo de datos de Kinesis. Siga los pasos indicados a continuación para realizar un cálculo aproximado de la cantidad inicial de particiones que necesita su flujo de datos en el modo aprovisionado. Observe cómo puede ajustar de manera dinámica la cantidad de particiones incluidas en su flujo de datos mediante la modificación de particiones.
Calcule el tamaño promedio del registro escrito en el flujo de datos en kilobytes (KB), y redondee al KB más cercano. (average_data_size_in_KB)
Calcule la cantidad de registros escritos por segundo en el streaming de datos. (número_de_registros_por_segundo)
Determine el número de aplicaciones de Amazon Kinesis que consume datos de forma simultánea e independiente del flujo de datos. (number_of_consumers)
Calcule el ancho de banda de entrada de las operaciones de escritura en KB (incoming_write_bandwidth_in_KB), que equivale a average_data_size_in_KB multiplicado por number_of_records_per_second.
Calcule el ancho de banda de salida de las operaciones de lectura en KB (ancho_de_banda_saliente_para_lectura_en_KB), que equivale a ancho_de_banda_entrante_para_escritura_en_KB multiplicado por número_de_consumidores.
A continuación, puede calcular la cantidad inicial de particiones (number_of_shards) que necesita su flujo de datos mediante la siguiente fórmula: number_of_shards = máximo (incoming_write_bandwidth_in_KB/1000, outgoing_read_bandwidth_in_KB/2000)
¿Cuál es la capacidad de rendimiento máxima que puedo solicitar para mi flujo de datos de Amazon Kinesis en el modo aprovisionado?
La capacidad de rendimiento de un flujo de datos de Kinesis se diseña para escalar sin ningún tipo de límite. La cuota de particiones por defecto es de 500 particiones por transmisión para las siguientes regiones de AWS: Este de EE. UU. (Norte de Virginia), Oeste de EE. UU. (Oregón) y Europa (Irlanda). Para todas las demás regiones, la cuota de particiones predeterminada es de 200 por transmisión. Puede solicitar el aumento de la cuota de particiones mediante el uso de la consola Service Quotas de AWS.
¿Qué sucede si se supera el límite de capacidad de un flujo de datos de Amazon Kinesis mientras el generador de datos agrega datos al flujo en el modo aprovisionado?
En el modo aprovisionado, el límite de capacidad de un flujo de datos de Kinesis lo determina su cantidad de particiones. Pueden superarse los límites por el rendimiento de los datos o por el número de registros PUT. Cuando se supere el límite de capacidad, se rechazarán las llamadas a los datos PUT y se generará una excepción ProvisionedThroughputExceeded. Si se superó el límite porque se aumentó la velocidad de entrada de datos del flujo de datos, el generador de datos volverá a intentarlo hasta conseguir completar las solicitudes. Si se debe a un aumento sostenido de la velocidad de entrada de datos del flujo de datos, deberá incrementar la cantidad de particiones de su flujo de datos a fin de que las llamadas a los datos PUT tengan capacidad suficiente para realizarse normalmente. En ambos casos, las métricas de Amazon CloudWatch le permiten obtener información sobre el cambio de la velocidad de entrada de datos del streaming de datos y la generación de excepciones ProvisionedThroughputExceeded.
¿Qué ocurre si se superan los límites de capacidad de un flujo de datos de Amazon Kinesis mientras una aplicación de Amazon Kinesis lee datos procedentes del flujo de datos en el modo aprovisionado?
En el modo aprovisionado, el límite de capacidad de un flujo de datos de Kinesis lo determina su cantidad de particiones. Pueden superarse los límites por el rendimiento de datos o por el número de llamadas de lectura de datos. Cuando se superen los límites de capacidad, se rechazará la llamada de lectura de datos con una excepción ProvisionedThroughputExceeded. Esto se debe a un incremento temporal de la velocidad de salida de datos del flujo de datos. La aplicación de Amazon Kinesis seguirá intentándolo hasta lograr completar todas las solicitudes. Si se debe a un incremento sostenido de la velocidad de salida de datos del flujo de datos, deberá aumentar la cantidad de particiones de su flujo de datos a fin de que las llamadas de lectura de datos tengan capacidad suficiente para realizarse normalmente. Tanto en un caso como en el otro, las métricas de Amazon CloudWatch permiten estar informado del cambio de la velocidad de salida de datos del streaming y de la aparición de las excepciones de ProvisionedThroughputExceeded.
Retención de datos ampliada y a largo plazo
¿Qué es el período de retención que admite Kinesis Data Streams?
El periodo de retención predeterminado de 24 horas abarca los casos en que los retrasos intermitentes en el procesamiento requieren ponerse al día con los datos en tiempo real. Una retención de siete días le permite procesar nuevamente los datos durante un máximo de siete días para resolver posibles pérdidas de datos posteriores. La retención de datos a largo plazo superior a siete días y hasta 365 días le permite procesar nuevamente los datos antiguos para casos de uso como la prueba de respaldo de algoritmos, el relleno de almacenes de datos y la auditoría.
¿Puedo utilizar las API de Kinesis Data Streams existentes para hacer una lectura de datos cuya antigüedad supere los siete días?
Sí. Puede utilizar las mismas API de getShardIterator, GetRecords y SubscribeToShard para hacer una lectura de datos retenidos durante más de siete días. Los consumidores pueden mover el iterador al lugar deseado en la transmisión, recuperar el mapa de particiones (tanto abiertos como cerrados) y leer los registros.
¿Hay alguna nueva API que ayude a leer los datos antiguos?
Sí. Hay mejoras en la API ListShards, GetRecords y SubscribeToShard. Puede utilizar la nueva opción de filtrado con el parámetro TimeStamp disponible en la API ListShards para recuperar eficientemente el mapa de particiones y mejorar el rendimiento de la lectura de datos antiguos. El filtro TimeStamp permite que las aplicaciones detecten y enumeren las particiones desde el momento en que se desea volver a procesar los datos y eliminan la necesidad de comenzar en trim horizon. GetRecords y SubscribeToShards tienen un nuevo campo, ChildShards, que le permitirá detectar rápidamente las particiones secundarias cuando una aplicación termina de leer los datos de una partición cerrada, en lugar de tener que volver a examinar el mapa de particiones. La rápida detección de particiones hace un uso eficiente de los recursos informáticos de la aplicación de consumo para cualquier flujo de tamaño, independientemente del periodo de retención de datos.
¿Cuándo utilizo las mejoras de la API?
Debería considerar estas mejoras de la API si planea retener los datos por más tiempo y escalar la capacidad de su flujo regularmente. Las operaciones de escalado de transmisiones cierran las particiones existentes y abren nuevas particiones secundarias. Los datos de todas las particiones abiertas y cerradas se retienen hasta el final del periodo de retención. Así que el número total de particiones aumenta linealmente con un período de retención más largo y múltiples operaciones de escalado. Este aumento en el mapa de particiones requiere el uso de ListShards con el filtro TimeStamp y el campo ChildShards en GetRecords, y la API SubscribeToShard al objeto de detectar eficazmente de particiones para la recuperación de datos. Tendrá que actualizar su KCL a la última versión (1.x para los consumidores estándar y 2.x para los consumidores de distribución ramificada mejorada) para estas características.
¿Kinesis Data Streams admite el registro de esquemas?
Sí. Los clientes de Kinesis Data Streams pueden utilizar AWS Glue Schema Registry, una característica sin servidor de AWS Glue, ya sea a través de la KPL y la KCL o mediante las API de AWS Glue Schema Registry en el AWS SDK para Java. Schema Registry está disponible sin cargo adicional.
Consulte la documentación para el usuario de Schema Registry para comenzar y obtener más información.
Administración de Amazon Kinesis Data Streams
¿Cómo modifico la capacidad de rendimiento de un flujo de datos de Amazon Kinesis en el modo aprovisionado?
Existen dos formas de cambiar la capacidad de rendimiento del flujo de datos. Puede usar la API UpdateShardCount o la consola de administración de AWS para escalar la cantidad de particiones en un flujo de datos o cambiar la capacidad de rendimiento de un flujo de datos de Amazon Kinesis mediante el ajuste de la cantidad de particiones dentro del flujo de datos (modificación de particiones).
¿Cuánto demora modificar la capacidad de rendimiento de un flujo de datos de Amazon Kinesis que se ejecuta en modo aprovisionado mediante UpdateShardCount o la Consola de administración de AWS?
Las solicitudes de escalado típicas pueden tardar unos minutos en completarse. Las solicitudes de escalado más grandes llevan más tiempo que las más pequeñas.
¿Kinesis Data Streams sigue estando disponible cuando cambio el rendimiento de mi secuencia de datos de Kinesis en modo aprovisionado o cuando el escalado se produce de forma automática en modo bajo demanda?
Sí. Puede seguir agregando datos a su flujo de datos de Kinesis y leyéndolos mientras usa UpdateShardCount o realiza la operación de modificación de particiones para cambiar la capacidad de rendimiento del flujo de datos o cuando Kinesis Data Streams lo hace automáticamente en modo bajo demanda.
¿Cómo puedo monitorear las operaciones y el rendimiento de mi secuencia de datos de Amazon Kinesis?
La consola de administración de Amazon Kinesis Data Streams incluye métricas clave sobre funcionamiento y rendimiento, como la capacidad de rendimiento de entrada y salida de datos de sus secuencias de datos de Kinesis. Kinesis Data Streams también se integra a Amazon CloudWatch de manera tal que pueda recopilar, ver y analizar las métricas de CloudWatch correspondientes a sus secuencias de datos y a las particiones incluidas en ellas. Para obtener más información sobre las métricas de Kinesis Data Streams, consulte Monitoreo de Amazon Kinesis Data Streams con Amazon CloudWatch.
Tenga en cuenta que todas las métricas a nivel de la transmisión son gratuitas. Todas las métricas a nivel de la partición habilitadas se cobran de acuerdo con los precios de Amazon CloudWatch.
¿Cómo puedo administrar y controlar el acceso a una secuencia de datos de Amazon Kinesis?
Kinesis Data Streams se integra a AWS Identity and Access Management (IAM), un servicio que le ayuda a controlar de forma segura el acceso de los usuarios a sus recursos y servicios de AWS. Por ejemplo, puede crear una política que permita únicamente a un usuario o a un grupo específico agregar datos a su secuencia de datos. También puede adjuntar una política basada en recursos a su secuencia de datos o consumidor registrado para controlar el acceso a nivel de recursos. Para obtener más información sobre cómo administrar y controlar el acceso a su secuencia de datos, consulte Control del acceso a los recursos de Amazon Kinesis Data Streams por medio de IAM.
¿Cómo comparto el acceso a mi secuencia de datos con otra cuenta?
Puede usar la política basada en funciones o recursos de IAM para compartir el acceso con otra cuenta. Para compartir el acceso con una función de AWS Lambda con varias cuentas, adjunte una política basada en recursos a su secuencia de datos o consumidor para conceder acceso a la función de ejecución de la función de Lambda. Obtenga más información en Uso de AWS Lambda con Amazon Kinesis.
¿Cómo puedo registrar las llamadas a la API que se realizan a una secuencia de datos de Amazon Kinesis para el análisis de seguridad y la solución de problemas operativos?
Kinesis Data Streams se integra a Amazon CloudTrail, un servicio que registra las llamadas a la API de AWS de su cuenta y le entrega archivos de registro. Para obtener más información sobre los registros de llamadas a la API y una lista de las operaciones de la API de Amazon Kinesis admitidas, consulte Registro de las llamadas a la API de Amazon Kinesis por medio de Amazon CloudTrail.
¿Cómo puedo administrar de manera eficaz los flujos de datos de Amazon Kinesis y los costos asociados con ellos?
Kinesis Data Streams permite etiquetar los flujos de datos de Kinesis para facilitar la administración de recursos y costos. Una etiqueta es un par clave-valor definido por el usuario que ayuda a organizar los recursos de AWS. Por ejemplo, puede etiquetar las secuencias de datos por centros de costos para clasificar en categorías los costos de Kinesis Data Streams y hacer un seguimiento de ellos en función de cada centro de costos. Para obtener más información sobre el etiquetado en Amazon Kinesis Data Streams, consulte Etiquetado en Amazon Kinesis Data Streams.
Seguridad
¿Hasta qué punto están protegidos los datos cuando utilizo Kinesis Data Streams?
Amazon Kinesis es seguro de forma predeterminada. Solo los propietarios de la cuenta y del flujo de datos disponen de acceso a los recursos de Kinesis que crean. Kinesis admite la autenticación de usuario para controlar el acceso a los datos. Puede usar políticas de IAM para otorgar permisos selectivos a usuarios y grupos de usuarios. Puede colocar sus datos en Kinesis u obtenerlos de este de forma segura a través de puntos de enlace SSL con el protocolo HTTPS. Si necesita seguridad adicional, puede usar el cifrado del lado del servidor con claves de AWS Key Management Service (AWS KMS) para cifrar los datos almacenados en su secuencia de datos. AWS KMS le permite usar claves de KMS generadas por AWS para el cifrado o, si lo prefiere, puede llevar su propia clave a AWS KMS. Por último, puede usar sus propias bibliotecas de cifrado para cifrar los datos del lado del cliente antes de colocarlos en Kinesis.
¿Puedo obtener acceso de manera privada a las API de Kinesis Data Streams desde mi Amazon Virtual Private Cloud (Amazon VPC) sin usar IP públicas?
Sí. Puede obtener acceso de manera privada a las API de Kinesis Data Streams desde su Amazon VPC mediante la creación de puntos de enlace de la VPC. Con los puntos de enlace de la VPC, el enrutamiento entre la VPC y Kinesis Data Streams se controla mediante la red de AWS sin la necesidad de utilizar una gateway de Internet, una gateway de NAT ni una conexión de VPN. La última generación de puntos de conexión de VPC que usa Kinesis Data Streams cuentan con la tecnología de AWS PrivateLink, un recurso que habilita la conectividad privada entre los servicios de AWS mediante el uso de interfaces de red elástica (ENI) con IP privadas en sus VPC. Para obtener más información sobre PrivateLink, visite la documentación de PrivateLink.
Cifrado
¿Puedo cifrar los datos que coloque en un flujo de Kinesis?
Sí, y existen dos opciones para hacerlo. Puede usar el cifrado del lado del servidor, que es una característica completamente administrada que cifra y descifra datos automáticamente a medida que los coloca en un flujo de datos o los recibe de él. Además, puede escribir datos cifrados en un flujo de datos mediante el cifrado y la eliminación del cifrado del lado del cliente.
¿Por qué debería usar el cifrado del lado del servidor en lugar del cifrado del cliente?
Podría elegir el cifrado del lado del servidor en lugar del cifrado del lado del cliente por alguno de los siguientes motivos:
- Resulta difícil aplicar el cifrado del lado del cliente.
- Quieren una segunda capa de seguridad además del cifrado del lado del cliente.
- Resulta difícil implementar esquemas de administración de claves del lado del cliente.
¿Qué es el cifrado del lado del servidor?
El cifrado desde el servidor para Kinesis Data Streams cifra los datos automáticamente con una clave de AWS KMS que especifica el usuario antes de escribirlos en la capa de almacenamiento del streaming de datos y los descifra una vez recuperados del almacenamiento. El cifrado imposibilita la sobreescritura de datos y la lectura de la clave de la partición y de la carga, a menos que el usuario que esté escribiendo o leyendo el streaming de datos tenga permiso para usar la clave seleccionada para el cifrado del streaming. Por lo tanto, el cifrado del lado del servidor puede simplificar el cumplimiento de requisitos de seguridad y conformidad internos que gobiernan los datos.
Con el cifrado del lado del servidor, las aplicaciones del lado del cliente (productores y consumidores) no tienen que ocuparse del cifrado, administrar claves KMS ni operaciones criptográficas, y sus datos están cifrados cuando están en reposo o en movimiento gracias al servicio Kinesis Data Streams. AWS KMS proporciona todas las claves KMS utilizadas por la característica de cifrado del lado del servidor. AWS KMS hace que resulte sencillo usar una clave KMS administrada por AWS para Kinesis (método de cifrado de “un clic”), su propia clave KMS administrada por el cliente de AWS KMS o una clave KMS que importe para el cifrado.
¿Existe alguna guía sobre cómo comenzar a utilizar el cifrado del lado del servidor?
Sí, puede encontrar una guía de introducción en la documentación para el usuario.
¿El cifrado del lado del servidor interfiere con el modo en que mis aplicaciones interactúan con Kinesis Data Streams?
Es posible. Depende de la clave que utilice para el cifrado y los permisos que gobiernen el acceso a la clave.
- Si usa la clave KMS administrada por AWS para Kinesis (alias de clave = aws/kinesis), sus aplicaciones no se verán afectadas por la habilitación o deshabilitación del cifrado con esta clave.
- Si usa una clave KMS diferente, como una clave de AWS KMS personalizada o una que haya importado al servicio AWS KMS, y si los generadores y consumidores de un streaming de datos no tienen permiso para usar la clave KMS de AWS KMS que se utiliza para el cifrado, sus solicitudes PUT y GET fallarán. Para poder usar el cifrado del lado del servidor, primero debe configurar las políticas de claves de AWS KMS para permitir el cifrado y descifrado de mensajes. Para ver ejemplos y obtener más información sobre los permisos de AWS KMS, consulte Permisos de la API de AWS KMS: Referencia de acciones y recursos en la Guía para desarrolladores de AWS Key Management Service o las orientaciones sobre permisos en la documentación para el usuario sobre el cifrado del lado del servidor de Kinesis Data Streams.
¿Tiene algún costo adicional el uso del cifrado del lado del servidor?
Sí. Sin embargo, si utiliza la clave KMS administrada por AWS para Kinesis y no excede los costos de uso de la API de KMS del nivel gratuito de AWS, su uso del cifrado del lado del servidor no tendrá costo alguno. A continuación se describen los costos por recurso:
Claves:
La clave de KMS administrada por AWS para Kinesis (alias = “aws/kinesis”) es gratuita.
Las claves KMS administradas por el cliente están sujetas a los costos por clave de KMS. Obtenga más información.
Uso de las API de KMS:
Los costos del uso de las API se aplican para cada clave KMS, incluidas las personalizadas. Kinesis Data Streams llama a KMS aproximadamente cada cinco minutos cuando está rotando la clave de datos. En un mes de 30 días, el costo total de llamadas a la API de KMS que inicia un flujo de datos de Kinesis debería ser menos de unos pocos dólares. Recuerde que este costo escala en función de la cantidad de credenciales de usuarios que use en sus generadores y consumidores de datos, ya que cada una de ellas requiere llamadas a la API única para AWS KMS. Cuando use el rol de IAM para la autenticación, cada llamada por rol resultará en credenciales de usuario únicas y quizás quiera almacenar en la memoria caché las credenciales de usuario devueltas en la llamada por rol para ahorrar costos de KMS.
¿Qué regiones de AWS ofrecen cifrado del lado del servidor para Kinesis Data Streams?
El cifrado del lado del servidor para Kinesis Data Streams está disponible en la región de AWS GovCloud y en todas las regiones públicas, excepto la región de China (Pekín).
¿Cómo puedo iniciar, actualizar o eliminar el cifrado del lado del servidor en una secuencia de datos?
Todas estas operaciones se pueden completar mediante la consola de administración de AWS o el AWS SDK. Para obtener más información, consulte la guía de introducción al cifrado del lado del servidor de Kinesis Data Streams.
¿Qué algoritmo de cifrado se utiliza para el cifrado del lado del servidor?
Kinesis Data Streams utiliza un algoritmo AES-GCM 256 para el cifrado.
Si cifro un flujo de datos que ya tiene datos escritos, en texto sin formato o cifrado, ¿se cifrarán o descifrarán todos los datos del flujo de datos si actualizo el cifrado?
No. La nueva aplicación de cifrado solo cifrará los datos nuevos escritos en el flujo de datos (o los que están sin cifrar).
¿Qué cifra el cifrado del lado del servidor para Kinesis Data Streams?
El cifrado desde el servidor codifica la carga del mensaje y la clave de la partición, las cuales son especificadas por las aplicaciones del generador del streaming de datos.
¿El cifrado del lado del servidor es una característica específica de una partición o transmisión?
El cifrado del lado del servidor es una característica específica de una transmisión.
¿Puedo cambiar la clave KMS utilizada para cifrar un flujo de datos específico?
Sí, con la consola de administración de AWS o el AWS SDK puede elegir aplicar una nueva clave KMS a una secuencia de datos específica.
¿Kinesis Data Streams está disponible dentro del nivel gratuito de AWS?
No. En la actualidad, Kinesis Data Streams no está disponible dentro del nivel gratuito de AWS. La capa gratuita de AWS es un programa que ofrece pruebas gratuitas de varios servicios de AWS. Para obtener más detalles sobre el nivel gratuito de AWS, consulte Nivel gratuito de AWS.
Acuerdo de nivel de servicio
¿Qué se garantiza en el acuerdo de nivel de servicio (SLA) de Kinesis Data Streams?
Mediante el acuerdo de nivel de servicio de Kinesis Data Streams se garantiza un porcentaje de tiempo de disponibilidad mensual de al menos 99,9 % para Kinesis Data Streams.
¿Cómo sé si reúno los requisitos para recibir un crédito de servicio de SLA?
Será elegible para recibir un crédito del acuerdo para Kinesis Data Streams en virtud del SLA de Kinesis Data Streams si más de una zona de disponibilidad en las que ejecuta una tarea, dentro de la misma región, tiene un porcentaje de tiempo de disponibilidad mensual inferior al 99,9 % durante cualquier ciclo de facturación mensual.
Para obtener información completa sobre los términos y las condiciones del acuerdo, así como detalles sobre cómo enviar un reclamo, consulte el SLA de Amazon Kinesis Data Streams.
Precios y facturación
¿Cómo se calcula el precio de Kinesis Data Streams?
Kinesis Data Streams aplica un método de pago por uso muy sencillo. No hay costos iniciales o mínimos y solo paga los recursos que usa. Kinesis Data Streams dispone de dos modos de capacidad, bajo demanda y aprovisionado, que cuentan con opciones de facturación específicas.
¿Cómo se calcula el precio de Kinesis Data Streams en el modo bajo demanda?
En el modo de capacidad bajo demanda, se permite prescindir de la especificación del rendimiento de lectura y escritura que se espera de la aplicación. En este modo, el precio depende del volumen de datos que se captura y recupera conjuntamente con un cargo por hora para cada flujo de datos en su cuenta. Existen cargos adicionales en el caso de las características opcionales: retención de datos ampliada (luego de las primeras 24 horas y dentro de los primeros 7 días), retención de datos a largo plazo (luego de los 7 días y hasta 1 año) y distribución ramificada mejorada. Para obtener más información sobre los costos de Kinesis Data Streams, consulte Precios de Amazon Kinesis Data Streams.
¿Cómo se calcula el precio de Kinesis Data Streams en el modo aprovisionado?
En el modo de capacidad aprovisionada, se especifica la cantidad de particiones necesarias para su aplicación en función de la tasa de solicitudes de escritura y lectura. Una partición es una unidad de capacidad que proporciona 1 MB/segundo de escritura y 2 MB/segundo de lectura en todo momento. Se le cobrará cada partición de acuerdo con la tarifa por hora. También se paga por los registros escritos en el flujo de datos de Kinesis. Se incurre en gastos adicionales cuando se utilizan características opcionales como la retención ampliada y la distribución ramificada mejorada.
A continuación, se presentan dos dimensiones principales y tres opcionales en el modo aprovisionado de Kinesis Data Streams:
- Costo de las particiones por hora, determinado por la cantidad de fragmentos incluidos en el streaming de datos de Amazon Kinesis.
- Costo por unidad de carga PUT, determinado por el número de unidades de carga de 25 KB que los generadores de datos incluyen en la secuencia de datos.
Opcional:
- La retención de datos ampliada es un costo opcional determinado por la cantidad de horas de partición en que incurre el streaming de datos. Cuando la retención de datos ampliada está habilitada, paga la proporción de retención ampliada para cada partición en su streaming.
- La retención de datos a largo plazo es un costo opcional con dos dimensiones de costo: el almacenamiento de datos a largo plazo y la recuperación de datos a largo plazo. El almacenamiento de datos a largo plazo refleja el número de GB/meses en que se almacenan datos para un periodo superior a siete días y hasta 365 días. La recuperación de datos a largo plazo refleja el número de GB de datos recuperados que se han almacenado durante más de siete días.
- La distribución ramificada mejorada es un costo opcional con dos partes: horas consumidor-partición y de recuperación de datos. Las horas consumidor-partición reflejan la cantidad de particiones en un streaming mulplicadas por la cantidad de consumidores que utilizan una distribución ramificada mejorada. Las recuperaciones de datos se determinan por la cantidad de GB entregados a los consumidores que usan una distribución ramificada mejorada.
Para obtener más información sobre los costos de Kinesis Data Streams, consulte Precios de Amazon Kinesis Data Streams.
¿Cómo se calcula la hora consumidor-partición para el uso de la distribución ramificada mejorada en el modo aprovisionado?
Se calcula multiplicando la cantidad de consumidores del flujo registrados por la cantidad de particiones en el flujo. Además, solo pagará la parte prorrateada de la hora en que el consumidor se registró para utilizar una distribución ramificada mejorada. Por ejemplo, si una hora consumidor-partición cuesta 0,015 USD para un flujo de datos de 10 particiones, este consumidor al utilizar la distribución ramificada mejorada podría leer las 10 particiones y, por lo tanto, incurriría en un cargo de 0,15 USD por hora (1 consumidor * 10 particiones * 0,015 USD por hora consumidor-partición). Si hubiera dos consumidores registrados para una distribución ramificada mejorada simultáneamente, el cargo total por hora consumidor-partición sería de 0,30 USD por hora (2 consumidores * 10 particiones * 0,015 USD).
Comparación con otros servicios de AWS
¿Cuándo debo usar Kinesis Data Streams y cuándo debo usar Amazon Managed Streaming para Apache Kafka (Amazon MSK)?
Tanto Kinesis Data Streams como Amazon MSK son plataformas populares de streaming de datos que lo ayudan a crear sus propias cargas de trabajo de streaming que procesan datos para necesidades específicas. Ambos servicios son escalables, seguros y de alta disponibilidad. Ambos se pueden desplegar para ejecutar casos de uso de streaming, como análisis web y de registros en tiempo real, personalización de las experiencias de los clientes, arquitecturas basadas en eventos, análisis de IoT y detección de fraudes en tiempo real. Al elegir entre los dos, es importante tener en cuenta su caso de uso y sus requisitos específicos. Estos son algunos factores a tener en cuenta:
Familiaridad
- Si es la primera vez que utiliza las tecnologías de streaming, utilice Kinesis Data Streams.
- Si ya tiene aplicaciones que se ejecutan en Apache Kafka, utilice MSK. MSK cuenta con un programa de migración de Kafka (KMP) existente y una guía de migración para facilitar la experiencia de migración.
Preferencia por el código abierto
- Si prefiere utilizar tecnologías de código abierto, le recomendamos que utilice MSK. Tanto MSK como MSK Connect son totalmente compatibles con Apache Kafka y Kafka Connect de código abierto, respectivamente.
¿En qué se diferencia Kinesis Data Streams de Amazon SQS?
Kinesis Data Streams puede procesar macrodatos de streaming en tiempo real. Le permite ordenar los registros, así como leerlos o volver a reproducirlos en el mismo orden en varias aplicaciones de Amazon Kinesis. La biblioteca de clientes de Amazon Kinesis (KCL) entrega todos los registros de una clave de partición determinada al mismo procesador de registros, lo que facilita la creación de varias aplicaciones que lean desde un mismo flujo de datos de Kinesis (por ejemplo, para realizar un recuento, para agregar y para filtrar). Amazon Simple Queue Service (Amazon SQS) es una cola hospedada de confianza, altamente escalable y diseñada para almacenar mensajes mientras viajan de un equipo a otro. Amazon SQS le permite trasladar datos con facilidad entre componentes de aplicaciones distribuidas y le ayuda a crear aplicaciones en las que los mensajes se procesan de manera independiente (con una semántica de ack/fail a nivel de mensaje), como los flujos de trabajo automáticos.
¿Cuándo debería utilizar Kinesis Data Streams y cuándo Amazon SQS?
Se recomienda que utilice Kinesis Data Streams cuando se presenten casos de uso con requisitos similares a los siguientes:
- Para dirigir registros relativos al mismo procesador de registros (al igual que en el streaming de MapReduce). Por ejemplo, es más fácil contar y agregar cuando todos los registros de una clave determinada se enrutan al mismo procesador de registros.
- Para ordenar registros. Por ejemplo, si desea trasladar datos de logs desde el equipo host de una aplicación hasta el equipo host encargado de procesar y archivar, manteniendo el orden de los logs.
- Para utilizar la misma transmisión de forma simultánea en diferentes aplicaciones. Por ejemplo, si cuenta con una aplicación que actualiza un panel en tiempo real y otra que archiva datos en Amazon Redshift. En este caso, interesa que las dos aplicaciones consuman datos del mismo streaming de forma simultánea e independiente.
- Para consumir registros en el mismo orden unas horas después. Por ejemplo, si tiene una aplicación de facturación y otra de auditoría que se ejecuta con unas horas de retraso respecto a la primera. Dado que Kinesis Data Streams almacena datos hasta 365 días, puede ejecutar la aplicación de auditoría con hasta 365 días de retraso respecto a la aplicación de facturación.
Le recomendamos que utilice Amazon SQS cuando se presenten casos de uso con requisitos similares a los siguientes:
- Semántica del sistema de mensajería a nivel de mensajes individuales (ack/fail) y tiempo de espera de visibilidad. Por ejemplo, si tiene una cola de elementos de trabajo y desea controlar la finalización de cada elemento de forma individual. Amazon SQS hace un seguimiento de ack/fail para que la aplicación no tenga que mantener un control o un cursor de manera permanente. Amazon SQS elimina los mensajes de recepción confirmada y vuelve a enviar los mensajes fallidos una vez transcurrido el tiempo de espera de visibilidad configurado.
- Demora de mensajes individuales. Por ejemplo, si tiene una cola de tareas y tiene que retrasar tareas de forma individual. Con Amazon SQS, puede configurar los mensajes de forma individual para que tengan una demora de hasta 15 minutos.
- Aumento dinámico de la concurrencia/caudal en el momento de la lectura. Por ejemplo, si tiene una cola de trabajo y desea agregar más lectores hasta que se hayan enviado todas las transmisiones pendientes. Con Kinesis Data Streams, puede escalar verticalmente la cantidad de particiones que necesite (no obstante, tenga en cuenta que debe contar con un aprovisionamiento de particiones suficiente por adelantado).
- Uso de la capacidad de Amazon SQS para escalar de manera transparente. Por ejemplo, si coloca las solicitudes en una memoria intermedia y el volumen de carga cambia según los picos de carga ocasionales o el crecimiento natural de su negocio. Ya que cada solicitud que ha colocado en la memoria intermedia se puede procesar de forma individual, Amazon SQS puede escalarse de forma transparente para administrar la carga sin necesidad de instrucciones por su parte.