Назад | Перейти на главную страницу

AWS: проблемы с задержкой между RDS SQL Server в двух регионах

Политика данных наших клиентов означает, что мы должны размещать нашу базу данных в Великобритании / ЕС.

В настоящее время у нас есть экземпляр EC2 US West (Windows), работающий как веб-сервер. Но после добавления нового экземпляра London RDS (SQL Server) производительность заметно ниже, чем у экземпляра того же типа в том же регионе.

Я понимаю, что в двух регионах должно быть небольшое отставание. Но что мы можем сделать, чтобы свести на нет медлительность? Помня, что мы можем хранить данные только в Великобритании.

Информация об экземпляре RDS

Контур

В соответствии с этот сайт средняя задержка между eu-west-2 и us-west-2 составляет около 190 мс. Это большая задержка. US-east-1 имеет задержку около 95 мс, что значительно меньше.

Большинство приложений, вероятно, разрабатываются с учетом того, что база данных и сервер приложений расположены близко друг к другу. В этом сценарии приложение может делать частые запросы к базе данных без какого-либо значительного воздействия на приложение. Высокая задержка нарушает это очень разумное предположение, сделанное разработчиками.

Лучшее решение - Colocate / CDN

Самым простым и, вероятно, лучшим решением будет сближение базы данных и веб-сервера. Я предлагаю разместить оба в одном регионе, в идеале в одной АЗ. Используйте CloudFront CDN для повышения производительности за счет кэширования большинства ресурсов рядом с пользователем.

Скорее всего, это соответствует вашим требованиям.

Решение второе - прочитать реплику

Реплику чтения RDS можно поставить в США. Измените приложение так, чтобы операции чтения передавались в локальную базу данных, а записи - в основную базу данных.

Это может не соответствовать вашим требованиям.

Решение третье - Репликация базы данных

Вы могли бы потенциально запустить свою базу данных, так что есть две живые, главные базы данных, которые постоянно синхронизируются друг с другом. Это несколько увеличивает ваш риск, и вам, возможно, придется учесть это в своем приложении или, по крайней мере, обнаружить его.

Это может не соответствовать вашим требованиям.