컨테이너 인스턴스가 DRAINING으로 설정된 경우 중지하는 데 오랜 시간이 걸리는 Amazon ECS 작업의 문제를 해결하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2022년 4월 28일

Amazon Elastic Container Service(Amazon ECS) 작업이 STOPPED 상태로 전환하는 데 시간이 오래 걸립니다. 또는 컨테이너 인스턴스가 DRAINING으로 설정되면 Amazon ECS 작업이 RUNNING 상태에서 멈춰 있습니다. 이 문제를 해결하려면 어떻게 해야 하나요?

간략한 설명

ECS 인스턴스를 DRAINING으로 설정하면 Amazon ECS가 다음 작업을 수행합니다.

  • 새 작업이 컨테이너 인스턴스에 배치되도록 예약되는 것을 방지합니다.
  • 컨테이너 인스턴스에서 RUNNING 상태인 작업을 중지합니다.

구성 파라미터 또는 작업 관련 문제로 인해 작업이 RUNNING 상태에서 멈추거나 STOPPED 상태로 전환하는 데 더 오랜 시간이 걸릴 수 있습니다. 이러한 문제를 해결하려면 다음 옵션을 고려하십시오.

해결 방법

DeploymentConfiguration 파라미터가 올바르게 설정되었는지 확인

  1. Amazon ECS 콘솔을 엽니다.
  2. 탐색 창에서 클러스터(Clusters)를 선택하고 컨테이너 인스턴스가 드레이닝되는 클러스터를 선택합니다.
  3. [ECS 인스턴스] 탭을 선택한 다음 [Status] 섹션에서 [DRAINING]을 선택합니다.
  4. 컨테이너 인스턴스를 선택한 다음 드레이닝하거나 드레이닝하는 데 오랜 시간이 걸리는 작업에 대한 서비스를 찾습니다.
  5. [Services] 탭을 선택하고 서비스를 선택한 다음 [Deployments]를 선택합니다.
  6. minimumHealthyPercentmaximumPercent 값을 확인합니다.
    참고: 컨테이너 인스턴스에서 RUNNING 상태인 서비스 작업은 서비스의 배포 구성 파라미터인 minimumHealthyPercent 및 maximumPercent에 따라 중지되고 대체됩니다.

등록 취소 지연 값이 올바르게 설정되었는지 확인합니다.

중요: 다음 단계는 Application Load Balancer 또는 Network Load Balancer를 사용하는 서비스에만 적용됩니다. 서비스에서 Classic Load Balancer를 사용하는 경우 연결 드레이닝 값을 확인합니다.

  1. Amazon ECS 콘솔을 엽니다.
  2. 탐색 창에서 클러스터(Clusters)를 선택하고 컨테이너 인스턴스가 드레이닝되는 클러스터를 선택합니다.
  3. 서비스(Services) 탭을 선택한 다음 스택이 RUNNING에 멈춘 서비스를 선택합니다.
  4. [Target Group Name]을 선택합니다.
  5. [Details] 탭에서 아래로 스크롤한 다음 [Deregistration delay] 확인란을 선택합니다.

ECS_CONTAINER_STOP_TIMEOUT 값이 올바르게 설정되었는지 확인합니다.

  1. SSH를 사용하여 컨테이너 인스턴스에 연결합니다.
  2. docker inspect ecs-agent -format '{{json. Config.Env}}' 명령을 실행합니다.
  3. ECS_CONTAINER_STOP_TIMEOUT에 대한 값이 있는지 확인합니다.
    참고: ECS_CONTAINER_STOP_TIMEOUT은 컨테이너를 종료하기 전에 Amazon ECS가 대기하는 시간을 정의하는 ECS 컨테이너 에이전트 파라미터입니다. 이 기간은 작업이 중지될 때 계산되기 시작합니다. 2단계에서 명령을 실행한 후 출력에 ECS_CONTAINER_STOP_TIMEOUT 파라미터가 표시되지 않으면 Amazon ECS에서 기본값인 30을 사용하고 있습니다.

다른 작업 관련 문제 찾기

  1. SSH를 사용하여 컨테이너 인스턴스에 연결합니다.
  2. Docker 데몬과 Amazon ECS 컨테이너 에이전트가 Amazon Linux 1 AMI 또는 Amazon Linux 2 AMI에 대해 실행 중인지 확인합니다.
  3. logConfiguration에서 설정한 로그 드라이버를 기반으로 애플리케이션 로그를 확인합니다.
    참고: 예를 들어 작업에서 awslogs 로그 드라이버를 사용하는 경우 Amazon CloudWatch Logs에서 문제가 있는지 확인하세요.

이 문서가 도움이 되었나요?


도움이 필요하십니까?