я следую эта процедура для развертывания новых версий приложения на EC2. Когда новая версия окажется стабильной, я обновляю запись A записи DNS, чтобы направить трафик на IP-адрес нового сервера.
Я думаю, это не лучшая практика, особенно потому, что вы не можете быть уверены, что все DNS-кеши ваших посетителей обновили запись, чтобы вы могли отключить старую версию.
Есть ли лучшие практики для этого? Нужно ли мне создавать собственный сервер с собственным IP-адресом, на котором я могу настроить маршрутизацию (дорого)? Или я могу использовать для этого услуги своего хостинг-провайдера? Или есть решение для AWS?
Хорошо, это довольно старый вопрос, который я впервые вижу сейчас ...
Я обновляю A-запись DNS-записи, чтобы направить трафик на IP-адрес нового сервера.
Вы правы, это приведет к тому, что неизвестный процент ваших пользователей по-прежнему будет использовать старую версию приложения из-за кеширования DNS. Если вы последуете твердое предложение Феба, вероятно, будет очень мало пользователей, но все же на AWS есть способ получше.
Или есть решение для AWS?
Да, и я упомянул об этом в моем первоначальном ответе, который вы связали с .. Amazon Эластичные IP-адреса если вы используете только один IP-адрес для каждой службы; или Эластичная балансировка нагрузки если вы используете парк серверов.
Эластичные IP-адреса обычно переключаются за пару секунд, по моему опыту менее 10 секунд.
Существует множество различных способов беспрепятственного развертывания новой версии приложения.
Чтобы использовать существующий метод, вам просто нужно убедиться, что у вас понижены TTL для ваших записей DNS, прежде чем выполнять переход.
Не совсем гладко, но довольно часто.