1

Besoin d'informations sur les meilleures pratiques pour ci-dessous AWS cas spécifique d'utilisation,AWS Multi région ElastiCache synchronisation

  1. Notre application Java Web est déployée en nous-est-1 et nous-Ouest-2 régions.
  2. Il communique avec Dynamo DB et avec Elcapache basé sur Memcached. Il est placé au-dessus de la base de données Dynamo dans les deux régions.
  3. Nous avons activé la réplication Dynamo DB entre us-east-1 et us-west-2.
  4. La route 53 dirige les appels API vers la région appropriée.

Maintenant, le problème est lorsque nous créons ou mettons à jour un enregistrement dans Dynamo DB il est inséré dans Dynamo DB et est mis en cache dans cette région particulière. Record get est également répliqué dans d'autres régions de la base de données Dynamo, mais le cache ne reste pas synchronisé puisqu'il n'y a pas de réplication entre ElastiCache.

Comment régler ce problème de la meilleure façon possible?

+0

Mettez-vous simplement en cache les données dans DynamoDB dans Elasticache ou le traitez-vous d'une manière ou d'une autre, puis insérez-le dans Elasticache? Si c'est le cas, vous pouvez utiliser [DynamoDB Accelerator] (https://aws.amazon.com/dynamodb/dax/) qui a été conçu pour ce cas d'utilisation. – birryree

+0

Juste la mise en cache des données dans DynamoDB – Deepak

+0

Ensuite, il semble définitivement que DynamoDB Accelerator s'adapte à votre cas d'utilisation. Garder les clusters Elasticache distribués en synchronisation nécessiterait probablement beaucoup de colle et quelques services de sidecar supplémentaires afin que les changements dans un cache soient propagés à l'autre (et je ne sais pas si cela serait facile pour Elasticache). – birryree

Répondre

1

Une autre option est d'utiliser DynamoDB DAX. C'est un cache à écriture immédiate, ce qui signifie que vous n'avez pas besoin de synchroniser les données de la base de données avec votre cache. Cela arrive quand derrière les rideaux lorsque vous écrivez des données en utilisant l'API DynamoDB normale. Mais si vous voulez toujours utiliser ElastiCache, vous pouvez utiliser DynamoDB Streams. Vous pouvez implémenter une fonction Lambda qui sera déclenchée sur chaque mise à jour DynamoDB dans une table et écrire de nouvelles données dans ElastiCache.

This Cet article peut vous donner quelques idées sur la façon de procéder.