Estou tentando escalar nosso aplicativo da web (PHP, MySQL, memcache) em um esquema de várias regiões. Atualmente, estamos usando uma instalação com duas instâncias EC2 atrás de uma instância ELB e RDS, todas na região US-EAST (Virgínia).
Gostaríamos de estar presentes também na região da UE (Irlanda). Isso significa pelo menos uma nova instância do EC2 lá (idêntica às outras, servindo o mesmo aplicativo).
Copiei a AMI desejada, instalei a nova instância, instale a mesma configuração ELB (necessária para a terminação SSL) e configurei o roteamento baseado em latência no Route53. E funciona como sugerido.
Mas, os clientes da UE têm problemas de velocidade. Isso ocorre porque as instâncias do EC2 da UE se conectam à instância do RDS dos EUA. Até onde eu sei, a Amazon ainda não ativou a replicação de várias regiões do RDS.
Você tem alguma sugestão sobre como acelerar corretamente toda a instalação enquanto usa a única instância do RDS?
Além disso, alguma idéia geral sobre como escalar as coisas? Idealmente, gostaríamos de continuar usando a tecnologia RDS por vários motivos. No entanto, estou aberto a sugestões (acho que a próxima idéia seria hospedar nossos próprios servidores MySQL).
O RDS é ótimo para implantações de região única devido à baixa latência, mas torna-se uma história diferente quando você começa a expandir para as diferentes regiões. Se você deseja manter a instância do RDS, pode configurar seu próprio servidor MySQL na região da UE e fazer replicação. Dessa forma, a velocidade será muito mais aceitável.
fonte
Recentemente, a AWS avançou na direção que eu havia perguntado anteriormente em minha pergunta, anunciando réplicas de leitura RDS entre regiões . No entanto, este é apenas um pequeno passo em direção a uma verdadeira configuração de várias regiões.
fonte
Eu acredito que é isso que você quer. Replicação RDS para EC2 executando o mysql em uma região diferente.
https://aws.amazon.com/about-aws/whats-new/2013/09/05/amazon-rds-new-data-migration-capabilities-mysql/
fonte
Uma solução possível para melhorar a latência seria usar o Amazon ElastiCache (que é basicamente o Memcached nos bastidores).
Você precisaria criar um nó ElastiCache em cada região (US-EST e EU) e fazer com que sua lógica de aplicativo (EC2) usasse o nó de cache sempre que possível. Se você seguir esse caminho, terá que re-arquitetar seu aplicativo 1) saber o que armazenar em cache e quando e 2) obter o máximo possível do nó local do ElastiCache.
fonte