Ошибка извлечения ECR для задач Fargate в частной подсети с общедоступным IP-адресом
Во-первых, спасибо всем, кто может на это ответить. Это мой первый пост, поэтому я постараюсь быть максимально ясным.
У меня есть кластер ECS с 2 настроенными задачами fargate. ECS настроен в VPC, назначенном частным подсетям (с подключением NAT), и у этих задач также есть общедоступный IP-адрес (я считаю, что этого не должно быть?)
одна из задач - это в основном API, а другая - интерфейс для веб-страницы.
Вдобавок ко всему у нас есть ALB, выходящий в Интернет. Это назначается общедоступным подсетям (с IGW)
Я решил изучить использование NACLS, и по какой-то причине работает только это правило (очевидно):
Входящий:
Некоторое время служба будет работать без проблем, и мой веб-сайт будет работать. Однако иногда я получаю ошибку 504 и возвращаюсь в свою ECS. Я вижу, что задачи возвращаются в режим ОБЕСПЕЧЕНИЕ -> ОЖИДАНИЕ .... и примерно через 5-10 минут ОСТАНОВЛЕНЫ. Я получаю такую ошибку:
ResourceInitializationError: невозможно получить секреты или авторизацию реестра: сбой команды pull:: signal: уничтожен NACL
Единственный способ исправить это - вернуться к настройкам по умолчанию, разрешающим все входящие исходящие правила.
Есть идеи, что вызывает это? может ли это быть публичный IP-адрес, назначенный далеко идущим задачам, который вызывает конфликт? Репозиторий ECR находится на другой учетной записи aws. Я считаю, что разрешения роли IAM верны, иначе он не смог бы извлечь изображение даже с правилами NACL по умолчанию. Ценю любую помощь, так как я в растерянности. Спасибо