J'essaie de faire évoluer notre application Web (PHP, MySQL, memcache) dans un schéma multi-régions. Actuellement, nous utilisons une configuration avec deux instances EC2 derrière une instance ELB et une instance RDS, toutes dans la région US-EAST (Virginie).
Nous aimerions également être présents dans la région UE (Irlande). Cela signifie au moins une nouvelle instance EC2 (identique aux autres, desservant la même application).
J'ai copié l'AMI souhaitée, installé la nouvelle instance, installé une même configuration ELB (requise pour la terminaison SSL) et configuré le routage basé sur la latence dans Route53. Et cela fonctionne comme suggéré.
Mais les clients de l'UE ont des problèmes de vitesse. Cela est dû au fait que les instances EU EC2 se connectent à l'instance RDS basée aux États-Unis. Pour autant que je sache, Amazon n'a pas encore activé la réplication multi-régions RDS.
Avez-vous des suggestions sur la façon d'accélérer correctement l'ensemble de la configuration lors de l'utilisation de l'instance RDS unique?
De plus, avez-vous des idées en général sur la façon de faire évoluer les choses? Idéalement, nous aimerions continuer à utiliser la technologie RDS pour diverses raisons. Néanmoins, je suis ouvert aux suggestions (je suppose que la prochaine idée serait d'héberger nos propres serveurs MySQL).
RDS est idéal pour les déploiements dans une seule région en raison de la faible latence, mais cela devient une histoire différente lorsque vous commencez à vous étendre aux différentes régions. Si vous souhaitez conserver l'instance RDS, vous pouvez configurer votre propre serveur MySQL dans la région de l'UE et effectuer la réplication. De cette façon, la vitesse sera beaucoup plus acceptable.
la source
Récemment, AWS a fait un pas dans la direction que j'avais précédemment demandée dans ma question en annonçant des répliques de lecture RDS inter-régions . Cependant, ce n'est qu'un petit pas vers une véritable configuration multi-régions.
la source
Je crois que c'est ce que tu veux. Réplication RDS vers EC2 exécutant mysql dans une région différente.
https://aws.amazon.com/about-aws/whats-new/2013/09/05/amazon-rds-new-data-migration-capabilities-mysql/
la source
Une solution possible pour améliorer la latence pourrait être d'utiliser Amazon ElastiCache (qui est essentiellement Memcached sous les couvertures).
Vous devez créer un nœud ElastiCache dans chaque région (US-EST et EU) et faire en sorte que votre logique d'application (EC2) utilise le nœud de cache dans la mesure du possible. Si vous suivez cette voie, vous devrez reconcevoir votre application 1) savoir quoi mettre en cache et quand et 2) récupérer autant que possible du nœud ElastiCache local.
la source