Généralités

Q : Qu'est-ce qu'Amazon Kinesis Data Firehose ?

Amazon Kinesis Data Firehose est le moyen le plus simple de charger des données de streaming vers des magasins de données et des outils d'analyse. Les données en streaming sont capturées, transformées et chargées dans Amazon S3, Amazon Redshift, Amazon Elasticsearch Service et Splunk, ce qui permet d'effectuer des analyses quasiment en temps réel avec les tableaux de bord et outils d'informatique décisionnelle existants que vous utilisez habituellement. Amazon Kinesis Firehose est un service entièrement géré qui s'adapte automatiquement au débit de données et ne nécessite pas d'administration continue. Il peut également regrouper, compresser et chiffrer les données avant de les charger, ce qui réduit l'espace de stockage utilisé tout en renforçant la sécurité.

Q : Quelles opérations le service Amazon Kinesis Data Firehose effectue-t-il à ma place ?

Amazon Kinesis Data Firehose gère l'ensemble de l'infrastructure sous-jacente, le stockage, la mise en réseau et la configuration nécessaires pour collecter et charger vos données dans Amazon S3, Amazon Redshift, Amazon Elasticsearch Service ou Splunk. Vous n'avez à vous soucier ni de la mise en service, ni du déploiement, ni de la maintenance du matériel et des logiciels, ni de la conception d'une autre application pour gérer ce processus. Firehose se met également à l'échelle de manière élastique sans qu'aucune intervention ou qu'aucuns frais de développement associés ne soient requis. En outre, Amazon Kinesis Data Firehose réplique les données de façon synchrone sur trois installations au sein d'une région AWS, vous permettant ainsi de bénéficier d'une haute disponibilité et d'optimiser la durabilité des données à mesure qu'elles sont transportées vers les destinations.

Q : Comment utiliser Amazon Kinesis Data Firehose ?

Une fois inscrit à Amazon Web Services, vous pouvez commencer à utiliser Amazon Kinesis Data Firehose en suivant les étapes indiquées ci-après :

  • Créez un flux de diffusion Amazon Kinesis Data Firehose via la console Firehose ou par le biais de l'opération CreateDeliveryStream. Vous pouvez éventuellement configurer une fonction AWS Lambda dans votre flux de diffusion pour préparer et transformer les données brutes avant de charger les données.
  • Configurez vos producteurs de données de manière à ce qu'ils envoient des données en continu vers votre flux de diffusion à l'aide d'Amazon Kinesis Agent ou de l'API Firehose.
  • Firehose charge automatiquement et en continu vos données dans les destinations que vous indiquez.

Q : Qu'est-ce qu'une source ?

Une source est l'endroit où votre flux de données est continuellement généré et capturé. Par exemple, une source peut être un serveur de connexion s'exécutant sur des instances Amazon EC2, une application s'exécutant sur appareils mobiles, un capteur sur un appareil IoT ou un flux Kinesis.

Q : Quelles sont les limites d'Amazon Kinesis Data Firehose ?

Pour obtenir des informations sur les limites, consultez la section relative aux limites d'Amazon Kinesis Data Firehose dans le guide du développeur.

Concepts clés

Q : Qu'est-ce qu'un flux de diffusion ?

Un flux de diffusion représente l'entité sous-jacente d'Amazon Kinesis Data Firehose. Vous pouvez utiliser Firehose en créant un flux de diffusion, puis en envoyant des données vers celui-ci.

Q : Qu'est-ce qu'un enregistrement ?

Un enregistrement correspond aux données utiles que le producteur envoie vers un flux de streaming. La taille maximale d'un enregistrement (avant le codage en base64) est de 1 024 Ko.

Q : Qu'est-ce qu'une destination ?

Une destination représente le magasin de données auquel vos données seront transmises. Amazon Kinesis Data Firehose prend actuellement en charge Amazon S3, Amazon Redshift, Amazon Elasticsearch Service et Splunk en tant que destinations.

Création de flux de diffusion

Q : Comment créer un flux de diffusion ?

Vous pouvez créer un flux de diffusion Amazon Kinesis Data Firehose via la console Firehose ou par le biais de l'opération CreateDeliveryStream. Pour en savoir plus, consultez la page Creating a Delivery Stream.

Q : Quel format de compression puis-je utiliser ?

Amazon Kinesis Data Firehose vous permet de compresser vos données avant de les transférer vers Amazon S3. Le service prend actuellement en charge les formats de compression GZIP, ZIP et SNAPPY. Seul le format GZIP est pris en charge si les données sont ensuite chargées vers Amazon Redshift.

Q : Comment fonctionne la compression lorsque j'utilise la fonction d'abonnement CloudWatch Logs ?

Vous pouvez utiliser la fonction d'abonnement CloudWatch Logs pour diffuser des données en streaming de CloudWatch Logs vers Kinesis Data Firehose. Étant donné que tous les événements de journal de CloudWatch Logs sont déjà compressés au format gzip, vous devez désactiver la compression de Firehose pour éviter une double compression. Pour plus d'informations sur la fonction d'abonnement CloudWatch Logs, consultez la section relative aux filtres d'abonnement avec Amazon Kinesis Data Firehose dans le guide de l'utilisateur Amazon CloudWatch Logs.

Q : Quel type de chiffrement puis-je utiliser ?

Amazon Kinesis Data Firehose vous permet de chiffrer vos données une fois qu'elles ont été transférées vers votre compartiment Amazon S3. Lors de la création de votre flux de diffusion, vous pouvez choisir de chiffrer vos données à l'aide d'une clé AWS Key Management Service (KMS) que vous possédez. Pour en savoir plus sur KMS, consultez la page consacrée à AWS Key Management Service.

Q : Qu'est-ce que la transformation de données avec Lambda ?

Firehose peut faire appel à une fonction AWS Lambda pour transformer les données entrantes avant de les livrer à destination. Vous pouvez configurer une nouvelle fonction Lambda AWS en utilisant un plan Lambda que nous vous avons fourni ou en choisissant une fonction Lambda existante.

Q : Qu'est-ce que la sauvegarde de l'enregistrement source ?

Si vous utilisez la transformation de données avec Lambda, vous pouvez activer la sauvegarde des enregistrements source et Amazon Kinesis Data Firehose transmettra les données entrantes non transformées vers un compartiment S3 séparé. Vous pouvez spécifier un préfixe supplémentaire à ajouter devant le préfixe de temps UTC « AAAA/MM/JJ/HH » généré par Firehose.

Q : Qu'est-ce que le journal d'erreurs?

Si vous activez la transformation de données avec Lambda, Firehose peut enregistrer toutes les invocations de Lambda et les erreurs de livraison de données dans les Amazon CloudWatch Logs, afin que vous puissiez afficher les journaux d'erreurs spécifiques si l'invocation de Lambda ou la transmission de données échoue. Pour plus d'informations, consultez la page dédiée à la surveillance avec Amazon CloudWatch Logs.

Q : En quoi consistent la taille du tampon et l'intervalle de mise en mémoire tampon ?

Amazon Kinesis Data Firehose met en mémoire tampon les données de streaming entrantes jusqu'à une certaine taille ou pendant un certain laps de temps avant de les transférer vers les destinations. Vous pouvez configurer la taille du tampon et l'intervalle de mise en mémoire tampon lors de la création de votre flux de diffusion. La taille de tampon est indiquée en Mo et est comprise entre 1 Mo et 128 Mo pour la destination Amazon S3 et entre 1 Mo et 100 Mo pour la destination Amazon Elasticsearch Service. L'intervalle de mise en mémoire tampon est exprimé en secondes et est compris entre 60 et 900 secondes. Notez que lorsque la transmission de données à destination retarde l'écriture de données vers le flux de diffusion, Firehose augmente la taille du tampon de façon dynamique pour rattraper le retard et garantir la transmission de l'ensemble des données à destination.

Q : Comment la taille du tampon s'applique-t-elle si je choisis de compresser mes données ?

La taille du tampon s'applique avant la compression. Par conséquent, si vous choisissez de compresser vos données, la taille des objets au sein de votre compartiment Amazon S3 peut être inférieure à la taille du tampon que vous indiquez.

Q : Quel rôle IAM dois-je spécifier lors de la création d'un flux de diffusion ?

Amazon Kinesis Data Firehose endosse le rôle IAM que vous spécifiez pour accéder aux ressources telles que votre compartiment Amazon S3 et le domaine Amazon Elasticsearch. Pour plus d'informations, consultez la section relative au contrôle d'accès avec Amazon Kinesis Data Firehose dans le guide du développeur Amazon Kinesis Data Firehose.

Q : Quel privilège requis pour l'utilisateur Amazon Redshift dois-je spécifier lors de la création d'un flux de diffusion ?

L'utilisateur Amazon Redshift doit disposer du privilège INSERT Redshift pour copier des données à partir de votre compartiment Amazon S3 vers votre cluster Redshift.

Q : Que dois-je faire si mon cluster Amazon Redshift figure au sein d'un VPC ?

Si votre cluster Amazon Redshift figure au sein d'un VPC, vous devez autoriser Amazon Kinesis Data Firehose à accéder à votre cluster Amazon Redshift en débloquant les adresses IP Firehose depuis votre VPC. Pour obtenir des informations sur le déblocage des adresses IP sur votre VPC, consultez la section relative à l'attribution d'un accès Firehose à une destination Amazon Redshift dans le guide du développeur Amazon Kinesis Data Firehose.

Q : Pourquoi dois-je fournir un compartiment Amazon S3 lorsque je choisis Amazon Redshift en tant que destination ?

Pour la destination Amazon Redshift, Amazon Kinesis Data Firehose transfère d'abord les données vers votre compartiment Amazon S3, puis délivre une commande COPY Redshift pour charger les données depuis votre compartiment S3 vers votre cluster Redshift.

Q : Qu'est-ce que la rotation d'index pour la destination Amazon Elasticsearch Service ?

Amazon Kinesis Data Firehose peut procéder à la rotation de votre index Amazon Elasticsearch Service selon une certaine durée. Vous pouvez configurer cette durée lors de la création de votre flux de diffusion. Pour plus d'informations, consultez la section relative à la rotation d'index pour la destination Amazon ES dans le guide du développeur Amazon Kinesis Data Firehose.

Q : Pourquoi dois-je fournir un compartiment Amazon S3 lorsque je choisis Amazon Elasticsearch Service en tant que destination ?

Lors du chargement des données dans Amazon Elasticsearch Service, Amazon Kinesis Data Firehose peut sauvegarder toutes les données ou seulement les données dont la transmission a échoué. Pour profiter de cette fonctionnalité et empêcher toute perte de données, vous devez fournir un bucket (compartiment) Amazon S3 de sauvegarde.

Q : Puis-je modifier les configurations de mon flux de diffusion après l'avoir créé ?

Vous pouvez modifier la configuration de votre flux de diffusion à n'importe quel moment après sa création, Vous pouvez le faire en utilisant la console Firehose ou l'opération UpdateDestination. Votre flux de diffusion conserve l'état ACTIVE lors de la mise à jour de vos configurations et vous pouvez continuer d'envoyer des données à votre flux. En général, les configurations mises à jour prennent effet en seulement quelques minutes.

En cas de distribution vers une destination VPC, vous pouvez modifier l'URL du point de terminaison de destination, tant que la nouvelle destination est accessible dans les mêmes VPC, sous-réseaux et groupes de sécurité. Pour modifier les VPC, sous-réseaux et groupes de sécurité, vous devez recréer le flux de distribution Firehose.

Q : Puis-je utiliser un flux de distribution Firehose dans un compte pour livrer mes données dans une destination de VPC de domaine Amazon Elasticsearch Service dans un compte distinct ?

Non, votre flux de distribution Firehose et le domaine Amazon Elasticsearch Service de destination doivent se trouver dans le même compte.

Q : Puis-je utiliser un flux de distribution Firehose dans une région pour livrer mes données dans une destination de VPC de domaine Amazon Elasticsearch Service dans une région distincte ?

Non, votre flux de distribution Firehose et le domaine Amazon Elasticsearch Service de destination doivent se trouver dans la même région.

Préparation et transformation des données

Q : Comment préparer et transformer des données brutes dans Amazon Kinesis Data Firehose ?

Amazon Kinesis Data Firehose vous permet d'utiliser une fonction AWS Lambda pour préparer et transformer les données brutes entrantes dans votre flux de diffusion avant de les charger vers leurs emplacements de destination. Vous pouvez configurer une fonction AWS Lambda pour la transformation de données lorsque vous créez un nouveau flux de diffusion ou lorsque vous modifiez un flux de diffusion existant.

Q : Comment puis-je renvoyer les données préparées et transformées de ma fonction AWS Lambda vers Amazon Kinesis Data Firehose ?

Tous les enregistrements transformés provenant de Lambda doivent être renvoyés vers Firehose avec les trois paramètres suivants ; sinon, Firehose les rejettera et les traitera comme un échec de transformation de données.

  • recordId: Firehose transmet un recordId avec chaque enregistrement sur Lambda durant l'invocation. Chaque enregistrement transformé doit être renvoyé avec le même recordId. Toute incompatibilité entre le recordId original et le recordId renvoyé sera traitée comme un échec de transformation de données.
  • result: L'état du résultat de transformation de chaque enregistrement. Les valeurs suivantes sont autorisées pour ce paramètre : « Ok » si l'enregistrement est transformé correctement comme prévu. « Abandonné » si votre logique de traitement abandonne intentionnellement l'enregistrement comme prévu. « ProcessingFailed » si l'enregistrement ne peut pas être transformé comme prévu. Firehose traite les enregistrements renvoyés avec les états « OK » et « Abandonné » comme des enregistrements traités avec succès, et ceux avec l'état « ProcessingFailed » comme des enregistrements échoués lorsqu'il génère les métriques SucceedProcessing.Records et SucceedProcessing.Bytes. 
  • data: La charge utile des données transformées après le codage en base64.

Q : Quels modèles Lambda sont disponibles pour la préparation et la transformation des données ?

Firehose fournit les plans Lambda suivants que vous pouvez utiliser pour créer votre fonction Lambda pour la transformation des données :

  • General Firehose Processing: Ce plan contient le modèle de transformation et l'état des données décrit ci-dessus. Utilisez ce plan pour n'importe quelle logique de transformation personnalisée.
  • Apache Log to JSON: Ce plan convertit les lignes de journal Apache en objets JSON, avec des noms de champ JSON prédéfinis.
  • Apache Log to CSV: Ce plan convertit les lignes de journal Apache au format CSV.
  • Syslog to JSON: Ce plan convertit les lignes de journal Syslog en des objets JSON, avec des noms de champ JSON prédéfinis.
  • Syslog to CSV: Ce plan convertit les lignes Syslog au format CSV.

Q : Puis-je garder une copie de toutes les données brutes dans mon compartiment S3 ?

Oui, Firehose peut sauvegarder tous les enregistrements non transformés dans votre compartiment S3 tout en transmettant des enregistrements transformés à destination. La sauvegarde des enregistrements source peut être activée lorsque vous créez ou mettez à jour votre flux de données de livraison en continu.

Ajout de données aux flux de diffusion

Q : Comment puis-je ajouter des données à mon flux de diffusion Amazon Kinesis Data Firehose ?

Vous pouvez ajouter des données à un flux de diffusion Amazon Kinesis Data Firehose par le biais d'Amazon Kinesis Agent ou des opérations PutRecord et PutRecordBatch de Firehose. Kinesis Data Firehose s'intègre également à d'autres sources de données AWS comme Kinesis Data Streams, AWS IoT, Amazon CloudWatch Logs et Amazon CloudWatch Events.

Q : Qu'est-ce qu'un agent Amazon Kinesis Agent ?

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 de diffusion. 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 à votre flux de diffusion. Pour en savoir plus, consultez la section relative à l'écriture à l'aide d'agents.

Q : Quelles plates-formes sont prises en charge par Amazon Kinesis Agent ?

Amazon Kinesis Agent prend actuellement en charge Amazon Linux et Red Hat Enterprise Linux.

Q : Où puis-je obtenir Amazon Kinesis Agent ?

Vous pouvez télécharger et installer Amazon Kinesis Agent à l'aide de la commande et du lien indiqués ci-après :

Sur Amazon Linux : sudo yum install –y aws-kinesis-agent

Sur Red Hat Enterprise Linux : sudo yum install –y https://s3.amazonaws.com/streaming-data-agent/aws-kinesis-agent-latest.amzn1.noarch.rpm

Depuis GitHub : awlabs/amazon-kinesis-agent

Q : Comment utiliser Amazon Kinesis Agent ?

Une fois Amazon Kinesis Agent installé sur vos serveurs, vous pouvez le configurer de manière à ce qu'il surveille certains fichiers sur le disque et envoie en continu de nouvelles données vers votre flux de diffusion. Pour en savoir plus, consultez la section relative à l'écriture à l'aide d'agents.

Q : Quelle différence existe-t-il entre les opérations PutRecord et PutRecordBatch ?

L'opération PutRecord autorise un seul enregistrement de données au sein d'un appel d'API. L'opération PutRecordBatch, quant à elle, en autorise plusieurs. Pour en savoir plus, consultez les pages relatives à PutRecord et PutRecordBatch.

Q : Quels langages de programmation ou plates-formes puis-je utiliser pour accéder à l'API Amazon Kinesis Data Firehose ?

L'API Amazon Kinesis Data Firehose est disponible dans les kits de développement logiciel (SDK) Amazon Web Services. Pour consulter la liste des plates-formes et langages de programmation disposant de kits SDK Amazon Web Services, rendez-vous sur la page Outils pour Amazon Web Services.

Q : Comment ajouter des données à mon flux Firehose déployé à partir de mon flux Kinesis ?

Lorsque vous créez ou mettez à jour votre flux déployé via la console AWS ou des API Firehose, vous pouvez configurer un flux Kinesis comme source de votre flux déployé. Une fois ce flux configuré, Firehose lira automatiquement les données de votre flux Kinesis et chargera les données vers des destinations spécifiques.

Q : À quelle fréquence le service Kinesis Data Firehose lit-il les données provenant de mon flux Kinesis ?

Kinesis Data Firehose appelle Kinesis Data Streams GetRecords() une fois par seconde pour chaque partition Kinesis.

Q : D'où le service Kinesis Data Firehose lit-il les données lorsque mon flux Kinesis est configuré comme source de mon flux déployé ?

Kinesis Data Firehose démarre la lecture des données à partir du DERNIER emplacement de votre flux Kinesis lorsqu'il est configuré comme source de flux déployé. Pour en savoir plus sur l'emplacement du flux de données Kinesis, consultez GetShardIterator dans Kinesis Data Streams Service API Reference.

Q : Puis-je configurer mon flux de données Kinesis pour qu'il soit la source de plusieurs flux Firehose déployés ?

Oui. Cela dit, il est à noter que l'appel GetRecords() de Kinesis Data Firehose est comptabilisé par rapport à la limite générale d'accélération de votre partition Kinesis. Vous devez donc planifier votre flux déployé avec vos autres applications Kinesis pour vous assurer de votre accélération. Pour en savoir plus, consultez Limites de Kinesis Data Streams dans le guide du développeur Kinesis Data Streams.

Q : Puis-je quand même ajouter des données au flux déployé via Kinesis Agent ou via les opérations PutRecord et PutRecordBatch de Firehose lorsque mon flux de données Kinesis est configuré comme source ?

Non. Lorsqu'un flux de données Kinesis est configuré comme source pour un flux déployé Firehose, les opérations PutRecord et PutRecordBatch de Firehose sont désactivées. Vous devez alors ajouter des données à votre flux de données Kinesis via les opérations PutRecord et PutRecords de Kinesis Data Streams.

Q : Comment ajouter des données à mon flux déployé à partir d'AWS IoT ?

Vous pouvez ajouter des données à votre flux déployé à partir d'AWS IoT en créant une action AWS IoT qui envoie des événements à votre flux déployé. Pour en savoir plus. Consultez la section relative à l'écriture dans Amazon Kinesis Data Firehose avec AWS IoT dans le guide du développeur Kinesis Data Firehose.

Q : Comment ajouter des données à mon flux déployé à partir de CloudWatch Logs ?

Vous pouvez ajouter des données à votre flux déployé à partir de CloudWatch Logs en créant un filtre d'abonnement CloudWatch Logs qui envoie des événements à votre flux déployé. Pour en savoir, consultez Utilisation des filtres d'abonnement de CloudWatch Logs dans le guide de l'utilisateur Amazon CloudWatch.

Q : Comment ajouter des données à mon flux de diffusion Amazon Kinesis Data Firehose à partir de CloudWatch Events ?

Vous pouvez ajouter des données à votre flux Firehose déployé à partir de CloudWatch Events en créant une règle CloudWatch Events avec votre flux déployé comme cible. Pour en savoir plus, consultez la section relative à l'écriture dans Amazon Kinesis Data Firehose avec CloudWatch Events dans le guide du développeur Kinesis Data Firehose.

Diffusion de données

Q : À quelle fréquence le service Amazon Kinesis Data Firehose transfère-t-il des données vers mon compartiment Amazon S3 ?

La fréquence de transmission des données vers Amazon S3 est déterminée par la taille du tampon S3 et la valeur d'intervalle de mise en mémoire tampon configurées pour votre flux de diffusion. Amazon Kinesis Data Firehose met en mémoire tampon les données entrantes avant de les transférer vers Amazon S3. Vous pouvez configurer les valeurs de la taille de tampon S3 (1 Mo à 128 Mo) ou de l'intervalle de mise en mémoire tampon (60 à 900 secondes). La première condition remplie déclenche la transmission de données vers Amazon S3. Notez que lorsque la transmission de données à destination retarde l'importation de données vers le flux de diffusion, Amazon Kinesis Data Firehose augmente automatiquement la taille du tampon pour rattraper le retard et garantir la transmission de l'ensemble des données à destination.

Q : À quelle fréquence le service Amazon Kinesis Data Firehose transfère-t-il des données vers mon cluster Amazon Redshift ?

Pour la destination Amazon Redshift, Amazon Kinesis Data Firehose transfère d'abord les données vers votre compartiment Amazon S3, puis délivre une commande COPY Redshift pour charger les données depuis votre compartiment S3 vers votre cluster Redshift. La fréquence des opérations COPY des données depuis votre compartiment Amazon S3 vers Amazon Redshift est déterminée par la rapidité avec laquelle votre cluster Amazon Redshift peut traiter la commande COPY. S'il reste encore des données à copier, Firehose délivre une nouvelle commande COPY dès que la commande COPY précédente a bien été traitée par votre cluster Redshift.

Q : À quelle fréquence le service Amazon Kinesis Data Firehose transfère-t-il des données vers mon domaine Amazon Elasticsearch ?

La fréquence de transmission des données vers Amazon Elasticsearch Service est déterminée par les valeurs de la taille de tampon Elasticsearch et de l'intervalle de mise en mémoire tampon configurées pour votre flux de diffusion. Firehose met en mémoire tampon les données entrantes avant de les transférer vers Amazon Elasticsearch Service. Vous pouvez configurer les valeurs de la taille de tampon Elasticsearch (1 Mo à 100 Mo) ou de l'intervalle de mise en mémoire tampon (60 à 900 secondes). La première condition remplie déclenche la transmission de données vers Amazon Elasticsearch Service. Notez que lorsque la transmission de données à destination retarde l'importation de données vers le flux de diffusion, Amazon Kinesis Data Firehose augmente automatiquement la taille du tampon pour rattraper le retard et garantir la transmission de l'ensemble des données à destination.

Q : De quelle façon les données sont-elles organisées dans mon compartiment Amazon S3 ?

Amazon Kinesis Data Firehose ajoute un préfixe de temps UTC au format AAAA/MM/JJ/HH avant de placer les objets dans Amazon S3. Le préfixe génère une structure de dossiers Amazon S3, dans laquelle chaque libellé séparé par une barre oblique (/) devient un sous-dossier. Vous pouvez modifier cette structure de dossiers en ajoutant votre propre dossier de premier niveau avec une barre oblique (par exemple monApp/AAAA/MM/JJ/HH) ou en ajoutant du texte au début du nom du dossier de premier niveau AAAA (par exemple monApp AAAA/MM/JJ/HH). Pour ce faire, indiquez un préfixe S3 lors de la création de votre flux de diffusion.

Q : Quel est le modèle de dénomination des objets Amazon S3 transmis par Amazon Kinesis Data Firehose ?

Le nom des objets Amazon S3 respecte le modèle NomduFluxdeDiffusion-VersionduFluxdeDiffusion-AAAA-MM-JJ-HH-MM-SS-ChaîneAléatoire, dans lequel VersionduFluxdeDiffusion commence par 1 et augmente de 1 pour chaque modification de configuration apportée au flux de diffusion. Vous pouvez modifier les configurations du flux de diffusion (par exemple, le nom du compartiment S3, les conseils de mise en mémoire tampon, la compression et le chiffrement) via la console Firehose ou par le biais de l'opération UpdateDestination.

Q : Qu'est-ce que le dossier manifeste dans mon compartiment Amazon S3 ?

Pour la destination Amazon Redshift, Amazon Kinesis Data Firehose génère des fichiers manifestes pour charger par lot des objets Amazon S3 vers le cluster Redshift. Le dossier manifeste stocke les fichiers manifestes générés par Firehose.

Q : À quoi ressemblent les documents Elasticsearch sauvegardés dans mon bucket (compartiment) Amazon S3 ?

Si le mode « all documents » est utilisé, Amazon Kinesis Data Firehose concatène plusieurs enregistrements entrants en fonction de la configuration de la mise en mémoire tampon de votre flux de diffusion, puis les transfère vers votre compartiment S3 sous forme d'objet S3. Quel que soit le mode de sauvegarde configuré, les documents dont l'envoi a échoué sont transmis à votre compartiment S3 à l'aide d'un certain format JSON qui fournit des informations supplémentaires telles que le code d'erreur et l'heure de la tentative d'envoi. Pour plus d'informations, consultez la section relative à la sauvegarde Amazon S3 pour la destination Amazon ES dans le guide du développeur Amazon Kinesis Data Firehose.

Q : Un flux de diffusion peut-il transférer des données vers plusieurs compartiments Amazon S3 ?

A l'heure actuelle, un flux de diffusion peut transmettre des données uniquement vers un seul compartiment Amazon S3. Si vous souhaitez que les données soient transférées vers plusieurs compartiments S3, vous pouvez créer plusieurs flux de diffusion.

Q : Un flux de diffusion peut-il transférer des données vers plusieurs clusters ou tables Amazon Redshift ?

À l'heure actuelle, un flux de diffusion peut transmettre des données uniquement vers un cluster et une table Amazon Redshift. Si vous souhaitez que les données soient transférées vers plusieurs clusters ou tables Redshift, vous pouvez créer plusieurs flux de diffusion.

Q : Un flux de diffusion peut-il transférer des données vers plusieurs domaines ou index Amazon Elasticsearch Service ?

À l'heure actuelle, un flux de diffusion peut transmettre des données uniquement vers un domaine et un index Amazon Elasticsearch Service. Si vous souhaitez que les données soient transférées vers plusieurs domaines ou index Amazon Elasticsearch Service, vous pouvez créer plusieurs flux de distribution.

Q : Comment le service Amazon Kinesis Data Firehose transfère-t-il des données vers mon domaine Amazon Elasticsearch Service dans un VPC ?

Lorsque vous autorisez Kinesis Data Firehose à distribuer des données à une destination Amazon Elasticsearch Service dans un VPC, Amazon Kinesis Data Firehose crée une ou plusieurs interfaces réseau Elastic (ENI) entre comptes dans votre VPC pour chaque sous-réseau choisi. Amazon Kinesis Data Firehose utilise ces ENI pour transmettre les données dans votre VPC. Le nombre d'ENI est automatiquement mis à l'échelle pour répondre aux exigences de service.

Résolution de problèmes et gestion des flux de distribution

Q : Pourquoi suis-je soumis à des limitations lorsque j'envoie des données à mon flux de diffusion Amazon Kinesis Data Firehose ?

Par défaut, chaque flux de diffusion peut traiter jusqu'à 2 000 transactions/seconde, 5 000 enregistrements/seconde et 5 Mo/seconde. Vous pouvez facilement augmenter cette limite en soumettant un formulaire d'augmentation des limites de service.

Q : Pourquoi y a-t-il des enregistrements dupliqués dans mon compartiment Amazon S3, ma table Amazon Redshift, mon index Amazon Elasticsearch ou mes clusters Splunk ?

Amazon Kinesis Data Firehose utilise au moins une fois la sémantique pour présenter les données. Dans de rares conditions, notamment en cas de dépassement du délai de demande lors d'une tentative de livraison de données, la nouvelle tentative de livraison par Firehose peut produire des doublons si la requête précédente finit par aboutir.

Q : Que se passe-t-il si la diffusion de données vers mon compartiment Amazon S3 est un échec ?

Si la transmission de données vers votre compartiment Amazon S3 est un échec, Amazon Kinesis Data Firehose réessaie de transmettre les données toutes les 5 secondes pendant une période maximale de 24 heures. Si le problème persiste au-delà de la période de conservation maximale de 24 heures, les données sont rejetées.

Q : Que se passe-t-il si la transmission des données vers mon cluster Amazon Redshift échoue ?

Si la transmission des données vers votre cluster Amazon Redshift échoue, Amazon Kinesis Data Firehose réessaie de transmettre les données toutes les 5 minutes pendant une période maximale de 120 minutes. Une fois le délai de 120 minutes écoulé, Amazon Kinesis Data Firehose ignore le lot actuel d'objets S3 prêts pour la copie et passe au lot suivant. Les informations concernant les objets ignorés sont transmises à votre compartiment S3 en tant que fichier manifeste dans le dossier des erreurs, que vous pouvez utiliser pour effectuer un renvoi manuel. Pour obtenir des informations sur la copie manuelle des données avec des fichiers manifestes, consultez la page Using a Manifest to Specify Data Files.

Q : Que se passe-t-il si la transmission de données vers mon domaine Amazon Elasticsearch est un échec ?

Pour la destination Amazon Elasticsearch Service, vous pouvez définir une période de tentative d'envoi de 0 à 7 200 secondes lors de la création du flux de diffusion. Si la transmission de données vers votre domaine Amazon ES est un échec, Amazon Kinesis Data Firehose réessaie de transmettre les données pendant la durée définie. Une fois la période de tentative d'envoi écoulée, Amazon Kinesis Data Firehose ignore le lot de données actuel et passe au lot suivant. Les informations concernant les documents ignorés sont transmises à votre compartiment S3 dans le dossier elasticsearch_failed, que vous pouvez utiliser pour effectuer un remplissage de façon manuelle.

Q : Que se passe-t-il si la transformation de données échoue ?

Il existe deux types de scénarios d'échec lorsque Firehose tente d'évoquer votre fonction Lambda pour la transformation de données :

  • Le premier type correspond à l'échec d'invocation de la fonction pour des raisons telles que l'expiration du délai d'atteinte du réseau et l'atteinte des limites d'invocation Lambda. Dans ce genre de scénarios d'échec, Firehose refait une tentative d'invocation trois fois par défaut, puis ignore ce groupe d'enregistrement en particulier. Les enregistrements ignorés sont traités comme des enregistrements dont le traitement a échoué. Vous pouvez configurer le nombre de nouvelles tentatives d'invocations entre 0 et 300 à l'aide des API CreateDeliveryStream et UpdateDeliveryStream. Pour ce type d'échec, vous pouvez aussi utiliser la fonction de journalisation d'erreurs de Firehose afin d'émettre des erreurs d'invocation dans les journaux CloudWatch. Pour plus d'informations, consultez la page dédiée à la surveillance avec Amazon CloudWatch Logs.
  • Le deuxième type de scénario d'erreur se produit lorsque le résultat de transformation d'un enregistrement est défini sur « ProcessingFailed » lorsqu'il est renvoyé de votre fonction Lambda. Firehose traite ces enregistrements comme des enregistrements dont le traitement a échoué. Pour ce type d'échec, vous pouvez utiliser la fonction de journalisation Lambda pour émettre des journaux d'erreurs dans les journaux CloudWatch. Pour plus d'informations, consultez Accès aux Amazon CloudWatch Logs pour AWS Lambda.

Pour ces deux types de scénarios d'erreurs, les enregistrements dont l'enregistrement a échoué sont transmis vers votre compartiment S3 dans le dossier processing_failed.

Q : Pourquoi la taille des objets S3 transmis est-elle plus importante que la taille de tampon que j'ai indiquée dans la configuration des flux de diffusion ?

La taille des objets S3 transmis doit refléter la taille de tampon indiquée la plupart du temps si la condition de la taille de tampon est remplie avant la condition de l'intervalle de mise en mémoire tampon. Notez que lorsque la diffusion de données à destination retarde l'écriture de données vers le flux de diffusion, Firehose augmente la taille du tampon de façon dynamique pour rattraper le retard et garantir la diffusion de l'ensemble des données à destination. Dans ce cas, la taille des objets S3 transmis peut être plus importante que la taille de tampon indiquée.

Q : Qu'est-ce que le dossier erreurs dans mon compartiment Amazon S3 ?

Le dossier erreurs stocke les fichiers manifestes contenant des informations sur les objets S3 ayant échoué au chargement dans votre cluster Amazon Redshift. Vous pouvez charger de nouveau ces objets de façon manuelle par le biais de la commande COPY Redshift. Pour obtenir des informations sur la copie manuelle des données avec des fichiers manifestes, consultez la page Using a Manifest to Specify Data Files.

Q : Qu'est-ce que le dossier elasticsearch_failed dans mon bucket (compartiment) Amazon S3 ?

Le dossier elasticsearch_failed stocke les documents dont le chargement vers votre domaine Amazon Elasticsearch a échoué. Vous pouvez réindexer ces documents manuellement pour effectuer un remplissage.

Q : Qu'est-ce que le dossier processing_failed dans mon compartiment Amazon S3 ?

Le dossier processing_failed conserve les enregistrements dont la transformation a échoué dans votre fonction AWS Lambda. Vous pouvez à nouveau traiter ces enregistrements manuellement.

Q : Comment puis-je surveiller l'activité et les performances de mon flux de diffusion Amazon Kinesis Data Firehose ?

La console Firehose affiche les principales métriques opérationnelles et de performances, telles que le volume de données entrantes et le volume de données transmises. Amazon Kinesis Data Firehose peut également être intégré à des métriques Amazon CloudWatch, ce qui vous permet d'enregistrer, de consulter et d'analyser des métriques pour vos flux de diffusion. Pour en savoir plus sur les métriques Amazon Kinesis Data Firehose, consultez la section relative à la surveillance à l'aide des métriques Amazon CloudWatch dans le guide du développeur Amazon Kinesis Data Firehose.

Q : Comment surveiller les échecs de transformation et de transmission de données de mon flux de diffusion Amazon Kinesis Data Firehose ?

Amazon Kinesis Data Firehose peut être intégré à Amazon CloudWatch Logs, ce qui vous permet de consulter les journaux d'erreurs spécifiques en cas d'échec de transmission ou de transformation de données. Vous pouvez activer la consignation des erreurs lors de la création de votre flux de diffusion. Pour plus d'informations, consultez la section relative à la surveillance à l'aide d'Amazon CloudWatch Logs dans le guide du développeur Amazon Kinesis Data Firehose.

Q : Comment puis-je gérer et contrôler les accès à mon flux de diffusion Amazon Kinesis Data Firehose ?

Amazon Kinesis Data Firehose s'intègre à AWS Identity and Access Management, 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 de diffusion Firehose. Pour en savoir plus sur la gestion et le contrôle des accès à votre flux, consultez la page relative au contrôle d'accès avec Amazon Kinesis Data Firehose.

Q : Comment consigner les appels d'API envoyés à mon flux de diffusion Amazon Kinesis Data Firehose à des fins d'analyse de sécurité et de résolution des problèmes opérationnels ?

Amazon Kinesis Data Firehose s'intègre à 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 opérations d'API Amazon Kinesis Data Firehose prises en charge, reportez-vous à la section dédiée à la consignation des appels d'API Amazon Kinesis Data Firehose à l'aide d'AWS CloudTrail.

Tarification et facturation

Q : Le service Amazon Kinesis Data Firehose est-il disponible dans le cadre de l'offre gratuite d'AWS ?

Non. Amazon Kinesis Data Firehose n'est actuellement pas disponible dans le cadre de l'offre gratuite d'AWS. L'offre gratuite d'AWS est un programme qui permet d'essayer gratuitement un certain nombre de services AWS. Pour en savoir plus, consultez la page relative au niveau gratuit d'AWS.

Q : Combien coûte Amazon Kinesis Data Firehose ?

Amazon Kinesis Data Firehose propose un système de tarification à l'utilisation très simple. Aucun investissement initial n'est nécessaire et nous n'appliquons pas de frais minimum : vous payez uniquement pour les ressources que vous utilisez. La tarification Amazon Kinesis Data Firehose est calculée en fonction du volume de données (Go) ingérées par Firehose, chaque enregistrement étant arrondi aux 5 Ko les plus proches. Pour une distribution vers une destination dans un VPC, vous payez également pour chaque heure pendant laquelle votre flux de distribution reste alloué dans chaque zone de disponibilité et par Go de données traité vers la destination. Pour en savoir plus sur les frais liés à Amazon Kinesis Data Firehose, consultez la page Tarification Amazon Kinesis Data Firehose.

Q : Lorsque j'utilise l'opération PutRecordBatch pour envoyer des données vers Amazon Kinesis Data Firehose, comment est calculé l'arrondi aux 5 Ko ?

L'arrondi aux 5 Ko est calculé au niveau de l'enregistrement plutôt qu'au niveau de l'opération d'API. Par exemple, si votre appel PutRecordBatch comprend deux enregistrements de 1 Ko chacun, le volume de données de cet appel compte comme 10 Ko. (5 Ko par enregistrement)

Q : Le coût du service Amazon Kinesis Data Firehose inclut-il les coûts d'Amazon S3, d'Amazon Redshift, d'Amazon Elasticsearch Service et d'AWS Lambda ?

Non. Les frais associés à l'utilisation d'Amazon S3, Amazon Redshift, Amazon Elasticsearch Service et AWS Lambda, notamment le stockage et les requêtes, vous seront facturés séparément. Pour plus d'informations, consultez les pages relatives à la tarification d'Amazon S3, Amazon Redshift, Amazon Elasticsearch Service et AWS Lambda.

Contrat de niveau de service

Q : Qu'est-ce que garantit l'Amazon Kinesis Data Firehose SLA ?

Notre Amazon Kinesis Data Firehose SLA garantit un pourcentage de disponibilité mensuel d'au moins 99,9 % pour Amazon Kinesis Data Firehose.

Q : Comment savoir si je peux bénéficier d'un avoir de service dans le cadre du contrat de niveau de service (SLA) ?

Vous pouvez bénéficier d'un crédit SLA pour Amazon Kinesis Data Firehose dans le cadre du SLA Amazon Kinesis Data Firehose si plusieurs zones de disponibilité dans lesquelles vous exécutez une tâche dans la même région ont un pourcentage de disponibilité mensuel inférieur à 99,9 % pendant un cycle de facturation mensuel.

Pour consulter l'intégralité des conditions générales de l'accord de niveau de service Compute et en savoir plus sur la marche à suivre pour soumettre une demande, référez-vous à la page d'informations d'Amazon Kinesis Data Firehose SLA.

En savoir plus sur la tarification d'Amazon Kinesis Data Firehose

Visiter la page de tarification
Prêt à vous lancer ?
S'inscrire
D'autres questions ?
Nous contacter