Наилучшая практика для маршрутизации запросов на правильную версию сервера приложений в EC2

Я следую этой процедуре для развертывания новых версий приложений в EC2. Когда новая версия окажется стабильной, я обновлю запись A записи DNS, чтобы направить трафик на IP-адрес нового сервера.

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

Есть ли лучшие практики для этого? Нужно ли создавать собственный сервер с собственным IP-адресом, на котором я могу настроить маршрутизацию (дорого)? Или я могу воспользоваться услугами моего хостинг-провайдера для этого? Или есть решение для AWS?

2 ответа

Решение

Существует множество различных способов беспрепятственного развертывания новой версии приложения.

Чтобы использовать существующий метод, вы должны просто убедиться, что у вас есть сниженные значения TTL для ваших записей DNS перед выполнением перехода.

  • Изменить TTL на 5 минут
  • Подождите общий период исходного значения TTL
  • Внести изменения DNS
  • Изменения должны быть обновлены для большинства распознавателей после истечения 5-минутного TTL

Не совсем гладко, но довольно часто.

Хорошо, это довольно старый вопрос, который я впервые вижу сейчас...

Я обновляю запись A записи DNS для маршрутизации трафика на IP-адрес нового сервера.

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

Или есть решение для AWS?

Да, и я упомянул об этом в своем первоначальном ответе, с которым вы связались. Эластичные IP-адреса Amazon, если вы используете только один IP-адрес для каждой услуги; или Elastic Load Balancing, если вы используете парк серверов.

Эластичные IP-адреса обычно переключаются через пару секунд, по моему опыту менее чем за 10 секунд.

Другие вопросы по тегам