Назад | Перейти на главную страницу

Можно ли принудительно обновить кеш преобразователя DNS Route53 в AWS при изменении IP-адреса?

У меня есть несколько VPC, настроенных в AWS, и все мои экземпляры используют подготовленные IP-адреса, то есть - не с помощью Elastic IP Addresses.

Когда любой данный экземпляр загружается, он выполняет сценарий на компьютере (после подключения к сети), который получает идентификатор экземпляра, идентификатор зоны (из локальной конфигурации), регион и т. Д. - как только он получает эту информацию, он обновляется. Route 53 для обновления информации DNS в частной размещенной зоне для этих экземпляров.

Причина этого в основном в том, что я могу использовать DNS для строк подключения к серверу. У меня есть свой веб-сервер и серверы БД в частной подсети, и когда веб-сервер подключается к БД, он просто использует staticdns.mydomain.private который соответствует частному IP-адресу экземпляра. Таким образом, не требуется реконфигурация при перезагрузке экземпляра или при изменении IP-адреса по другим причинам.

Это все хорошо, и это работает - с одной оговоркой. Есть задержка в разрешении новых сопоставлений DNS, я не уверен, сколько она длится - она ​​не ОЧЕНЬ долго, но кажется несколько случайной (возможно, TTL?). На тот период, когда у резольвера есть Старый IP-адрес кэшируется, мы получим сбои подключения от веб-сервера к базе данных. Я бы предпочел, чтобы этот кеш был выпущен, когда он был обновлен, но я понятия не имею, где его даже искать.

Кто-нибудь знает, есть ли способ обновить кеш преобразователя DNS в частных зонах в Route 53? Я пробовал использовать nscd также на сервере, что, похоже, не помогло.

Пара вариантов и примечаний ...

  1. Если серверы находятся в одном VPC или в одноранговых VPC, используйте для связи свои частные IP-адреса, а не общедоступные. Частные IP-адреса остаются неизменными при остановке / перезапуске экземпляра.

  2. Старые записи кэшируются на хостах, а не на Route 53. Вам придется сбросить nscd кэшировать все остальные хосты после изменения одного IP-адреса, это довольно большая автоматизация. Помимо того, что некоторые приложения и фреймворки также кешируют записи вне nscd, довольно сложно очистить все, когда это необходимо.

  3. Вы можете снизить TTL своих DNS-записей до 60 (= 1 минута), это означает, что разрешенные записи не будут кэшироваться более минуты. Это тот же подход, который AWS RDS использует для механизма аварийного переключения.

  4. Использовать Балансировщик сетевой нагрузки (NLB) - он обеспечит стабильный IP-адрес вашего сервера, даже если фактический IP-адрес сервера изменится. Однако это уже перебор.

  5. Использовать Эластичные IP-адреса. Это тоже решило бы вашу проблему. При подключении к работающему экземпляру они ничего не стоят.

  6. Используйте AWS RDS, возможно Бессерверная Аврора это почти ничего не стоит, когда не используется. Все управление, аварийное переключение и т. Д. Будет сделано за вас.