Я пытаюсь масштабировать наше веб-приложение (PHP, MySQL, memcache) в многорегиональной схеме. В настоящее время мы используем установку с двумя экземплярами EC2 позади ELB и экземпляром RDS, все они находятся в регионе США-ВОСТОК (Вирджиния).
Мы хотели бы также присутствовать в регионе ЕС (Ирландия). Это означает, по крайней мере, новый экземпляр EC2 (идентичный другим, обслуживающим то же приложение).
Я скопировал нужный AMI, настроил новый экземпляр, настроил ту же конфигурацию ELB (требуется для завершения SSL) и настроил маршрутизацию на основе задержки в Route53. И это работает как предложено.
Но у клиентов из ЕС есть проблемы со скоростью. Это связано с тем, что экземпляры EC2 ЕС подключаются к экземпляру RDS в США. Насколько я знаю, Amazon еще не включил многозонную репликацию RDS.
Есть ли у вас какие-либо предложения о том, как правильно ускорить всю настройку при использовании одного экземпляра RDS?
Кроме того, какие-либо идеи в целом о том, как масштабировать вещи? В идеале мы хотели бы продолжать использовать технологию RDS по разным причинам. Тем не менее, я открыт для предложений (я думаю, что следующей идеей будет размещение наших собственных серверов MySQL).
RDS отлично подходит для развертываний в одном регионе из-за низкой задержки, но когда вы начинаете расширяться в разные регионы, это становится другой историей. Если вы хотите сохранить экземпляр RDS, вы можете настроить свой собственный сервер MySQL в регионе ЕС и выполнить репликацию. Таким образом, скорость будет гораздо более приемлемой.
источник
Недавно AWS сделал шаг в направлении, о котором я ранее спрашивал в своем вопросе, объявив реплики чтения RDS между регионами . Тем не менее, это только маленький шаг к истинной настройке нескольких регионов.
источник
Я считаю, что это то, что вы хотите. Репликация RDS на EC2 с запущенным mysql в другом регионе.
https://aws.amazon.com/about-aws/whats-new/2013/09/05/amazon-rds-new-data-migration-capabilities-mysql/
источник
Одним из возможных решений для улучшения задержки может быть использование Amazon ElastiCache (который в основном Memcached находится под прикрытием).
Вам нужно будет создать узел ElastiCache в каждом регионе (US-EST и EU), и ваша логика приложения (EC2) будет использовать узел кэша всякий раз, когда это возможно. Если вы пойдете по этому пути, вам придется реструктурировать приложение: 1) знать, что и когда кэшировать, и 2) получить как можно больше данных с локального узла ElastiCache.
источник