Estoy tratando de escalar nuestra aplicación web (PHP, MySQL, memcache) en un esquema de varias regiones. Actualmente estamos utilizando una configuración con dos instancias EC2 detrás de una instancia ELB y una instancia RDS, todas ellas en la región US-EAST (Virginia).
También nos gustaría tener presencia en la región de la UE (Irlanda). Esto significa al menos una nueva instancia de EC2 allí (idéntica a las demás, que sirve la misma aplicación).
Copié la AMI deseada, configuré la nueva instancia, configuré una misma configuración ELB (requerida para la terminación SSL) y configuré el enrutamiento basado en latencia en Route53. Y funciona como se sugiere.
Pero, los clientes de la UE tienen problemas de velocidad. Esto se debe al hecho de que las instancias EC2 de la UE se conectan a la instancia RDS con sede en EE. UU. Hasta donde sé, Amazon aún no ha habilitado la replicación multirregional RDS.
¿Tiene alguna sugerencia sobre cómo acelerar correctamente toda la configuración mientras usa la única instancia de RDS?
Además, ¿alguna idea en general sobre cómo ampliar las cosas? Idealmente, nos gustaría continuar usando la tecnología RDS por varias razones. Sin embargo, estoy abierto a sugerencias (supongo que la siguiente idea sería alojar nuestros propios servidores MySQL).
RDS es ideal para implementaciones de una sola región debido a la baja latencia, pero se convierte en una historia diferente cuando comienza a expandirse a las diferentes regiones. Si desea conservar la instancia de RDS, puede configurar su propio servidor MySQL en la región de la UE y realizar la replicación. De esta manera, la velocidad será mucho más aceptable.
fuente
Recientemente, AWS hizo un movimiento hacia la dirección que había preguntado anteriormente en mi pregunta al anunciar réplicas de lectura RDS entre regiones . Sin embargo, esto es solo un pequeño paso hacia una verdadera configuración de varias regiones.
fuente
Creo que esto es lo que quieres. Replicación de RDS a EC2 ejecutando mysql en una región diferente.
https://aws.amazon.com/about-aws/whats-new/2013/09/05/amazon-rds-new-data-migration-capabilities-mysql/
fuente
Una posible solución para mejorar la latencia podría ser usar Amazon ElastiCache (que básicamente es Memcached debajo de las cubiertas).
Debería crear un nodo ElastiCache en cada región (US-EST y EU) y hacer que su lógica de aplicación (EC2) use el nodo de caché siempre que sea posible. Si sigue esta ruta, tendrá que volver a diseñar su aplicación 1) saber qué almacenar en caché y cuándo y 2) para obtener la mayor cantidad posible del nodo ElastiCache local.
fuente