Je souhaite mettre à jour la période de conservation de mon cluster Amazon Managed Streaming for Apache Kafka (Amazon MSK).
Brève description
Utilisez la période de conservation des données Amazon MSK pour contrôler la quantité de données que vous stockez dans votre cluster MSK. Lorsque vous définissez une période de conservation, vous pouvez supprimer automatiquement les anciens messages dont vous n'avez pas besoin, ce qui vous permet de réduire vos coûts de stockage et d'améliorer les performances du cluster.
Par défaut, la période de conservation des données Amazon MSK est de 7 jours. Toutefois, vous pouvez modifier la période de conservation en fonction de vos besoins. Si vous ne configurez pas correctement la période de conservation, Amazon MSK risque de ne pas supprimer vos données dans les délais appropriés.
Apache Kafka divise les partitions thématiques en segments. La taille de segment maximale par défaut est de 1 Go. Pour modifier la taille maximale, mettez à jour log.segment.bytes au niveau de l’agent ou segment.bytes au niveau de la rubrique. Pour plus d'informations, consultez les pages Mise à jour des configurations de l’agent et Mise à jour de la configuration des rubriques par défaut sur le site Web d'Apache Kafka.
Apache Kafka utilise également log.roll.ms pour contrôler le cycle de vie d'un segment. Ces paramètres déterminent l'âge maximum d'un segment et la valeur par défaut est de 168 heures. Apache Kafka crée de nouveaux segments uniquement lorsque segments.bytes ou log.roll.ms atteignent la valeur limite configurée. Une fois qu'Apache Kafka a créé le nouveau segment, les anciens segments sont alors inactifs. MSK supprime ensuite les anciens segments lorsque les nouveaux segments atteignent la valeur de retention.ms configurée.
Remarque : Seuls les segments inactifs peuvent être supprimés.
Résolution
Pour configurer votre période de conservation, modifiez vos paramètres retention.ms et segment.ms.
Par exemple, si vous définissez la valeur de segment.ms sur 24 heures et la valeur de retention.ms sur 24 heures, Amazon MSK supprime les données au bout de 48 heures. Le segment est alors inactif, selon qu'il respecte pour la première fois le délai de 24 heures ou la limite de données de 1 Go.
Pour supprimer les données après 24 heures, réduisez la valeur de segment.ms par défaut à 1 heure et la valeur de retention.ms à 23 heures. Amazon MSK supprime les données au bout de 24 heures ou lorsque le segment atteint la valeur de taille configurée, selon la première éventualité.
Pour calculer la taille actuelle de toutes les rubriques, exécutez la commande suivante sur l'interface de ligne de commande (CLI) Apache Kafka dans Amazon MSK :
./kafka-topics.sh --command-config client.properties --bootstrap-server $BK --list |
xargs -I{} sh -c "echo -n '{} - ' &&
./kafka-log-dirs.sh --command-config client.properties --bootstrap-server $BK --topic-list {} --describe |
grep '^{' |
jq '[ ..|.size? | numbers ] | add' |
numfmt --to iec " |
tee /tmp/topics-by-size.list
Remarque : La commande précédente utilise l'interface de ligne de commande Apache Kafka pour répertorier toutes les rubriques, puis calcule et renvoie la taille de chaque rubrique.
Exemple de sortie :
BrandNewTopic - 0
CrossAccountMskTopic - 0
NewTopicwithNewInstance - 0
SameAccountMskTopic - 0
Test - 0
__amazon_msk_canary - 4.6M
__consumer_offsets - 33M
dataloss - 1.8K
datalossB1 - 999
provisioned - 0
Les bonnes pratiques en matière d'utilisation du stockage sont les suivantes :
- Vérifiez votre valeur de log.segments.bytes ou log.roll.ms et réduisez la valeur de votre segment. Si vous définissez une valeur inférieure, vous pouvez créer des segments fréquemment et désactiver les anciens segments.
- Ajustez les paramètres de segment.ms et segment.bytes pour équilibrer l'efficacité du stockage et les performances de l’agent. Ne définissez pas les paramètres sur une valeur trop basse, car cela peut entraîner une surcharge de processeur supplémentaire et mettre à rude épreuve les ressources de votre agent.
Remarque : log.segments.bytes et log.roll.ms sont des paramètres de segment au niveau de l’agent. segment.bytes et segment.ms sont des paramètres de segment au niveau de la rubrique. Les paramètres au niveau de la rubrique sont prioritaires par rapport aux paramètres au niveau de l’agent.
Informations connexes
retention.ms sur le site Web d'Apache Kafka