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

최종 업데이트 날짜: 2019년 9월 4일

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에서 문제가 있는지 확인하십시오 .

이 문서가 도움이 되었습니까?

AWS에서 개선해야 할 부분이 있습니까?


도움이 필요하십니까?