AWS - EC2 и RDS в разных регионах очень медленные - PullRequest
0 голосов
/ 01 июля 2018

Я сейчас нахожусь в Сиднее, и у меня есть следующий сценарий:

  • 1 RDS на Северной Вирджинии.
  • 1 EC2 в Сиднее
  • 1 EC2 на Северной Вирджинии

Мне нужно это для сокращения, и это упрощенный сценарий.

Когда мое приложение подключается к сиднею EC2 к RDS в N. Virgnia, мне требуется почти 2,5 секунды, чтобы получить результат. Мы можем подумать: Хорошо, это задержка.

НО, когда я отправляю запрос в EC2 N. Virginia, я получаю результат менее чем за 500 мс.

Почему медленное соединение при доступе к RDS за пределами региона?

Я имею в виду: я могу испытывать это медленное соединение, когда я запускаю приложение на своем компьютере. Но когда приложение находится в том же регионе, что и RDS, оно работает быстрее, чем на моем собственном компьютере.

Ответы [ 2 ]

0 голосов
/ 05 июля 2018

Если вы пытаетесь подключить RDS через общедоступную сеть, это может быть медленным. AWS запустил межрегиональный VPC пиринг , пожалуйста, просмотрите все VPC региона (убедитесь, что не будет никакого конфликта IP) и попытайтесь подключиться, используя частные соединения.

0 голосов
/ 01 июля 2018

Скорее всего, вы запрашиваете RDS, чтобы выполнить несколько циклов. То есть сначала ваш экземпляр EC2 запрашивает что-то в RDS, затем что-то еще на основе первого запроса и т. д. Не видя код вашей базы данных, трудно точно сказать, что может быть причиной этого.

Вы говорите тогда, когда говорите с удаленным экземпляром EC2, вместо этого вы получите ответ менее чем за 500 мс. Это говорит о том, что установка TCP-соединения и отправка одного запроса с ответом составляет 500 мс. Исходя из этого, я предполагаю, что для подключения к базе данных требуется как минимум 5-кратный трафик туда и обратно.

Для RDS не предусмотрено никаких дополнительных штрафов за использование его за пределами региона, но большинство протоколов баз данных не оптимизированы для условий высокой задержки. Возможно, вам лучше настроить реплику чтения в Сиднее.

...