컨테이너 상태 확인을 사용하여 Amazon ECS 작업 상태 확인 - Amazon Elastic Container Service

컨테이너 상태 확인을 사용하여 Amazon ECS 작업 상태 확인

작업 정의를 생성할 때 컨테이너의 상태 확인을 구성할 수 있습니다. 상태 확인은 컨테이너에서 로컬로 실행되며 애플리케이션 상태 및 가용성을 검증하는 명령입니다.

Amazon ECS 컨테이너 에이전트는 태스크 정의에 지정된 상태 확인만 모니터링하여 보고합니다. Amazon ECS는 컨테이너 이미지에 포함되었지만 컨테이너 정의에 지정되지 않은 Docker 상태 확인을 모니터링하지 않습니다. 컨테이너 정의에 지정된 상태 확인 파라미터는 컨테이너 이미지에 존재하는 Docker 상태 확인을 재정의합니다.

작업 정의에 상태 확인이 정의된 경우 컨테이너는 컨테이너 내에서 상태 확인 프로세스를 실행하고, 종료 코드를 평가하여 애플리케이션 상태를 확인합니다.

상태 확인은 다음 파라미터로 구성됩니다.

  • 명령 - 정상 상태인지 확인하기 위해 컨테이너가 실행하는 명령입니다. 명령 인수를 직접 실행하려면 문자열 어레이가 CMD으로 시작하면 되고, 컨테이너의 기본 셸에서 명령을 실행하려면 CMD-SHELL로 시작하면 됩니다.

  • 간격 - 각 상태 확인 사이의 시간(초)입니다.

  • 제한 시간 - 실패로 간주되기 전에 상태 확인이 성공하기까지의 대기 시간(초)입니다.

  • 재시도 - 컨테이너 상태가 비정상이라고 간주되기 전에 실패한 상태 확인을 재시도하는 횟수입니다.

  • 시작 기간 - 실패한 상태 확인이 최대 재시도 횟수에 포함되기 전에 컨테이너에 부트스트랩 시간이 제공되는 유예 기간 옵션입니다.

작업 정의에서 상태 확인을 지정하는 방법에 대한 자세한 내용은 상태 확인 섹션을 참조하세요.

다음은 컨테이너에 대해 가능한 상태 값에 대한 설명입니다.

  • HEALTHY - 컨테이너 상태 확인을 성공적으로 통과했습니다.

  • UNHEALTHY - 컨테이너 상태 확인에 실패했습니다.

  • UNKNOWN - 컨테이너 상태 확인을 평가 중이거나, 컨테이너 상태 확인이 정의되지 않았거나, Amazon ECS에서 컨테이너 상태를 알 수 없습니다.

상태 확인 명령은 컨테이너에서 실행됩니다. 따라서 컨테이너 이미지에 명령을 포함해야 합니다.

상태 확인은 localhost 또는 127.0.0.1에서 컨테이너의 루프백 인터페이스를 통해 애플리케이션에 연결됩니다. 0의 종료 코드는 성공을 나타내고, 0이 아닌 다른 코드는 실패를 나타냅니다.

컨테이너 상태 확인을 사용할 때 다음을 고려합니다.

  • 컨테이너 상태 확인을 위해서는 버전이 1.17.0 이상인 Amazon ECS 컨테이너 에이전트가 필요합니다.

  • Linux 플랫폼 버전 1.1.0 이상 또는 Windows 플랫폼 버전 1.1.0 이상을 사용하는 경우 Fargate 작업에서 컨테이너 상태 확인이 지원됩니다.

Amazon ECS에서 작업 상태를 확인하는 방법

작업 정의에 상태 확인 명령이 있는 필수 컨테이너는 작업 상태를 확인할 때 고려할 유일한 컨테이너입니다.

다음 규칙이 순서대로 평가됩니다.

  1. 하나의 필수 컨테이너 상태가 UNHEALTHY인 경우 작업 상태는 UNHEALTHY입니다.

  2. 하나의 필수 컨테이너 상태가 UNKNOWN인 경우 작업 상태는 UNKNOWN입니다.

  3. 모든 필수 컨테이너 상태가 HEALTHY인 경우 작업 상태는 HEALTHY입니다.

필수 컨테이너 2개가 포함된 다음 작업 상태 예제를 고려합니다.

컨테이너 1 상태 컨테이너 2 상태 작업 상태
UNHEALTHY UNKNOWN UNHEALTHY
UNHEALTHY HEALTHY UNHEALTHY
HEALTHY UNKNOWN UNKNOWN
HEALTHY HEALTHY HEALTHY

컨테이너 3개가 포함된 다음 작업 상태 예제를 고려합니다.

컨테이너 1 상태 컨테이너 2 상태 컨테이너 3 상태 작업 상태
UNHEALTHY UNKNOWN UNKNOWN UNHEALTHY
UNHEALTHY UNKNOWN HEALTHY UNHEALTHY
UNHEALTHY HEALTHY HEALTHY UNHEALTHY
HEALTHY UNKNOWN HEALTHY UNKNOWN
HEALTHY UNKNOWN UNKNOWN UNKNOWN
HEALTHY HEALTHY HEALTHY HEALTHY

에이전트 연결 끊김이 상태 확인에 미치는 영향

Amazon ECS 컨테이너 에이전트가 Amazon ECS 서비스와의 연결이 끊어져도 컨테이너는 UNHEALTHY 상태로 전환되지 않습니다. 에이전트가 재시작되거나 일시적으로 사용할 수 없는 동안에도 컨테이너가 계속 실행되도록 하기 위한 것입니다. 상태 확인 상태는 Amazon ECS 에이전트의 ‘마지막으로 들은’ 응답이므로 연결이 끊기기 전에 컨테이너가 HEALTHY로 간주된 경우 에이전트가 다시 연결되고 다른 상태 확인이 발생할 때까지 해당 상태가 유지됩니다. 컨테이너 상태 확인의 상태에 대한 가정은 하지 않습니다.