Elegir el modo de capacidad del flujo de datos - 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 de capacidad del flujo de datos

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

¿Qué es el modo de capacidad de un flujo de datos?

Un modo de capacidad 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 entre un modo bajo demanda y un modo aprovisionado para sus flujos de datos.

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

  • 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 tanto en el modo de capacidad bajo demanda como en el de capacidad aprovisionada. Para recuperar datos, ambos modos de capacidad admiten consumidores predeterminados que utilizan la API GetRecords y consumidores de Distribución ramificada mejorada (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.

Características del modo bajo demanda y casos de uso

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

El modo bajo demanda es ideal para responder a las necesidades de un tráfico de aplicaciones muy variable e impredecible. Ya no tendrá que aprovisionar estas cargas de trabajo para los picos de capacidad, lo que puede dar lugar a costos más elevados debido al bajo uso. El modo bajo demanda 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 el flujo de datos tiene un rendimiento de escritura que varía entre 10 MB/s y 40 MB/s, Kinesis Data Streams garantiza que pueda alcanzar fácilmente el doble de su rendimiento máximo anterior, es decir, 80 MB/s. Si el mismo flujo de datos mantiene un nuevo rendimiento máximo de 50 MB/s, Kinesis Data Streams garantiza que hay capacidad suficiente para ingerir 100 MB/s de 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 que utilice la capacidad de distribución ramificada mejorada de Kinesis Data Streams para escenarios que requieran agregar más de una aplicación consumidora. La distribución ramificada mejorada admite la adición de hasta 20 aplicaciones consumidoras a un flujo de datos mediante la API SubscribeToShard, y cada aplicación consumidora tiene un rendimiento dedicado.

Manejar excepciones de rendimiento de lectura y escritura

Con el modo de capacidad 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 partición divide la partición 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 manejar patrones de distribución de datos desiguales a menos que una sola clave de partición supere los límites de rendimiento de 1 MB/s y 1000 registros por segundo de una partición.

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.

Características del modo aprovisionado y casos de uso

Con el modo aprovisionado, después de crear el flujo de datos, puede aumentar o reducir su capacidad en particiones de forma dinámica mediante la AWS Management Console o la 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 = 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.

Cambiar entre los modos de capacidad

Puede cambiar el modo de capacidad de su flujo de datos de bajo demanda a aprovisionado, o de aprovisionado a bajo demanda. Todos los flujos de datos de su cuenta de AWS permiten que se cambie entre el modo de capacidad bajo demanda y el modo de capacidad aprovisionado dos veces en un plazo de 24 horas.

El cambio entre los modos de capacidad de un flujo de datos 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 de capacidad, 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.