Я создаю службу ECS, и она запускает 1 экземпляр ecs, и я вижу, что экземпляр зарегистрирован в качестве цели балансировщика нагрузки.
Теперь я запускаю группу автоматического масштабирования (просто увеличивая желаемое количество экземпляров)запустить новый экземпляр.
Экземпляр запускается и добавляется в кластер ECS.(Я вижу это на вкладке экземпляров ECS) Но экземпляр не добавляется к цели ALB.(Я ожидаю увидеть 2 экземпляра на следующем изображении, но вижу только 1)
Я могу редактировать целевую группу AutoScalingGroup, как показано ниже
Тогда я вижу следующее.
Но проверка работоспособности не пройдена.Кажется, порт 80 недоступен.Хотя у меня порт 80 открыт для общего доступа в группе безопасности для экземпляра.(Кроме того, экземпляр, созданный из службы ecs, использует динамическое сопоставление портов, но экземпляр, созданный ALS, этого не делает)
Таким образом, AutoScalingGroup может запустить новый экземпляр, но мой балансировщик нагрузки никогда не передает трафик новому экземпляру.
Я попробовал https://aws.amazon.com/premiumsupport/knowledge-center/troubleshoot-unhealthy-checks-ecs/?nc1=h_ls, и это показывает, что я могу подключиться к порту 80 от хоста к контейнеру док-станции с помощью чего-то вроде curl -v http://${IPADDR}/health
.
Так что это должно быть такчто-то не так с портом хоста 80 (балансировщик нагрузки не может подключиться к нему).Но это также тот случай, когда настройка группы безопасности не является неправильной, потому что рабочий экземпляр и этот нерабочий экземпляр используют один и тот же SG.
Потому что яиспользуется динамическое отображение, мой веб-сервер работает на каком-то случайном порту.Как видите, экземпляр, запущенный службой ecs, зарегистрировался в целевой группе с произвольным портом.
Однако экземпляр, запущенный ALB, зарегистрировался в целевой группе с портом 80.