Представленная ниже архитектурная схема взята из блога AWS под названием Сеть задач в AWS Fargate. Блог опубликован в январе 2018 года.
В описании к изображению говорится, что:
Эта конфигурация позволяет безопасно изолировать ваши задачи в Fargate от остальной части Интернета. Они по-прежнему могут инициировать сетевое взаимодействие с внешними ресурсами через шлюз NAT и по-прежнему получать трафик от общедоступного через балансировщик нагрузки приложений, который находится в общедоступной подсети.
Одна проблема, с которой я столкнулся при попытке воссоздать архитектуру, заключается в том, что один и тот же IP-адрес (который, как я предполагаю, является эластичным IP) используется как для шлюза NAT, так и для балансировщика нагрузки приложений (ALB). Я не могу создать эластичный IP-адрес, который можно использовать как шлюзом NAT, так и ALB. Диаграмма ошибочна, или я что-то упускаю?
Схема в порядке. Здесь важно понять природу ALB, которая сама по себе выполняет NAT.
Следствием этого является то, что шлюз NAT на схеме используется только для исходящих подключений, инициированных задачей fargate в Интернет. Все входящие соединения через ALB будут отвечать через ALB, поскольку ALB устанавливает свой собственный IP-адрес в качестве исходного адреса в заголовке TCP перед пересылкой пакета в задачу fargate.
Следовательно, необязательно иметь один и тот же IP-адрес на ALB и шлюзе NAT, что в любом случае является требованием, которое невозможно выполнить.