View a markdown version of this page

Elegir el modo correcto para el flujo - Amazon Kinesis Data Streams

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Elegir el modo correcto para el flujo

En los temas siguientes se explica cómo elegir el mejor modo para su aplicación y cómo cambiar entre los modos, si fuera necesario.

¿Cuáles son los distintos modos de Kinesis Data Streams?

Un modo determina cómo se administra la capacidad de un flujo de datos y cómo se le cobra por el uso de su flujo de datos. En Amazon Kinesis Data Streams, puede elegir On-demand Standard , On-demand Advantage y Provisioned como modo para sus transmisiones de datos.

  • On-demand Estándar: las transmisiones de datos con un modo bajo demanda no requieren planificación de la capacidad y se escalan automáticamente para gestionar gigabytes de rendimiento de escritura y lectura por minuto. Con el modo bajo demanda, Kinesis Data Streams administra automáticamente las particiones para proporcionar el rendimiento necesario.

  • On-demand Ventaja: un modo a nivel de cuenta que le brinda más capacidades y proporciona una estructura de precios más simple para las transmisiones bajo demanda. En este modo, puede aumentar de forma proactiva la capacidad de rendimiento de escritura de un flujo en cualquier momento. También puedes activar una reducción si una ráfaga de datos transitoria ha provocado que la transmisión escale considerablemente más allá de su capacidad máxima. En cuanto a los precios, ya no hay un cargo fijo por cada transmisión. El uso de la ingesta, la recuperación de datos y la retención prolongada de datos en todas las transmisiones bajo demanda es al menos un 60% más bajo que en On-demand la versión estándar.

  • Aprovisionado: para el flujo de datos con un modo aprovisionado, debe especificar el número de particiones para el flujo de datos. La capacidad total de un flujo de datos es la suma de las capacidades de las particiones. Puede aumentar o reducir el número de particiones de un flujo de datos, según sea necesario.

Puede utilizar las API PutRecord y PutRecords de Kinesis Data Streams para escribir datos en sus flujos de datos en cualquier modo. Para recuperar datos, los tres modos admiten a los consumidores predeterminados que utilizan la GetRecords API y a los consumidores mejorados Fan-Out (EFO) que utilizan la API. SubscribeToShard

Todas las capacidades de Kinesis Data Streams, incluidos el modo de retención, el cifrado y las métricas de supervisión, entre otros, son compatibles tanto para el modo bajo demanda como para el modo aprovisionado. Kinesis Data Streams proporciona una alta durabilidad y disponibilidad tanto en el modo bajo demanda como en el modo de capacidad aprovisionada.

On-demand Características y casos de uso del modo estándar

Los flujos de datos en el modo bajo demanda no requieren planificación de la capacidad y se escalan automáticamente para gestionar gigabytes de capacidad de escritura y lectura por minuto. On-demand El modo simplifica la ingesta y el almacenamiento de grandes volúmenes de datos con una latencia baja, ya que elimina el aprovisionamiento y la administración de los servidores, el almacenamiento y el rendimiento. Puede ingerir miles de millones de registros al día sin ninguna sobrecarga operativa.

On-demand el modo es ideal para abordar las necesidades de un tráfico de aplicaciones altamente variable e impredecible. Ya no es necesario aprovisionar estas cargas de trabajo para alcanzar la capacidad máxima, lo que puede generar costos más altos debido a la baja utilización. On-demand el modo es adecuado para cargas de trabajo con patrones de tráfico impredecibles y muy variables.

Con el modo de capacidad bajo demanda, paga por GB de datos escritos y leídos de sus flujos de datos. No necesita especificar el rendimiento de lectura y escritura que espera de su aplicación. Kinesis Data Streams se adapta instantáneamente a sus cargas de trabajo a medida que aumentan o disminuyen. Para obtener más información, consulte los Precios de Amazon Kinesis Data Streams.

Un flujo de datos en el modo bajo demanda admite hasta el doble del rendimiento de escritura máximo observado en los 30 días anteriores. A medida que el rendimiento de escritura de su flujo de datos alcanza un nuevo pico, Kinesis Data Streams escala automáticamente la capacidad del flujo de datos. Por ejemplo, si su transmisión de datos tiene un rendimiento de escritura que varía entre 10 MB/s y 40 MB/s, Kinesis Data Streams se asegura de que pueda hacer ráfagas fácilmente para duplicar su rendimiento máximo anterior, es decir, 80. MB/s Si la misma transmisión de datos mantiene un nuevo rendimiento máximo de 50 MB/s, Kinesis Data Streams garantiza que haya suficiente capacidad para absorber el 100% MB/s del rendimiento de escritura. Sin embargo, puede producirse una limitación de escritura si el tráfico aumenta a más del doble del pico anterior en un periodo de 15 minutos. En este caso, es necesario reintentar las peticiones limitadas.

La capacidad de lectura agregada de un flujo de datos con el modo bajo demanda aumenta proporcionalmente al rendimiento de escritura. Esto ayuda a garantizar que las aplicaciones de consumo siempre tengan un rendimiento de lectura adecuado para procesar los datos entrantes en tiempo real. Con la API GetRecords se obtiene al menos el doble de rendimiento de escritura que de lectura de datos. Le recomendamos que utilice una aplicación de consumo con la API GetRecord, para que tenga espacio suficiente de recuperación cuando la aplicación necesite reponerse de un tiempo de inactividad. Se recomienda utilizar la Fan-Out capacidad mejorada de Kinesis Data Streams en situaciones en las que sea necesario agregar más de una aplicación para el consumidor. Enhanced Fan-Out admite la adición de hasta 20 aplicaciones de consumo a un flujo de datos mediante la SubscribeToShard API, y cada aplicación de consumidor tiene un rendimiento dedicado.

Manejar excepciones de rendimiento de lectura y escritura

Con el modo bajo demanda (igual que con el modo de capacidad aprovisionada), debe especificar una clave de partición con cada registro para escribir datos en su flujo de datos. Kinesis Data Streams utiliza sus claves de partición para distribuir los datos entre las particiones. Kinesis Data Streams supervisa el tráfico de cada partición. Cuando el tráfico entrante supera los 500 KB/s por fragmento, el fragmento se divide en 15 minutos. Los valores de clave hash de la partición principal se redistribuyen uniformemente entre las particiones secundarias.

Si el tráfico entrante supera el doble de su pico anterior, puede experimentar excepciones de lectura o escritura durante unos 15 minutos, incluso cuando sus datos se distribuyan uniformemente entre las particiones. Le recomendamos que reintente todas estas solicitudes para que todos los registros se almacenen correctamente en Kinesis Data Streams.

Puede experimentar excepciones de lectura y escritura si utiliza una clave de partición que provoque una distribución desigual de los datos y los registros asignados a una partición concreta superan sus límites. Con el modo bajo demanda, el flujo de datos se adapta automáticamente para gestionar patrones de distribución de datos desiguales, a menos que una sola clave de partición supere los límites de 1 MB/s rendimiento y 1000 registros por segundo de un fragmento.

En el modo bajo demanda, Kinesis Data Streams divide las particiones de manera uniforme cuando detecta un aumento del tráfico. Sin embargo, no detecta ni aísla las claves hash que dirigen una mayor parte del tráfico entrante a una partición concreta. Si utiliza claves de partición muy desiguales, es posible que siga recibiendo excepciones de escritura. Para estos casos de uso, le recomendamos que utilice el modo de capacidad aprovisionada que admite divisiones de particiones granulares.

On-demand Características y casos de uso del modo Advantage

On-demand Advantage es una configuración a nivel de cuenta que desbloquea más funciones y proporciona una estructura de precios diferente para todas las transmisiones bajo demanda de la región. En este modo, los flujos bajo demanda conservan su funcionalidad y siguen escalando automáticamente la capacidad según el uso real de datos. Si desea aumentar de forma proactiva la capacidad de rendimiento de escritura de una transmisión, puede configurar el rendimiento en caliente. Por ejemplo, si su flujo de datos tiene un rendimiento de escritura de entre 10 MB/s y 40 MB/s, puede esperar que gestione aumentos de rendimiento 80MB/s de hasta 6 al instante sin limitaciones. Sin embargo, si prevé que un evento próximo alcanzará su punto máximo 200MB/s de tráfico, puede configurar la transmisión con un rendimiento óptimo de 200MB/s para garantizar que la capacidad esté disponible cuando llegue el rendimiento de los datos. El uso de un rendimiento óptimo no implica ningún coste adicional. Si una ráfaga de datos transitoria ha provocado que la transmisión se escale más allá de su capacidad máxima, puede activar una reducción de escala. Para ello, reconfigure el rendimiento en caliente de la transmisión al mismo valor o a un valor inferior. La capacidad de transmisión se reduce al número solicitado o a la cantidad necesaria para soportar el uso máximo de ingesta de datos en la última hora, lo que sea mayor.

Otra ventaja del modo On-demand Advantage es que las transmisiones bajo demanda pasan a tener una estructura de precios más sencilla. Con este modo activado, ya no tendrás que pagar cargos fijos por transmisión, y solo tendrás que pagar los cargos por la ingesta y recuperación de datos y los cargos opcionales de retención ampliada. Cada dimensión de precios también tiene un descuento significativo en comparación con la dimensión correspondiente de la versión Estándar. On-demand Para obtener más información, consulte los Precios de Amazon Kinesis Data Streams.

Las recuperaciones de datos de distribución ramificada mejorada tampoco tienen un precio superior en comparación con las recuperaciones de datos estándar de este modo. Además, con el modo On-demand Advantage, puedes registrar hasta 50 consumidores por transmisión para que utilicen la distribución mejorada. Al habilitar On-demand Advantage, la cuenta se dedica al menos a 25MiB/s la ingesta y recuperación 25MiB/s de datos en todas las transmisiones bajo demanda. En el caso de las cuentas que cumplen los requisitos mínimos de uso, la consola de Kinesis Data Streams permite comprobar si los patrones de uso de la cuenta serían adecuados para usar On-demand el modo Advantage.

Si el uso de datos de su cuenta es inferior al requerido, se le cobrará la diferencia en concepto de déficit, pero seguirá teniendo la misma tarifa con descuento. Para habilitar On-demand Advantage también hay un período mínimo de 24 horas antes de poder deshabilitar el modo. En general, On-demand Advantage es la mejor manera de hacer streaming con Kinesis Data Streams si tiene un rendimiento constante cercano o superior al compromiso mínimo, necesita muchos consumidores dispersos u opera con cientos de transmisiones de datos.

Características del modo aprovisionado y casos de uso

Con el modo aprovisionado, después de crear la transmisión de datos, puede aumentar o reducir de forma dinámica la capacidad de sus fragmentos mediante la API o la Consola de administración de AWS API. UpdateShardCount Puede realizar actualizaciones mientras haya una aplicación productora o consumidora de Kinesis Data Streams que escriba o lea datos del flujo.

El modo aprovisionado es adecuado para tráfico predecible con requisitos de capacidad fáciles de prever. Puede utilizar el modo aprovisionado si desea un control detallado sobre cómo se distribuyen los datos entre las particiones.

Con el modo aprovisionado, debe especificar el número de particiones del flujo de datos. Para determinar el tamaño de un flujo de datos con el modo aprovisionado, necesita los siguientes valores de entrada:

  • El tamaño promedio del registro de datos escrito en el flujo en kilobytes (KB), redondeado al 1 KB más cercano (average_data_size_in_KB).

  • El número de registros de datos escritos en la secuencia de y leídos desde esta por segundo (records_per_second).

  • El número de consumidores, que son aplicaciones de Kinesis Data Streams que consumen datos de forma simultánea e independiente del flujo (number_of_consumers).

  • El ancho de banda de escritura entrante (en KBincoming_write_bandwidth_in_KB), que es igual a average_data_size_in_KB multiplicado por records_per_second.

  • El ancho de banda de lectura saliente (en KBoutgoing_read_bandwidth_in_KB), que es igual a incoming_write_bandwidth_in_KB multiplicado por number_of_consumers.

Puede calcular el número de particiones (number_of_shards) que su flujo necesita mediante los valores de entrada de la siguiente fórmula.

number_of_shards = ceiling(max(incoming_write_bandwidth_in_KiB/1024, outgoing_read_bandwidth_in_KiB/2048))

En el modo aprovisionado, es posible que se produzcan excepciones en el rendimiento de lectura y escritura si no se configura el flujo de datos para manejar los picos de rendimiento. En este caso, debe escalar manualmente su flujo de datos para acomodar el tráfico de datos.

También puede experimentar excepciones de lectura y escritura si utiliza una clave de partición que provoque una distribución desigual de los datos y los registros signados a una partición superan sus límites. Para resolver este problema en el modo aprovisionado, identifique estas particiones y divídalas manualmente para acomodar mejor su tráfico. Para obtener más información, consulte Redistribución de un flujo.

Cambio entre modos

Para cada flujo de datos que tengas Cuenta de AWS, puedes cambiar entre el modo bajo demanda y el modo aprovisionado dos veces en 24 horas. El cambio entre los modos no provoca ninguna interrupción en las aplicaciones que utilizan este flujo de datos. Puede seguir escribiendo y leyendo de este flujo de datos. Al cambiar entre los modos, ya sea de bajo demanda a provisionado o de provisionado a bajo demanda, el estado del flujo pasa a Actualizando. Debe esperar a que el estado del flujo de datos pase a Activo para poder modificar de nuevo sus propiedades.

Al cambiar del modo de capacidad aprovisionada al modo bajo demanda, el flujo de datos conserva inicialmente el recuento de particiones que tenía antes de la transición y, a partir de ese momento, Kinesis Data Streams supervisa el tráfico de datos y escala el recuento de particiones de este flujo de datos bajo demanda en función del rendimiento de escritura. Cuando cambia del modo bajo demanda al modo aprovisionado, el flujo de datos también conserva inicialmente el recuento de particiones que tenía antes de la transición, pero a partir de este momento, el usuario es responsable de supervisar y ajustar el recuento de particiones de este flujo de datos para adaptarse adecuadamente al rendimiento de escritura.

Puedes cambiar del modo On-demand Estándar al Avanzado On-demand habilitando una configuración a nivel de cuenta. Cuando está habilitada, la cuenta se compromete a utilizar al menos 25MiB/s la ingesta y 25MiB/s la recuperación de datos en todas las transmisiones bajo demanda de la región. Después de habilitarla, debes esperar al menos 24 horas para poder deshabilitar On-demand Advantage, pero puedes solicitar el cambio en cualquier momento. Si quieres cambiar de On-demand Advantage a On-demand Standard, primero debes eliminar cualquier rendimiento en caliente configurado en las transmisiones bajo demanda.