Choix du mode de capacité du flux de données - Amazon Kinesis Data Streams

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Choix du mode de capacité du flux de données

Qu'est-ce qu'un mode de capacité de flux de données ?

Un mode de capacité détermine comment la capacité d'un flux de données est gérée et comment vous êtes facturé pour l'utilisation de votre flux de données. Dans Amazon Kinesis Data Streams, vous pouvez choisir entre unA la demandeet unprovisionnépour vos flux de données.

  • A la demande- les flux de données en mode à la demande ne nécessitent aucune planification de la capacité et évoluent automatiquement pour gérer les gigaoctets de débit d'écriture et de lecture par minute. Avec le mode à la demande, Kinesis Data Streams gère automatiquement les partitions afin de fournir le débit nécessaire.

  • Alloué- pour les flux de données avec un mode alloué, vous devez spécifier le nombre de partitions du flux de données. La capacité totale d'un flux de données est la somme des capacités de ses partitions. Vous pouvez augmenter ou diminuer le nombre de partitions présentes dans un flux de données au besoin.

Vous pouvez utiliser Kinesis Data StreamsPutRecordetPutRecordsAPI pour écrire des données dans vos flux de données en modes de capacité à la demande et provisionnée. Pour récupérer des données, les deux modes de capacité prennent en charge les consommateurs par défaut qui utilisent leGetRecordsAPI et consommateurs EFO (Enhanced Fan-Out) qui utilisent leSubscribeToShardAPI.

Toutes les fonctionnalités de Kinesis Data Streams, y compris le mode de rétention, le chiffrement, les mesures de surveillance et autres, sont prises en charge tant pour les modes à la demande que pour les modes provisionnés. Kinesis Data Streams offre une durabilité et une disponibilité élevées dans les modes de capacité à la demande et en mode provisionné.

Mode à la demande

Les flux de données en mode à la demande ne nécessitent aucune planification de la capacité et évoluent automatiquement pour gérer des gigaoctets deécriture et lecturedébit par minute. Le mode à la demande simplifie l'ingestion et le stockage de gros volumes de données à faible latence, car ilélimineprovisionnement et gestion des serveurs, du stockage ou du débit. Vous pouvez ingérer des milliards d'enregistrements par jour sans frais opérationnels.

Le mode à la demande est idéal pour répondre aux besoins d'un trafic applicatif hautement variable et imprévisible. Vous n'avez plus besoin de provisionner ces charges de travail pour une capacité maximale, ce qui peut entraîner des coûts plus élevés en raison d'une faible utilisation. Le mode à la demande est adapté aux charges de travail avec des modèles de trafic imprévisibles et très variables.

Avec le mode capacité à la demande, vous payez par Go de données écrites et lues à partir de vos flux de données. Vous devez spécifier le débit de lecture et d'écriture que votre application est supposée atteindre. Kinesis Data Streams s'adapte instantanément à vos charges de travail à mesure qu'elles augmentent ou diminuent. Pour plus d'informations, consultez la Tarification d'Amazon Kinesis Data Streams.

YVous pouvez créer un nouveau flux de données avec le mode à la demande à l'aide de la console Kinesis Data Streams, des API ou des commandes CLI.

Un flux de données en mode à la demande peut accueillir jusqu'au double du débit d'écriture maximal observé au cours des 30 derniers jours. Alors que le débit d'écriture de votre flux de données atteint un nouveau pic, Kinesis Data Streams adapte automatiquement la capacité du flux de données. Par exemple, si votre flux de données a un débit d'écriture variant entre 10 Mo/s et 40 Mo/s, Kinesis Data Streams vous permet de doubler facilement votre débit de pointe précédent, soit 80 Mo/s. Si le même flux de données présente un nouveau débit de pointe de 50 Mo/s, Kinesis Data Streams garantit une capacité suffisante pour ingérer 100 Mo/s de débit d'écriture. Toutefois, la limitation de l'écriture peut se produire si votre trafic augmente à plus du double du pic précédent pendant une durée de 15 minutes. Vous devez réessayer ces demandes limitées.

La capacité de lecture agrégée d'un flux de données avec le mode à la demande augmente proportionnellement au débit d'écriture. Cela permet de garantir que les applications grand public disposent toujours d'un débit de lecture adéquat pour traiter les données entrantes en temps réel. Vous obtenez au moins deux fois le débit d'écriture par rapport aux données de lecture à l'aide de la commandeGetRecordsAPI. Nous vous recommandons d'utiliser une application grand public avec leGetRecordAPI, de sorte qu'elle dispose de suffisamment d'espace pour rattraper son retard lorsque l'application doit se remettre d'un temps d'arrêt. Il est recommandé d'utiliser la fonctionnalité de ventilation améliorée de Kinesis Data Streams pour les scénarios nécessitant l'ajout de plusieurs applications grand public. Enhanced Fan-Out prend en charge l'ajout d'un maximum de 20 applications grand public à un flux de données à l'aide duSubscribeToShardAPI, chaque application grand public ayant un débit dédié.

Gestion des exceptions de débit de lecture et d'écriture

Avec le mode de capacité à la demande (identique au mode de capacité provisionnée), vous devez spécifier une clé de partition avec chaque enregistrement pour écrire des données dans votre flux de données. Kinesis Data Streams utilise vos clés de partition pour distribuer les données entre les partitions. Kinesis Data Streams surveille le trafic pour chaque partition. Lorsque le trafic entrant dépasse 500 Kb/s par partition, il fractionne la partition en 15 minutes. Les valeurs de clé de hachage de la partition parent sont redistribuées uniformément entre les partitions enfants.

Si votre trafic entrant dépasse le double de votre pic précédent, vous pouvez rencontrer des exceptions en lecture ou en écriture pendant environ 15 minutes, même lorsque vos données sont réparties uniformément entre les partitions. Nous vous recommandons de réessayer toutes ces demandes afin que tous les enregistrements soient correctement stockés dans Kinesis Data Streams.

Vous pouvez rencontrer des exceptions en lecture et en écriture si vous utilisez une clé de partition qui entraîne une distribution inégale des données et que les enregistrements attribués à une partition particulière dépassent ses limites. Avec le mode à la demande, le flux de données s'adapte automatiquement pour gérer des modèles de distribution de données inégaux, sauf si une seule clé de partition dépasse le débit d'une partition de 1 Mo/s et les limites de 1 000 enregistrements par seconde.

En mode à la demande, Kinesis Data Streams divise les partitions uniformément lorsqu'il détecte une augmentation du trafic. Cependant, il ne détecte ni n'isole les clés de hachage qui entraînent une plus grande partie du trafic entrant vers une partition particulière. Si vous utilisez des clés de partition très inégales, vous pouvez continuer à recevoir des exceptions en écriture. Pour ces cas d'utilisation, nous vous recommandons d'utiliser le mode de capacité alloué prenant en charge les fractionnement de partitions granulaires.

Mode alloué

Avec le mode alloué, après avoir créé le flux de données, vous pouvez augmenter ou diminuer de manière dynamique votre capacité de partition à l'aide de laAWS Management Consoleou leUpdateShardNombreAPI. Vous pouvez effectuer des mises à jour tant qu'un producteur ou une application consommateur Kinesis Data Streams écrit ou lit des données à partir du flux.

Le mode provisionné est adapté au trafic prévisible avec des besoins de capacité faciles à prévoir. Vous pouvez utiliser le mode provisionné si vous souhaitez un contrôle précis sur la façon dont les données sont distribuées entre les partitions.

Avec le mode alloué, vous devez spécifier le nombre de partitions pour le flux de données. Pour déterminer la taille d'un flux de données avec le mode alloué, vous avez besoin des valeurs d'entrée suivantes :

  • Taille moyenne des enregistrements de données devant être ajoutés au flux en kilo-octets (Ko), en arrondissant au kilo-octet le plus proche (average_data_size_in_KB).

  • Nombre d'enregistrements de données devant être ajoutés au flux et lus depuis celui-ci, par seconde (records_per_second).

  • Nombre de consommateurs, qui sont des applications Kinesis Data Streams qui consomment des données simultanément et indépendamment dans le flux (number_of_consumers).

  • Bande passante d'écriture entrante en Ko (incoming_write_bandwidth_in_KB), qui est égale à la taille average_data_size_in_KB multipliée par la valeur de records_per_second.

  • Bande passante de lecture sortante en Ko (outgoing_read_bandwidth_in_KB), qui est égale à la taille incoming_write_bandwidth_in_KB multipliée par la valeur de number_of_consumers.

Vous pouvez calculer le nombre de partitions (number_of_shards) dont votre flux a besoin en utilisant les valeurs d'entrée de la formule suivante.

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

Vous pouvez toujours rencontrer des exceptions de débit de lecture et d'écriture en mode provisionné si vous ne configurez pas votre flux de données pour gérer votre débit de pointe. Dans ce cas, vous devez redimensionner manuellement votre flux de données pour prendre en charge votre trafic de données.

Vous pouvez également rencontrer des exceptions en lecture et en écriture si vous utilisez une clé de partition qui entraîne une distribution inégale des données et que les enregistrements attribués à une partition dépassent ses limites. Pour résoudre ce problème en mode provisionné, identifiez ces partitions et divisez-les manuellement pour mieux prendre en charge votre trafic. Pour de plus amples informations, veuillez consulterRepartitionnement d'un flux.

Basculer entre les modes de capacité

Vous pouvez passer du mode de capacité de votre flux de données à la demande au mode provisionné, ou du mode provisionné à la demande. Pour chaque flux de données de votreAWS, vous pouvez basculer entre les modes de capacité à la demande et le mode de capacité provisionnée deux fois en 24 heures.

La commutation entre les modes de capacité d'un flux de données ne perturbe pas vos applications qui utilisent ce flux de données. Vous pouvez continuer à écrire et à lire ce flux de données. Lorsque vous basculez entre les modes de capacité, du mode à la demande au mode provisionné ou du mode provisionné à la demande, l'état du flux est défini surMise à jour en cours. Vous devez attendre l'état du flux de données pour accéder àActifavant de pouvoir modifier à nouveau ses propriétés.

Lorsque vous passez du mode de capacité provisionnée au mode de capacité à la demande, votre flux de données conserve d'abord le nombre de partitions qu'il avait avant la transition. À partir de ce moment, Kinesis Data Streams surveille votre trafic de données et fait évoluer le nombre de partitions de ce flux de données à la demande en fonction de votre débit d'écriture.

Lorsque vous passez du mode à la demande au mode provisionné, votre flux de données conserve également au départ le nombre de partitions qu'il avait avant la transition, mais à partir de ce moment, vous êtes responsable de la surveillance et de l'ajustement du nombre de partitions de ce flux de données pour qu'il corresponde correctement à votre débit d'écriture.