Если вы используете стек AWS, вы, вероятно, прошли через это: решить, какой экземпляр EC2 запустить и в каком регионе их развернуть, сложно. Некоторые из вас могли запустить несколько экземпляров EC2 за балансировщиком нагрузки — но этого почти никогда не бывает достаточно. Наши австралийские друзья не должны ждать ресурсов из Вирджинии. Что нам действительно нужно, так это простое в использовании глобальное решение. Именно здесь Amazon DNS-маршрутизация 53 пригодится. Добавление политик маршрутизации в ваш домен поможет гарантировать, что пользователи получат самые быстрые ответы, и, как мы все знаем, скорость == счастье. В конце июля 2014 года Amazon объявил о новой политике маршрутизации Route 53: Geolocation. Мы являемся большими сторонниками маршрутизации на основе задержек, поэтому мы хотели проверить новую политику.
Полученные результаты
Так как цель этого теста состоит в том, чтобы разобраться в DNS, мы рассмотрели время поиска имени DNS. Мы использовали curl для определения продолжительности каждого шага. Вот среднее время поиска из регионов EC2:
Insights
- Тесты показывают, что переход к геолокации добавляет в среднем 75 мс — очень высокий показатель, особенно если вы пытаетесь оптимизировать свой кластер и опыт первого пользователя.
- Если мы исключим Сан-Паулу из списка в целом, мы получим впечатляющее среднее время поиска 127 мс по другим регионам для обеих политик. Я дважды проверил цифры, чтобы убедиться, что это не мираж. Ровно 1 2 7 мс, независимо от того, используете ли вы геолокацию или задержку. На нашем тесте EC2-> S3 был выгнан Сидней, а на трассе 53 — Сан-Паулу.
- Самый большой победитель — Европа. У него был самый низкий поиск по задержке, самый низкий поиск по геолокации и самая низкая разница между задержкой и геолокацией — всего 3 мс!
- Внизу списка — Сан-Паулу показал худшее. Он пришел последним по всем трем критериям: латентность, геолокация и разница. Поиск геолокации в Южной Америке занял в 3 раза больше времени поиска.
- При приближении к Северной Америке самым быстрым поиском имени в латентности и геолокации была Калифорния. Самой медленной была Вирджиния, которая имела второе по величине различие между латентностью и геолокацией. Геолокация в наших тестах была примерно в 1,5 раза медленнее.
- Геолокация была быстрее в Орегоне, Калифорнии и Сингапуре. Задержка была быстрее в Вирджинии, Европе, Японии и Бразилии.
Настройка теста
EC2 — Мы развернули простое веб-приложение Tomcat / Nginx в экземплярах EC2 (m3.medium) во всех доступных регионах AWS (кроме бета-области Китая). Веб-приложение содержало несколько Java-сервлетов, которые возвращали HTTP_OK 200 по запросу.
маршрутизации на основе задержек и
геолокации . Для задержки мы перенаправили домен во все регионы, где работает EC2. Для геолокации мы перенаправили каждый континент в ближайший регион.
sudo /etc/init.d/nscd restart ## Restarting the DNS on Ubuntu so we won’t have cache curl –no-sessionid -s -w ‘\nLookup time:\t%{time_namelookup}\n’ -o /dev/null http://takipi-route53-testing-{latency|geo}.com/webapp/speed/normal ## Measuring name lookup time
Вывод
Здесь не было победителя нокаутом. Хотя маршрутизация на основе задержки оказалась быстрее, в некоторых случаях маршрутизация на основе геолокации работала лучше. Самый быстрый средний поиск был основан на латентности из Европы. В конце концов, если вам не требуется какая-либо специфическая для страны маршрутизация, то преимуществом политики маршрутизации DNS является (все еще) маршрутизация на основе задержек.