Экземпляр Docker, работающий в частной подсети AWS Fargate

Мой VPC состоит из 2 общедоступных и 2 частных подсетей, частной подсети с шлюзом NAt для доступа в Интернет, а мой экземпляр докера работает в частной подсети, которая получает внешние URL-адреса ( http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4) в качестве ввода и загрузки содержимого / файла и сохранения файлов в s3

У меня есть настройка балансировки нагрузки приложения в публичной подсети и подключается к экземпляру fargate

когда я пытаюсь запустить и в журналах говорится, что NAME не может быть решена commondatastorage.googleapis.com

Я понимаю, что у докера нет подключения к интернету

Что я тут не так делаю и что нужно исправить?

PS: при создании службы fargate я отключил автоматическое назначение общего IP-адреса, так как экземпляр должен находиться в частной подсети

1 ответ

Вы, вероятно, уже проверили страницу AWS о " Сетях задач в AWS Fargate"

Ключ к Интернету - это NAT, поэтому, если он не работает, вы должны начать с проверки ошибок. Вы можете видеть, насколько это важно, из следующего описания, взятого со страницы, на которую я ссылался

В этой конфигурации задачи могут по-прежнему взаимодействовать с другими серверами в Интернете через шлюз NAT. Похоже, у них есть IP-адрес шлюза NAT для получателя сообщения. Если вы запускаете задачу Fargate в частной подсети, вы должны добавить этот NAT-шлюз. В противном случае Fargate не сможет отправить сетевой запрос в Amazon ECR для загрузки образа контейнера или связаться с Amazon CloudWatch для хранения метрик контейнера.

Если NAT по какой-то причине не работает, другой подход может быть для ENABLE Auto Assign Public IP, но определите группу безопасности, которая блокирует любую попытку подключения к вашим задачам в частном VPC. Таким образом, Задача сможет достичь DNS-сервера, необходимого для разрешения. commondatastorage.googleapis.com

Другие вопросы по тегам