Вопрос или проблема
Мы недавно выпустили новую версию нашего веб-сайта, и более 50 часов назад мы изменили DNS для домена. Трафик теперь идет на новый веб-сайт, однако случайным образом он все еще отправляет наших пользователей (и нас, мы это видим очень часто, примерно 50% времени) на старый веб-сайт.
Все размещено в AWS. Наш старый веб-сайт использует распределение CloudFront для перенаправления запросов через API Gateway. Наша новая настройка отправляет пользователей на Global Accelerator, который перенаправляет пользователя на ALB. Мы используем CloudFlare в качестве нашего DNS-провайдера, и все записи там указывают на новые IP-адреса от Accelerator. Мы проверили распространение по всему миру, и все указывает на IP-адреса, на которые мы ожидаем, что они указывают (и так было в течение нескольких дней), тем не менее, случайным образом мы все еще перенаправляемся на старое распределение CloudFront с API Gateway.
Мой вопрос: что может вызвать доставку запросов либо на AWS Global Accelerator, либо на распределение CloudFront на случайной основе, несмотря на то, что все a-записи указывают на Accelerator? Где теряется этот запрос? Как я могу увидеть путь запроса и где он отклоняется?
Я готов поделиться доменом, если это необходимо, или предоставить любую дополнительную информацию. Кроме того, я понимаю, если этот вопрос недостаточно конкретный, голосуйте за закрытие в этом случае, но мы здесь в недоумении – я никогда не видел такого поведения раньше.
EDIT:
Прикрепил картинку, на которой мы пингуем один и тот же URL с интервалом в несколько секунд и получаем разные ответы.
Ответ или решение
Ситуация, когда веб-сайт случайным образом переключается между старой и новой версиями, несмотря на изменения DNS более 48 часов назад, может быть вызвана несколькими факторами. Рассмотрим этот вопрос подробно.
1. Проверка DNS-наличия
Несмотря на то, что вы проверили распространение DNS и убедились, что все A-записи корректно указывают на новый IP-адрес вашего AWS Global Accelerator, важно помнить, что изменения DNS могут проявляться с задержкой в зависимости от времени жизни (TTL) кэшированных значений. Если у вашего домена был установлен короткий TTL, изменения могут распространяться быстрее, но также могут существовать локальные кэши DNS на уровне провайдеров интернет-услуг или на устройствах пользователей. Рекомендуется:
- Использовать команды типа
dig
илиnslookup
, чтобы определить, какие IP-адреса фактически разрешаются на разных узлах сети. - Проверить, нет ли дополнительных A-записей или CNAME-записей, которые могли бы указывать на старую версию.
2. Кэширование на уровне CloudFront
Ваши пользователи могут случайно получать старую версию из-за кэширования на уровне CloudFront. Даже если DNS-резолверы указывают на новый адрес, запросы к CloudFront могут обслуживаться устаревшими ресурсами из кэша. Вам стоит рассмотреть следующие шаги:
- Очистить кэш CloudFront, чтобы удалить старые файлы, которые могли бы оставаться в системе.
- Настроить правила кэширования, чтобы убедиться, что старый контент не возвращается к пользователям.
3. Система маршрутирования трафика
Ваша инфраструктура использует AWS Global Accelerator, который маршрутизирует трафик на ALB (Application Load Balancer). Важно убедиться, что правила маршрутизации настроены корректно:
- Проверьте, что все необходимы группы назначения в медиаплане Global Accelerator активны и настроены правильно.
- Убедитесь, что ALB обрабатывает входящий трафик и что он правильно настроен для обслуживания новых запросов.
4. Дублирование конфигурации
Не исключено, что в вашей конфигурации есть дублирующиеся старые записи или Rout53 (если вы его используете наряду с CloudFlare). Проверьте, нет ли старых записей в ваших настройках Route 53, которые могут захватывать трафик:
- Обратите внимание на наличие любых старых записей, которые могут interfering с новыми настройками.
5. Логи и отладка
Для диагностики проблемы полезно проанализировать логи и вести отладку:
- Включите детальные логи на CloudFront и глобальном альфа-ускорителе, а также на ALB. Это позволит вам видеть, откуда приходят запросы и куда они перенаправляются.
- Используйте инструменты мониторинга, чтобы отслеживать поведение пользователей. Это может помочь установить общий паттерн, если проблема связана с определёнными запросами или временными периодами.
Заключение
Ваша ситуация может быть связана с несколькими факторами, включая кэширование DNS, ошибки в маршрутизации или наличием старой конфигурации. Следуя рекомендациям, приведенным выше, вы сможете диагностировать и устранить проблему. Если возникнут дополнительные вопросы или вам потребуется дальнейшая помощь, пожалуйста, не стесняйтесь обращаться за поддержкой.