Как узнать, почему AWS ELB считает, что мой сервис не работает?

Как узнать, почему AWS ELB считает, что мой сервис не работает?

У меня есть услуга, которая зарегистрирована в двух целевых группах: albи wwwalb.

Целевая albгруппа предназначена для внутренних запросов, а wwwalbцелевая группа — для внешних запросов.

Когда я развертываю свою службу, она запускается как надо и начинает принимать запросы. Глядя на журнал доступа, я вижу, что и albи wwwalbзондируют службу. Поскольку служба работает в 3 зонах, я вижу 3 запроса для каждой зоны, всего 6.

 - - - [19/Jun/2022:20:45:28 +0200] "GET /api/system/status HTTP/1.1" 204 -
 - - - [19/Jun/2022:20:45:28 +0200] "GET /api/system/status HTTP/1.1" 204 -
 - - - [19/Jun/2022:20:45:28 +0200] "GET /api/system/status HTTP/1.1" 204 -
 - - - [19/Jun/2022:20:45:30 +0200] "GET /api/system/status HTTP/1.1" 204 -
 - - - [19/Jun/2022:20:45:30 +0200] "GET /api/system/status HTTP/1.1" 204 -
 - - - [19/Jun/2022:20:45:30 +0200] "GET /api/system/status HTTP/1.1" 204 -

Несмотря на это, сервис в конечном итоге закрывается, потому что целевая группа считает, что сервис нездоров. На самом деле, похоже, он никогда не считает сервис здоровым.

введите описание изображения здесь

Вызов API для проверки целевой группы сообщает мне следующее:

{
    "TargetHealthDescriptions": [
        {
            "Target": {
                "Id": "10.1.143.94",
                "Port": 8182,
                "AvailabilityZone": "eu-north-1b"
            },
            "HealthCheckPort": "8182",
            "TargetHealth": {
                "State": "unhealthy",
                "Reason": "Target.FailedHealthChecks",
                "Description": "Health checks failed"
            }
        }
    ]
}

Я уже некоторое время смотрю на метрики целевой группы, конфигурации балансировщика нагрузки, но просто не могу найти ничего о настройке, что могло бы объяснить это поведение. Настройки проверки работоспособности тоже кажутся мне подходящими:

введите описание изображения здесь

Я только недавно добавил wwwalb, поэтому я думаю, что каким-то образом наличие этого сервиса в двух целевых группах вызывает это. С другой стороны, наличие сервиса в двух целевых группах поддерживается и объясняется AWS.

Есть ли способ получить больше информации от AWS о том, что на самом деле является причиной этой проблемы? Есть ли способ выяснить, почему AWS считает, что сервис дает сбой?

решение1

Обычно я устанавливаю свой нездоровый порог на что-то большее, чем здоровый порог. Например, 2 успешных звонка с 10-секундным интервалом — это здоровый, 6 неудачных звонков с 10-секундным интервалом — это нездоровый.

Тем не менее, это не должно иметь значения, и ваши настройки должны работать. Когда цель регистрируется, возникает «начальное» состояние. В это время AWS пытается проверить проверки работоспособности и должна переключиться в работоспособное состояние только в том случае, если проверки работоспособности прошли успешно.

Процесс регистрации и начало проверки работоспособности могут занять несколько минут.

Вы уверены, что ваше приложение не отвечает успешно, а затем зависает на достаточно долгое время, чтобы снова стать неработоспособным? Или это действительно слишком долго запускается и никогда не выходит из «исходного» состояния?

Связанный контент