Я пытаюсь выяснить, почему DNS-серверам AWS (10.0.0.2 и 169.254.169.253) требуется много времени, чтобы вернуть правильный IP-адрес для моих задач ECS.
Настройка, которая у меня есть в настоящее время выглядит следующим образом:
- dev.private - это размещенная зона Route53
- Служба ECS (которая регистрируется в deepstream.dev.private) с использованием TTL 0 и записи типа A DNS.
- Служба nginx, которая выполняет SSL-завершение и перенаправляет запросы в службу ECS
При первом создании экземпляра EC2 и установке nginx все работает с определителем, указывающим на 10.0 .0.2
Однако при уничтожении задачи ECS:
- она удаляется из маршрута53 (ожидается)
- новая запись задачи вводится в маршрут53 с новым IP (ожидается)
- новая запись НЕ отображается в nginx (возвращается (3: хост не найден))
- новая запись НЕ отображается при использовании dig (dig @ 10.0.0.2 deepstream.dev.private)
dig @10.0.0.2 deepstream.dev.private
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-9.P2.amzn2.0.2 <<>> @10.0.0.2 deepstream.dev.private
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 10878
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;deepstream.dev.private. IN A
;; Query time: 0 msec
;; SERVER: 10.0.0.2#53(10.0.0.2)
;; WHEN: Tue Apr 14 03:33:39 UTC 2020
;; MSG SIZE rcvd: 51
То ш из-за отсутствия ответа
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-9.P2.amzn2.0.2 <<>> @10.0.0.2 deepstream.dev.private
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15576
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;deepstream.dev.private. IN A
;; ANSWER SECTION:
deepstream.dev.private. 0 IN A 10.0.2.214
;; Query time: 1 msec
;; SERVER: 10.0.0.2#53(10.0.0.2)
;; WHEN: Tue Apr 14 03:35:00 UTC 2020
;; MSG SIZE rcvd: 56
Итак, подведем итоги тестового сценария:
- Dig возвращает IP и все хорошо
- Сразу после уничтожения задачи ECS Route53 запись удалена
- Менее чем через 10 секунд (время, необходимое для перезапуска docker на ECS), добавляется новая запись маршрута 53 с IP
- , через 5 минут новая запись возвращается через dig * 1040. *
Запускался несколько раз, и кажется, что он постоянно равен пяти минутам, что где-то похоже на кэш.
Нельзя ожидать, что новый экземпляр ECS займет 5 минут ссылка на него после сбоя или развертывания будет неприемлемым простоем.