Amazon Kinesis Streams vous permet de concevoir des applications personnalisées qui traitent ou analysent des données diffusées afin de répondre à vos besoins spécifiques. Vous pouvez configurer des centaines de milliers de producteurs de données de manière à ce qu'ils ajoutent des données en continu à un flux Amazon Kinesis. Cela peut comprendre, par exemple, les données issues des parcours de navigation sur un site Web, des journaux d'application et des flux de réseaux sociaux. En moins d'une seconde, ces données sont accessibles à vos applications Amazon Kinesis, qui peuvent les lire et les traiter depuis le flux.

Dans le schéma d'architecture suivant, Amazon Kinesis Streams est utilisé en tant que passerelle d'une solution Big Data. Les données issues de diverses sources sont ajoutées à un flux Amazon Kinesis, puis les données du flux sont utilisées par différentes applications Amazon Kinesis. Dans cet exemple, une application (en jaune) exécute un tableau de bord en temps réel pour les données diffusées en continu. Une autre application (en rouge) réalise une agrégation simple et envoie les données traitées vers Amazon S3. Les données dans Amazon S3 sont par ailleurs traitées et stockées dans Amazon Redshift à des fins d'analyse complexe. La troisième application (en vert) transmet les données brutes vers Amazon S3. Ces dernières sont ensuite archivées dans Amazon Glacier pour un stockage à long terme plus économique. Veuillez noter que trois de ces pipelines de traitement de données surviennent simultanément et en parallèle. Amazon Kinesis Streams vous permet d'avoir autant de consommateurs du flux de données que votre solution l'exige, sans impact négatif sur les performances.

kinesis-architecture-crop

La partition est l'unité de débit de base d'un flux Amazon Kinesis. Une partition offre une capacité de 1 Mo/s de données en entrée et de 2 Mo/s de données en sortie. Une partition peut prendre en charge jusqu'à 1 000 enregistrements PUT par seconde. Vous déterminez le nombre de partitions nécessaires lors de la création du flux. Vous pouvez, par exemple, créer un flux comportant deux partitions. Ce flux aura un débit de 2 Mo/s en entrée et de 4 Mo/s en sortie, et pourra prendre en charge jusqu'à 2 000 enregistrements PUT par seconde. Vous pouvez surveiller les métriques au niveau des shards dans Amazon Kinesis Streams et ajouter ou supprimer de manière dynamique des partitions de votre flux au fur et à mesure que votre débit de données change, en repartitionnant le flux.

L'enregistrement est l'unité utilisée pour les données stockées dans un flux Amazon Kinesis. Un enregistrement se compose d'un numéro de séquence, d'une clé de partition et d'un blob de données. Le blob de données correspond aux données utiles que le producteur ajoute au flux. La taille maximale d'un blob de données (charge de données utiles après le décodage en base64) est de 1 méga-octet (Mo).

La clé de partition sert à isoler et à acheminer les enregistrements de données vers différentes partitions d'un flux. La clé de partition est spécifiée par le producteur lorsqu'il ajoute des données au flux Amazon Kinesis. Par exemple, supposons que vous disposiez d'un flux Amazon Kinesis comprenant deux partitions (partition 1 et partition 2). Vous pouvez configurer votre producteur de données afin qu'il utilise deux clés de partition (clé A et clé B), de manière à placer tous les enregistrements associés à la clé A dans la partition 1 et tous ceux associés à la clé B, dans la partition 2.

Un numéro de séquence est un identifiant unique associé à un enregistrement de données. Le numéro de séquence est attribué par Amazon Kinesis Streams lorsqu'un producteur de données appelle l'API PutRecord ou PutRecords afin d'ajouter des données à un flux Amazon Kinesis. Les numéros de séquence correspondant à une même clé de partition deviennent généralement de plus en plus longs au fil du temps ; plus l'intervalle de temps entre chaque requête PutRecord ou PutRecords est élevé, plus les numéros de séquence sont longs. 


Une fois votre inscription à Amazon Web Services terminée, vous pouvez commencer à utiliser Amazon Kinesis Streams en :

  • créant un flux Amazon Kinesis via la console de gestion Amazon Kinesis ou l'API CreateStream d'Amazon Kinesis ;
  • configurant vos producteurs de données de manière à ce qu'ils envoient des données en continu vers votre flux Amazon Kinesis ;
  • développant vos applications Amazon Kinesis pour pouvoir lire et traiter les données de votre flux Amazon Kinesis.

Les producteurs de données peuvent placer des données dans les flux Amazon Kinesis via les API Amazon Kinesis Streams, la bibliothèque Amazon KPL (Kinesis Producer Library) ou Amazon Kinesis Agent.

 

Amazon Kinesis Streams propose deux API pour placer des données dans un flux Amazon Kinesis : PutRecord et PutRecords . L'opération PutRecord autorise un seul enregistrement de données au sein d'un appel d'API. L'opération PutRecords, quant à elle, en autorise plusieurs.

La bibliothèque Producer Amazon Kinesis (KPL) est une bibliothèque facile à utiliser et hautement configurable qui vous permet d'ajouter des données à un flux Amazon Kinesis. La bibliothèque Producer Amazon Kinesis (KCL) est dotée d'une interface simple, asynchrone et fiable qui vous permet d'atteindre rapidement un débit producteur élevé avec le minimum de ressources client.

Amazon Kinesis Agent est une application Java pré-intégrée qui permet de collecter et d'envoyer facilement des données vers votre flux Amazon Kinesis. Cet agent peut être installé dans des environnements basés sur des serveurs Linux tels que des serveurs Web, serveurs de journaux ou encore serveurs de base de données. L'agent surveille certains fichiers et envoie en continu des données sur votre flux. 


Une application Amazon Kinesis est un consommateur de données qui lit et traite des données provenant d'un flux Amazon Kinesis. Vous pouvez développer vos applications Amazon Kinesis via l'API Amazon Kinesis ou la bibliothèque client Amazon Kinesis (KCL).

La bibliothèque client Amazon Kinesis (KCL) est une bibliothèque pré-intégrée qui vous permet de créer facilement des applications Amazon Kinesis pour la lecture et le traitement des données d'un flux Amazon Kinesis. La bibliothèque KCL gère des problèmes complexes, tels que l'adaptation à des flux aux volumes fluctuants, l'équilibrage de la charge pour les données diffusées en continu, la coordination des services distribués et le traitement des données en garantissant la tolérance aux pannes. Elle vous permet ainsi de vous concentrer sur la logique métier lors de la création des applications Amazon Kinesis.

La bibliothèque Connector Amazon Kinesis est une bibliothèque pré-intégrée qui vous permet d'intégrer facilement Amazon Kinesis à d'autres services AWS et à des outils tiers. La bibliothèque client Amazon Kinesis (KCL) est requise pour l'utilisation de la bibliothèque Connector. Dans sa version actuelle, cette bibliothèque fournit des connecteurs pour Amazon DynamoDB, Amazon Redshift, Amazon S3 et ElasticSearch. La bibliothèque inclut également des exemples de connecteurs de chaque type, ainsi que des fichiers de construction Apache Ant pour l'exécution des exemples.

Amazon Kinesis Storm Spout est une bibliothèque pré-intégrée qui vous permet d'intégrer facilement Amazon Kinesis Streams à Apache Storm. Dans sa version actuelle, la bibliothèque Amazon Kinesis Storm Spout récupère des données de flux Amazon Kinesis et les émet en tant que tuples. Vous pouvez l'ajouter à votre topologie Storm afin d'exploiter Amazon Kinesis Streams en tant que service de collecte, de stockage et de consultation à la fois évolutif et fiable.


Amazon Kinesis Firehose peut également être intégré à Amazon CloudWatch, ce qui vous permet d'enregistrer, de consulter et d'analyser des métriques CloudWatch pour vos flux Amazon Kinesis et leurs shards. Pour en savoir plus sur les métriques Amazon Kinesis Streams, consultez la section relative à la surveillance d'Amazon Kinesis à l'aide d'Amazon CloudWatch.

Amazon Kinesis Streams s'intègre à AWS Identity and Access Management (IAM), un service qui vous permet de contrôler l'accès des utilisateurs à vos ressources et services AWS en toute sécurité. Vous pouvez, par exemple, créer une politique permettant uniquement à un utilisateur ou à un groupe d'utilisateurs en particulier d'ajouter des données à votre flux Amazon Kinesis. Pour en savoir plus sur la gestion et le contrôle des accès à votre flux Amazon Kinesis, référez-vous à la section Controlling Access to Amazon Kinesis Resources using IAM.

Amazon Kinesis Streams peut être intégré à AWS CloudTrail, un service qui enregistre les appels d'API AWS sur votre compte et vous fournit les fichiers journaux. Pour en savoir plus sur la consignation des appels d'API et consulter la liste des API Amazon Kinesis prises en charge, consultez la section relative à la consignation des appels d'API Amazon Kinesis à l'aide d'AWS CloudTrail.

Vous pouvez avoir un accès privé aux API Kinesis Streams à partir de votre VPC (Amazon Virtual Private Cloud) en créant des points de terminaison de VPC. Avec des points de terminaison de VPC, le routage entre le VPC et Kinesis Streams est géré par le réseau AWS, sans qu'il y ait besoin d'une passerelle Internet, d'une passerelle NAT ou d'une connexion VPN. La dernière génération de points de terminaison de VPC utilisée par Kinesis Streams repose sur AWS PrivateLink, une technologie qui permet une connectivité privée entre les services AWS en utilisant des interfaces réseau elastic (ENI) avec des adresses IP privées dans vos VPC. Pour en savoir plus, consultez la documentation d'AWS PrivateLink.

Vous pouvez chiffrer les données saisies dans Kinesis Streams à l'aide d'un chiffrement du côté du serveur ou du client. Le chiffrement côté serveur est une fonction entièrement gérée qui chiffre et déchiffre automatiquement les données lorsqu'elles sont transférées vers un flux ou lorsqu'elles en sont extraites. Sinon, vous pouvez chiffrer les données du côté du client avant de les transférer dans un flux. Pour en savoir plus, consultez la section Sécurité des FAQ Kinesis Streams.

Amazon Kinesis vous permet d'ajouter des balises à vos flux Amazon Kinesis afin de gérer plus facilement les coûts et les ressources. Une balise est un libellé défini par l'utilisateur sous forme de paire clé-valeur, destiné à faciliter l'organisation des ressources AWS. Par exemple, vous pouvez attribuer des balises à vos flux Amazon Kinesis en fonction de leur centre de coût, ce qui vous permet de catégoriser et de suivre vos frais Amazon Kinesis par centre de coûts. Pour plus d'informations, consultez la section relative au tagging de vos flux Amazon Kinesis.