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.
Choisissez le mode de capacité du flux de données
Les rubriques suivantes expliquent comment choisir le mode de capacité adapté à votre application et comment passer d'un mode de capacité à un autre si nécessaire.
Rubriques
Qu'est-ce qu'un mode de capacité de flux de données ?
Un mode capacité détermine comment la capacité d'un flux de données est gérée et comment l'utilisation de votre flux de données vous est facturée. Dans Amazon Kinesis Data Streams, vous pouvez choisir entre un mode à la demande et un mode provisionné pour vos flux de données.
-
À la demande : les flux de données en mode à la demande ne nécessitent aucune planification de la capacité et se mettent automatiquement à l'échelle pour gérer des gigaoctets de débit d'écriture et de lecture par minute. En mode à la demande, Kinesis Data Streams gère automatiquement les partitions afin de fournir le débit nécessaire.
-
Provisionné : les flux de données en mode provisionné nécessitent la spécification du nombre de partitions. 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 en fonction des besoins.
Vous pouvez utiliser Kinesis Data Streams pour écrire des données dans vos PutRecord
flux PutRecords
APIs de données à la fois en mode à la demande et en mode capacité provisionnée. Pour récupérer des données, les deux modes de capacité prennent en charge les consommateurs par défaut qui utilisent le GetRecords
API et les consommateurs Enhanced Fan-Out (EFO) qui utilisent le. SubscribeToShard
API
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 à la fois pour le mode à la demande et le mode provisionné. Kinesis Data Streams garantit une durabilité et une disponibilité élevées à la fois en mode de capacité à la demande et en mode de capacité provisionnée.
Fonctionnalités et cas d'utilisation du mode à la demande
Les flux de données en mode à la demande ne nécessitent aucune planification de la capacité et se mettent automatiquement à l'échelle pour gérer des gigaoctets de débit d'écriture et de lecture par minute. Le mode à la demande simplifie l'ingestion et le stockage de gros volumes de données avec une faible latence, car il élimine le provisionnement et la gestion des serveurs, du stockage ou du débit. Vous pouvez ingérer des milliards d'enregistrements par jour sans aucune surcharge opérationnelle.
Le mode à la demande est idéal pour répondre aux besoins d'un trafic d'application très variable et imprévisible. Il n'est plus nécessaire de provisionner ces charges de travail pour une capacité maximale, ce qui peut entraîner des coûts plus élevés pour une faible utilisation. Le mode à la demande convient aux charges de travail caractérisées par des modèles de trafic imprévisibles et très variables.
En mode de capacité à la demande, vous payez par gigaoctet de données écrites et lues à partir de vos flux de données. Il n'est pas nécessaire de spécifier le débit de lecture et d'écriture que vous attendez de votre application. Kinesis Data Streams s'adapte instantanément à vos charges de travail lorsqu'elles augmentent ou diminuent. Pour plus d'informations, consultez la Tarification d'Amazon Kinesis Data Streams
Un flux de données en mode à la demande peut atteindre le double du débit d'écriture maximal observé au cours des 30 jours précédents. Lorsque le débit d'écriture de votre flux de données atteint un nouveau maximum, Kinesis Data Streams adapte automatiquement la capacité du flux de données. Par exemple, si le débit d'écriture de votre flux de données varie entre 10 Mo/s et 40 Mo/s, Kinesis Data Streams vous permet de doubler facilement votre débit maximal précédent, soit 80 Mo/s. Si le même flux de données atteint un nouveau débit maximal de 50 Mo/s, Kinesis Data Streams s'assure qu'il y a suffisamment de capacité pour ingérer 100 Mo/s de débit d'écriture. Toutefois, une limitation du nombre d'écritures peut se produire si votre trafic augmente jusqu'à plus du double du maximum précédent dans un délai de 15 minutes. Vous devez réessayer ces demandes limitées.
La capacité de lecture agrégée d'un flux de données en mode à la demande augmente proportionnellement au débit d'écriture. Cela permet de garantir que les applications consommateur disposent toujours d'un débit de lecture suffisant pour traiter les données entrantes en temps réel. Vous obtenez un débit d'écriture au moins deux fois supérieur à celui des données de lecture utilisant le GetRecords
API. Nous vous recommandons d'utiliser une seule application grand public avec le GetRecord
API, afin qu'elle dispose de suffisamment d'espace pour rattraper son retard lorsque l'application doit se remettre d'une interruption de service. Il est recommandé d'utiliser la fonctionnalité de débit amélioré Enhanced Fan-Out de Kinesis Data Streams pour les scénarios nécessitant l'ajout de plusieurs applications consommateur. Enhanced Fan-Out permet d'ajouter jusqu'à 20 applications grand public à un flux de données à l'aide du SubscribeToShard
API, chaque application client disposant d'un débit dédié.
Gérer les exceptions de débit de lecture et d'écriture
En mode de capacité à la demande (tout comme en mode de capacité provisionnée), vous devez spécifier une clé de partition pour chaque enregistrement afin d'écrire des données dans votre flux de données. Kinesis Data Streams utilise vos clés de partition pour répartir les données entre les partitions. Kinesis Data Streams surveille le trafic de chaque partition. Lorsque le trafic entrant dépasse 500 Ko/s par partition, le service fractionne la partition en moins de 15 minutes. Les valeurs de la clé de hachage de la partition parent sont redistribuées uniformément sur les partitions enfants.
Si votre trafic entrant dépasse le double du maximum précédent, vous pouvez rencontrer des exceptions de lecture ou d'écriture pendant environ 15 minutes, même si vos données sont réparties de manière uniforme sur l'ensemble des partitions. Nous vous recommandons de réessayer toutes ces demandes afin que tous les enregistrements soient correctement stockés dans Kinesis Data Streams.
Il est possible que vous rencontriez des exceptions de lecture et d'é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 les limites de cette dernière. En mode à la demande, le flux de données s'adapte automatiquement pour gérer les modèles de distribution inégale des données, à moins qu'une seule clé de partition ne dépasse les limites de débit de 1 Mo/s et de 1 000 enregistrements par seconde d'une partition.
En mode à la demande, Kinesis Data Streams fractionne les partitions de manière égale lorsqu'il détecte une augmentation du trafic. Toutefois, il ne détecte ni n'isole les clés de hachage qui acheminent une plus grande partie du trafic entrant vers une partition donnée. Si vous utilisez des clés de partition très inégales, il se peut que vous continuiez à recevoir des exceptions d'écriture. Pour de tels cas d'utilisation, nous vous recommandons d'utiliser le mode de capacité provisionnée qui prend en charge les fractionnements granulaires des partitions.
Fonctionnalités et cas d'utilisation du mode provisionné
En mode provisionné, après avoir créé le flux de données, vous pouvez augmenter ou diminuer dynamiquement la capacité de votre partition à l'aide du AWS Management Console ou du. UpdateShardCountAPI Vous pouvez effectuer des mises à jour pendant qu'une application producteur ou consommateur de Kinesis Data Streams écrit ou lit des données dans le flux.
Le mode provisionné est adapté à un trafic prévisible dont les besoins en capacité sont faciles à prévoir. Vous pouvez utiliser le mode provisionné si vous souhaitez un contrôle précis sur la manière dont les données sont distribuées à travers les partitions.
En mode provisionné, vous devez spécifier le nombre de partitions du flux de données. Pour déterminer la taille d'un flux de données en mode provisionné, vous avez besoin des valeurs d'entrée suivantes :
-
Taille moyenne des enregistrements de données écrits dans le flux en kilo-octets (Ko), arrondie au Ko 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, c'est-à-dire d'applications Kinesis Data Streams qui consomment des données simultanément et indépendamment du flux (
number_of_consumers
). -
Bande passante d'écriture entrante en Ko (
incoming_write_bandwidth_in_KB
), qui est égale à la tailleaverage_data_size_in_KB
multipliée par la valeur derecords_per_second
. -
Bande passante de lecture sortante en Ko (
outgoing_read_bandwidth_in_KB
), qui est égale à la tailleincoming_write_bandwidth_in_KB
multipliée par la valeur denumber_of_consumers
.
Vous pouvez calculer le nombre initial de partitions (number_of_shards
) dont votre flux a besoin en utilisant les valeurs d'entrée de la formule ci-dessous.
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 maximal. Dans ce cas, vous devez mettre à l'échelle manuellement votre flux de données pour l'adapter à votre trafic de données.
Il est également possible que vous rencontriez des exceptions de lecture et d'é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 les limites de cette dernière. Pour résoudre ce problème en mode provisionné, identifiez ces partitions et fractionnez-les manuellement afin de mieux s'adapter à votre trafic. PoPour plus d'informations, consultez la rubrique Repartitionnement d'un flux (français non garanti).
Basculer entre les modes de capacité
Vous pouvez changer le mode de capacité de votre flux de données de « à la demande » à « provisionné », ou de « provisionné » à « à la demande ». Pour chaque flux de données de votre compte AWS , vous pouvez passer deux fois en 24 heures du mode de capacité à la demande au mode de capacité provisionnée.
Le passage d'un mode de capacité d'un flux de données à un autre ne perturbe pas les applications qui utilisent ce flux de données. Vous pouvez continuer à écrire et à lire dans ce flux de données. Lorsque vous passez d'un mode de capacité à l'autre, soit du mode à la demande au mode provisionné, soit du mode provisionné au mode à la demande, l'état du flux est défini comme étant En cours de mise à jour. Vous devez attendre que l'état du flux de données passe à Actif afin de pouvoir modifier à nouveau ses propriétés.
Lorsque vous passez du mode capacité provisionnée au mode capacité à la demande, votre flux de données conserve initialement le nombre de partitions qu'il possédait avant la transition. À partir de ce moment, Kinesis Data Streams surveille votre trafic de données et adapte 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 initialement le nombre de partitions qu'il possédait avant la transition, mais à partir de ce moment, il vous incombe de surveiller et d'ajuster le nombre de partitions de ce flux de données afin de l'adapter correctement à votre débit d'écriture.