96 votes

Comment fonctionne réellement la sauvegarde/snapshot d'Amazon RDS ?

Je suis un client d'Amazon RDS et je subis quotidiennement des pics de latence d'écriture d'Amazon RDS, correspondant à peu près à la fenêtre de sauvegarde. Je constate également des pics à la fin d'un instantané (exemple : l'exécution d'un instantané prend environ 1 heure et dans les 5 dernières minutes, la latence d'écriture atteint un pic). J'exécute un déploiement multi-AZ m1.large.

Y a-t-il quelqu'un sur Stack qui peut expliquer comment la sauvegarde d'Amazon RDS est en fait en train de travailler ? J'ai lu la documentation d'Amazon RDS, et pour autant que je puisse dire, Amazon RDS ne se comporte pas conformément aux spécifications. Plus précisément, ces opérations de sauvegarde/snapshot devraient toucher ma réplique, et donc ne pas causer de temps d'arrêt/perte de performance, du moins je le pensais.

Je peux résumer mon problème en six questions :

  • Que se passe-t-il techniquement pendant un instantané et une sauvegarde, et en quoi sont-ils différents ? (Si vous répondez à cette question, veuillez me dire si vous êtes en mesure de confirmer empiriquement votre réponse, ou si vous me citez simplement de la documentation).
  • Faut-il s'attendre à un pic de latence en écriture pendant la fenêtre de sauvegarde sur un déploiement multi-AZ ?
  • Faut-il s'attendre à un pic de latence en écriture à la fin d'un instantané dans un déploiement multi-AZ ?
  • Mon pic de latence en écriture serait-il encore plus élevé si je n'étais pas multi-AZ ?
  • Sur le plan architectural, serais-je en mesure d'éviter ces pics de latence en écriture si je mettais en place ma propre base de données fonctionnant sur deux instances EC2 m1.large ?
  • Existe-t-il des configurations qui me permettraient d'éviter ces pics de latence en écriture tout en continuant à héberger ma base de données avec RDS, ou suis-je effectivement à la merci d'Amazon ?

Question bonus : où et comment hébergez-vous votre base de données mysql ?

Je peux dire que j'ai été généralement satisfait de RDS, à l'exception de ces problèmes quotidiens de latence d'écriture. J'aime la surveillance intégrée de la base de données et il a été assez simple de la configurer et de la faire fonctionner.

Gracias.

amazon RDS write latency

80voto

Joshua Points 2622

Nous utilisons également plusieurs instances RDS, en plus de MySQL sur certaines machines que nous gérons nous-mêmes. Je ne peux pas faire de commentaires spécifiques, car je ne suis pas un ingénieur d'Amazon, mais j'ai appris plusieurs choses qui pourraient expliquer ce que vous voyez :

  • Bien qu'Amazon ne partage pas à 100% les détails du backend, nous soupçonnons fortement qu'ils utilisent leur système EBS pour soutenir les bases de données RDS.

  • Cet article permet d'expliquer les limitations d'EBS et la fonctionnalité des snapshots. http://blog.rightscale.com/2008/08/20/amazon-ebs-explained/ Encore une fois, bien que ce ne soit pas explicite, il serait logique qu'Amazon utilise cette infrastructure pour fournir des services RDS.

  • En général, une sauvegarde MySQL, contrairement à un instantané, implique l'utilisation d'un outil comme mysqldump pour créer un fichier d'instructions SQL qui reproduira ensuite la base de données. La base de données n'a pas besoin d'être gelée pour ce faire. Avec un backend EBS, la meilleure pratique consiste à geler la base de données (mettre en pause toutes les transactions) pendant que vous effectuez le snapshot pour éviter la corruption des données.

  • Les pics que vous voyez à la fin de la fenêtre de sauvegarde. Si la réplication est mise en pause par Amazon pendant l'instantané de votre réplique, la réplique devra alors " rattraper " les transactions lorsque l'instantané sera terminé. Cela entraînerait un pic de latence.

  • La réplication dans un déploiement multi-AZ est par nature plus lente qu'un déploiement à une seule AZ. C'est le prix à payer pour une meilleure redondance.

7 votes

Je peux confirmer qu'Amazon RDS utilise EBS comme magasin de sauvegarde pour ses bases de données RDS. Les graphiques de latence de lecture et de latence d'écriture dans RDS Cloudwatch décrivent effectivement une instance EBS. Merci pour cette réponse, elle a du sens.

1 votes

Amazon donne plus de détails dans son post mortem de la panne ici. aws.amazon.com/message/65648

0 votes

@Joshua avez-vous des idées sur ce sujet (quelque peu connexe) ? stackoverflow.com/questions/6799371/ Gracias.

6voto

Anurag Kale Points 75

Amazon a révélé l'architecture de base qu'elle utilise dans les déploiements Multi AZ. Cela peut aider les gens à prendre des décisions

https://aws.amazon.com/blogs/database/amazon-rds-under-the-hood-multi-az/

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X