
Я настроил кластер Fargate на AWS. В моем кластере есть следующееуслуги:
- сервер-А (порт 3000)
- сервер-B (порт 4000)
Каждая служба находится в одном VPC и имеет одну и ту же группу безопасности (любые порты, любой источник, любой пункт назначения). VPC изолирован от Интернета.
Теперь я хочу, чтобы сервер-A отправил http-запрос на сервер-B. Я бы предположил, что, как и в Docker Swarm, есть частный DNS, который сопоставляет имя сервиса с его частным IP, и это было бы так же просто, как отправить запрос на:http://сервер-B:4000. Однако сервер A получает тайм-аут, что означает, что он не может связаться с сервером B.
Я прочитал в документации, что я могу поместить 2 контейнера в одну и ту же службу, каждый из которых будет прослушивать отдельный порт, так что благодаря интерфейсу обратной связи с сервера A я смогу сделать запросhttp://127.0.0.1:4000и сервер-B ответит, и наоборот.
Однако я хочу иметь возможность масштабировать сервер A и сервер B.независимо, поэтому я думаю, что имеет смысл сделать так, чтобы каждый сервер был независим друг от друга, используя 2 службы.
Я читал, что для того, чтобы 2 задачи могли общаться друг с другом, мне нужно настроить балансировщик нагрузки. Из мира Docker Swarm было очень просто запрашивать сервисы по их имени, и за кулисами запрос перенаправлялся в один из контейнеров в этом сервисе. Но, похоже, на AWS Fargate это так не работает.
Вопросы:
- как сервер-А может общаться с сервером-Б?
- Поскольку службы иногда перераспределяются, их частный IP-адрес меняется, поэтому нет смысла делать запрос по IP-адресу, запрос по имени хоста кажется наиболее естественным способом.
- Нужно ли мне настраивать какой-либо внутренний DNS?
Спасибо за помощь, я действительно запутался в этой простой настройке.
решение1
После поиска я выяснил, что это было связано с тем, что я не включил "Service Discovery" во время создания сервиса, поэтому не был создан частный DNS. Вот дополнительная документация, которая точно объясняет шаги:
https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create-service-discovery.html