Amazon ECS 서비스에서 실행 중인 태스크 수가 변경되었는데 그 이유가 무엇인가요?

5분 분량
0

Amazon Elastic Container Service(Amazon ECS) 서비스의 실행 중인 태스크 수가 늘거나 줄었습니다.

간략한 설명

Amazon ECS 서비스의 실행 중인 태스크 수가 늘거나 주는 데는 여러 가지 이유가 있습니다. 몇 가지 보편적인 원인을 예로 들면 다음과 같습니다.

  • Amazon ECS 태스크의 상태 확인에 실패하고 있습니다.
  • AWS CloudFormation이나 AWS Cloud Development Kit(AWS CDK)에서 ECS 서비스에서 적절한 수를 업데이트했습니다.
  • 사용자가 ECS 서비스의 적절한 수를 수동으로 업데이트했습니다.
  • Amazon ECS 서비스 자동 크기 조정이 크기 조정 정책에 따라 태스크 수를 업데이트했습니다.
  • 사용자가 RegisterScalableTarget API를 사용하여 애플리케이션 자동 크기 조정의 최소 또는 최대 수를 업데이트했습니다.
  • ECS 서비스의 배포 구성이 배포 중에 실행 중인 태스크 수를 수정했습니다.

해결 방법

ECS 태스크의 상태 확인에 실패함

CloudFormation이나 AWS CDK가 ECS 서비스의 적절한 수를 업데이트함

DesiredCount 필드를 지정하지 않고 CloudFormation 또는 CDK를 사용하여 ECS 서비스를 생성한 경우, 적절한 수가 기본값인 1로 설정됩니다. 단, DesiredCount 필드를 지정하지 않고 CloudFormation 또는 CDK를 사용하여 서비스를 업데이트하면 현재 배포에 대한 기존의 적절한 수가 새 배포에 사용됩니다.

이 문제를 해결하려면 AWS CloudTrail 이벤트를 검토하여 UpdateService API 호출을 한 대상이 CloudFormation인지 확인해야 합니다. 이는 이벤트 레코드 섹션의 userAgent 필드가 다음을 지정하는지 확인하는 것으로도 확인할 수 있습니다.

"userAgent": "cloudformation.amazonaws.com"

이 문제를 해결하려면 업데이트 중에 CloudFormation이나 CDK에서 desiredCount 파라미터를 제거해야 합니다.

사용자가 ECS 서비스의 적절한 수를 수동으로 업데이트함

사용자가 UpdateService API, Amazon ECS 콘솔이나 AWS Command Line Interface(AWS CLI)를 사용하여 ECS 서비스를 수동으로 업데이트한 경우, 서비스를 다시 업데이트하여 적절한 수를 올바른 값으로 변경해야 합니다. 자세한 내용은 서비스 업데이트(Updating a service)update-service를 참조하세요.

이 문제를 해결하려면 CloudTrail 이벤트를 검토하여 UpdateService API 호출을 한 대상이 Amazon ECS 콘솔이나 AWS CLI인지 확인해야 합니다. 이 정보는 CloudTrail 레코드의 userAgent 필드에서 조회할 수 있습니다.

예:

"userAgent": "console.amazonaws.com"

Amazon ECS 서비스 자동 크기 조정이 크기 조정 정책에 따라 태스크 수를 업데이트함

Amazon ECS 서비스 자동 크기 조정이 크기 조정 정책에 따라 적절한 수를 늘리거나 줄였을 가능성이 있습니다. 서비스를 검토하여 최근에 크기 조정 활동이 있었는지 확인하세요.

크기 조정 활동을 조회하려면 다음 작업을 수행합니다.

  1. Amazon ECS 콘솔을 엽니다.
  2. 탐색 창에서 **클러스터(Clusters)**를 선택합니다.
  3. 확인하고자 하는 클러스터를 선택합니다.
  4. 서비스(Services) 탭을 선택합니다.
  5. 확인하고자 하는 서비스를 선택합니다.
  6. 이벤트(Events) 탭을 선택합니다.

크기 조정 이벤트가 있었던 경우, 메시지(Messages) 열에 다음과 같은 정보 제공 메시지가 표시될 수 있습니다.

Successfully set desired count to 1. Change successfully fulfilled by ecs. Cause: monitor alarm TargetTracking-service/service-autoscaling/sample-webapp-AlarmLow-fcd80aef-5161-4890-aeb4-35dde11ff42c in state ALARM triggered policy TargetTrackingPolicy.

크기 조정 활동으로 인해 태스크가 중지된 경우, 대상 추적(target tracking) 또는 단계 크기 조정(step scaling) 정책을 검토하세요. 그런 다음 애플리케이션의 요구 사항에 따라 적절한 수를 업데이트합니다.

애플리케이션 자동 크기 조정 구성을 조회하려면 다음 작업을 수행합니다.

  1. Amazon ECS 콘솔을 엽니다.
  2. 탐색 창에서 **클러스터(Clusters)**를 선택합니다.
  3. 확인하고자 하는 클러스터를 선택합니다.
  4. 서비스(Services) 탭을 선택합니다.
  5. 확인하고자 하는 서비스를 선택합니다.
  6. 자동 크기 조정(Auto Scaling) 탭을 선택합니다.
    참고: 새 Amazon ECS 콘솔을 사용하는 경우, **구성 및 태스크(Configuration and tasks)**를 선택한 다음 서비스 구성(Service configuration) 아래의 정보를 조회하세요.

사용자가 RegisterScalableTarget API를 사용하여 애플리케이션 자동 크기 조정의 최소 및 최대 수를 업데이트함

사용자가 RegisterScalableTarget API를 사용하여 확장 가능한 대상을 업데이트한 경우, API에 지정된 MinCapacity 속성값을 확인해야 합니다. 새 최솟값을 지정한 경우, 애플리케이션 자동 크기 조정이 이 값을 태스크를 축소할 수 있는 새 최솟값으로 사용합니다.

참고: 애플리케이션 자동 크기 조정은 지정된 최솟값 미만으로 적절한 수를 축소하지 않습니다.

ECS 서비스의 배포 구성이 배포 중에 실행 중인 태스크 수를 수정함

CloudTrail 이벤트를 검토하여 최근에 UpdateService API가 호출되었는지 확인합니다. ECS 서비스의 배포 구성을 조회하려면 UpdateService API의 deploymentConfiguration 요청 파라미터를 확인할 수 있습니다.

-또는-

다음과 같은 단계를 따라 Amazon ECS 콘솔에서 ECS 서비스의 배포 구성을 검토합니다.

  1. Amazon ECS 콘솔을 엽니다.
  2. 탐색 창에서 **클러스터(Clusters)**를 선택합니다.
  3. 확인하고자 하는 클러스터를 선택합니다.
  4. 서비스(Services) 탭을 선택합니다.
  5. 확인하고자 하는 서비스를 선택합니다.
  6. 배포(Deployments) 탭을 선택합니다.

배포 구성 파라미터(deployment configuration parameters)가 배포 중에 실행되는 태스크 수를 관리하며 태스크를 중지, 시작하는 순서도 관리합니다. 배포 구성이 잘못 설정된 경우, 배포 중에 실행되는 태스크 수가 줄어듭니다. 따라서 minimumHealthyPercent 파라미터 값을 0%보다 크게 구성하는 것이 좋습니다.

minimumHealthyPercent 파라미터는 서비스의 적절한 태스크 수에 대한 백분율 형태로, 다음 중 한 가지의 하한을 나타냅니다.

  • 배포 중에 서비스에 대하여 실행 중이어야 하는 태스크 수
  • 컨테이너 인스턴스를 드레이닝할 때 실행 중이어야 하는 태스크 수

이 파라미터 값은 반올림됩니다. 예를 들어 minimumHealthyPercent가 50%이고 적절한 태스크 수가 4인 경우, 스케줄러는 기존의 태스크 두 개를 중지한 다음 새 태스크 두 개를 시작합니다. minimumHealthyPercent가 75%이고 적절한 태스크 수가 2인 경우, 결과로 도출되는 값도 2이기 때문에 스케줄러는 아무런 태스크도 중지할 수 없습니다.

maximumPercent 파라미터는 서비스의 적절한 태스크 수에 대한 백분율 형태로, 다음 중 한 가지의 상한을 나타냅니다.

  • 배포 중에 서비스에 대하여 실행 중이어야 하는 태스크 수
  • 컨테이너 인스턴스를 드레이닝할 때 실행 중이어야 하는 태스크 수

이 파라미터 값은 내림합니다. 예를 들어 maximumPercent가 200%이고 적절한 태스크 수가 4인 경우, 스케줄러가 기존 태스크 4개를 중지하기 전에 새 태스크 4개를 시작할 수 있습니다. maximumPercent가 125%이고 적절한 태스크 수가 3인 경우라면, 결과로 도출되는 값도 3이기 때문에 스케줄러가 아무런 태스크도 시작할 수 없습니다.

자세한 내용은 단계적 업데이트를 참조하세요.


관련 정보

서비스 자동 크기 조정

Amazon ECS에서 "컨테이너 인스턴스가 모든 요건을 충족하지 못해서 [AWS 서비스]에서 태스크를 배치하지 못했습니다."라는 오류를 해결하려면 어떻게 해야 하나요?

AWS 공식
AWS 공식업데이트됨 3년 전
댓글 없음

관련 콘텐츠