У меня есть веб-сервер на локальном компьютере (в Индии), который подключается к Amazon RDS (в США). В этом случае реакция будет слишком медленной, поскольку веб-сервер в Индии получает данные из US Amazon RDS.
Но когда я еду в США и получаю доступ к той же RDS из той же локальной коробки. Он работает так, как будто данные извлекаются из локальной БД.
Скорость у обоих интернет-провайдеров (Индия и США) составляет 10 Мбит / с. По моему мнению, расстояние не должно иметь значения, поскольку электроны могут перемещаться мгновенно. Может ли переключение ч / б национальной сети и международной сети требует времени?
В основном я пытаюсь понять, почему скорость зависит от местоположения веб-сервера? Поможет ли перемещение RDS в Индию в скорости?
Электроны не «путешествуют мгновенно». Вам нужно прочитать задержка, что так же важно, как и пропускная способность. Задержка эффективно снижает пропускную способность, особенно в сетях TCP.
Пакеты, вероятно, дойдут до места назначения с помощью различных механизмов. Электроны по медной сети Ethernet, свет по оптоволокну и т. Д. Есть много переходов, чтобы добраться до пункта назначения, проходя через множество маршрутизаторов. Эти маршрутизаторы добавляют дополнительное время к пути.
По сути, для доставки пакетов данных из Индии в США потребуется 100–200 мс, и то же самое обратно. Для установки TCP-соединения требуется несколько циклов приема-передачи. Вот почему это быстрее, когда вы находитесь рядом с базой данных.
Если вы переместите RDS в Индию, вы, скорее всего, получите лучшую производительность приложений за счет уменьшения задержки. Это немного зависит от вашего приложения, сколько пользы вы получите.
Ваше понимание скорости света немного неверно. Как и ваше понимание сложности доставки пакета из одной части земного шара в другую.
Итак, скорость света в стекле делает играют некоторую роль в задержке пакетов, но более того - это конкуренция за канал и задержка, вызванная маршрутизаторами, коммутаторами и другими устройствами, через которые проходит ваш пакет в пути. Вы ничего не можете сделать для повышения производительности этого типа, кроме как сблизить два сервера.
Так что да, возможно, размещение базы данных в Индии может улучшить производительность, а может и нет. Вы должны проверить это, чтобы узнать.
В целом, однако, отделение серверов приложений от их базы данных, как вы, является ужасной практикой по многим причинам. Если возможно, вы должны расположить их вместе.
Перемещение базы данных в тот же регион, что и ваш веб-сервер, безусловно, повысит производительность. Электроны перемещаются по проводу не со скоростью света, а очень быстро, проблема в том, что отправляемые вами пакеты должны обрабатываться на нескольких маршрутизаторах и межсетевых экранах, когда они проходят через страны / интернет-провайдеров. Этот вопрос усложняется тем, что перед передачей какой-либо информации необходимо совершить поездку туда и обратно несколько раз.
Если вы не можете переместить базу данных RDS в тот же регион, есть возможность настроить кэширующий сервер в регионе Индии. Если AWS Service Elasticache доступен в регионе Индии, вы можете развернуть кластер (если он недоступен, вы можете развернуть свой собственный сервер с memcached, чтобы сделать то же самое), и это сделает долгую поездку в США и обратно. и храните копию данных в памяти, где к ним может быстро получить доступ ваш веб-сервер. Это только улучшит общие запросы на чтение, и все запросы на запись все равно нужно будет направлять в США.
Другой вариант - запустить еще одну RDS в регионе Индии и внедрить решение с несколькими главными серверами, в котором две базы данных будут синхронизироваться друг с другом. Это немного рискованно, если они так далеко друг от друга, но этого должно быть хорошо, пока количество запросов невелико. Однако установка базы данных с несколькими главными серверами - это нетривиальная задача для настройки и управления.
Если у вас есть возможность перенести веб-сервер в США (в зависимости от типа контента, который вы обслуживаете), вы можете настроить распространение контента с облачным интерфейсом в регионе Индии, и клиенты в Индии смогут получить доступ к вашему контенту с улучшенным доступом. задержка (но запросы клиентов, выполняющие запись, все равно должны будут пройти долгую поездку). Кроме того, при перемещении серверов в США помните о Законе о патриотизме и о том, что он может означать для вашей способности обеспечивать конфиденциальность данных, которые вы храните (хотя я предполагаю, что это не проблема, если ваша база данных находится в США уже).