В настоящее время я пытаюсь понять, как настроить связь между сервисами ECS. Я планирую установить следующую схему:
У меня есть следующие варианты:
alb.amazonaws.com/backend/
перешлет запрос в backend-target-group
который будет предоставлять запрос внутренним задачам ECS.Ни один из них не кажется правильным. Я не хочу использовать отдельный ALB для каждой услуги из-за финансовых ограничений. Я думаю о каком-то внутреннем DNS-имени для служб ECS. Я изучил следующие ссылки, но не могу понять, как применить это в моем случае.
Связанная проблема: Контейнерная связь AWS ECS
Итак, в идеале я хотел бы достичь: иметь внутреннее DNS-имя для серверных служб и отправлять запросы из внешних служб в бэкэнд.
Вы в значительной степени правильно рассмотрели варианты.
Обнаружение сервисов ECS было бы моим первым выбором - все контейнеры будут автоматически регистрироваться в домене обнаружения служб и будут доступны таким образом. Легко, прозрачно, дешево.
Балансировщик нагрузки внутреннего приложения с разными путями для разных целевых групп было бы моим вторым выбором. Вы не хотите смешивать внешний и внутренний трафик на одном ALB, но наличие двух - внутреннего и внешнего - является вполне допустимой архитектурой. Может стоить дополнительных 20 долларов в месяц или около того за еще один ALB.
AWS App Mesh - Я лично с этим не работал, но похоже, что он вполне может сделать то, что вам нужно. Название говорит Сеть на уровне приложений для всех ваших услуг
API-шлюз тоже вариант. Вашему бэкэнду могут потребоваться небольшие изменения для работы с этим, но ничего серьезного.
Надеюсь, это поможет :)