Je souhaite optimiser la façon dont Amazon DynamoDB interagit avec Amazon Kinesis Data Streams et résoudre des problèmes.
Brève description
Les problèmes courants que vous pouvez rencontrer lors de l'utilisation de Kinesis Data Streams avec votre table DynamoDB sont les suivants :
- Vos enregistrements Kinesis Data Streams échouent.
- Vos coûts sont élevés ou fluctuent.
Pour vous aider à résoudre les problèmes, consultez vos journaux AWS CloudTrail et surveillez les métriques de Kinesis Data Stream dans Amazon CloudWatch.
Remarque : La durée de stockage par défaut des données dans DynamoDB et Kinesis Stream est définie sur une fenêtre de 24 heures. Toutefois, vous pouvez prolonger la période de conservation de votre flux afin de conserver les données jusqu'à un an (365 jours ou 8 760 heures).
Résolution
Résoudre les problèmes liés aux enregistrements en échec
Pour déterminer pourquoi un enregistrement échoue, consultez vos journaux CloudTrail. Les raisons courantes pour lesquelles un enregistrement peut échouer sont les suivantes :
Si l'erreur ProvisionedThroughputExceededException s'affiche et que le flux est en mode de capacité provisionnée, cela signifie que le nombre de partitions est insuffisant. Fournissez plus de partitions pour gérer les opérations de lecture et d'écriture de vos tables.
Si l'erreur ProvisionedThroughputExceededException s'affiche et que le flux est en mode de capacité à la demande, il se peut que vous utilisiez une clé de partition incorrecte. Une clé de partition incorrecte peut répartir vos données de manière inégale entre les partitions. Une distribution inégale des données peut surcharger certaines partitions avec des enregistrements dépassant le quota de vitesse de lecture de 2 Mo par seconde et le quota de taux d'écriture allant jusqu'à 1 Mo par seconde.
Pour résoudre ce problème, choisissez une clé de partition qui répartit uniformément les données entre vos partitions.
Choisir le mode de capacité adapté pour optimiser les coûts
Pour optimiser les performances et les coûts de vos flux de données Kinesis avec DynamoDB, choisissez le mode de capacité approprié.
Si la charge de travail de votre base de données DynamoDB fluctue de manière significative et est difficile à prévoir, sélectionnez le mode de capacité à la demande. Étant donné que Kinesis Data Streams gère automatiquement les partitions, vous n'avez pas besoin de planifier votre capacité.
Si votre charge de travail est plus stable et prévisible, sélectionnez le mode de capacité provisionnée. Vous pouvez spécifier le nombre de partitions nécessaires pour prendre en compte les enregistrements de capture des données modifiées à partir de votre table DynamoDB.
Utiliser les journaux CloudTrail pour consulter l'activité de votre API
Pour résoudre les problèmes liés aux flux de données liés aux activités de l'API du plan de contrôle, consultez vos journaux CloudTrail. CloudTrail journalise toutes les opérations du plan de contrôle et inclut des informations sur l'activité du flux, par exemple lorsqu'un flux est activé ou désactivé. Analysez les journaux CloudTrail pour détecter les problèmes liés au débit provisionné ou aux ressources Kinesis et DynamoDB. Utilisez ensuite l'API Kinesis Data Streams pour gérer vos partitions.
Utiliser les métriques de Kinesis Data Streams pour un dépannage supplémentaire
Pour surveiller les métriques de Kinesis Data Streams, utilisez CloudWatch.
Les métriques suivantes vous aident à identifier les problèmes courants :
- La métrique GetRecords.IteratorAgeMilliseconds indique l'âge du dernier enregistrement reçu de tous les appels GetRecords à un flux de données pendant une période donnée.
- La métrique GetRecords.Latency indique la durée de chaque opération GetRecords sur un flux Kinesis pendant une période donnée.
- La métrique ThrottledPutRecordCount indique le nombre d'enregistrements qui sont limités en raison d'une capacité insuffisante pour le flux de données.
- Les métriques WriteProvisionedThroughputExceeded et ReadProvisionedThroughputExceeded indiquent le nombre d'enregistrements rejetés en raison de la limitation du flux de données pendant une période donnée.
Informations connexes
Autoscaling de Amazon Kinesis Data Streams à l'aide d'Amazon CloudWatch et AWS Lambda
Résolution des problèmes rencontrés par les utilisateurs de Kinesis Data Streams