“AWSSupport-TroubleshootECSTaskFailedToStart” 자동화 런북을 사용하여 ECS Task가 시작되지 않는 이슈를 해결하는 방법

3분 분량
콘텐츠 수준: 중급
1

본 기사는 AWS 지원 자동화 워크플로우(Support Automation Workflow) 의 AWSSupport-TroubleshootECSTaskFailedToStart 런북을 사용하여 ECS Task 시작이 실패하는 이슈를 진단하고 해결하는 방법에 대해 설명합니다.

ECS 서비스는 컨테이너 애플리케이션을 쉽게 배포, 관리할 수 있도록 도와주는 완전 관리형 컨테이너 오케스트레이션 서비스로서, n개의 컨테이너로 구성된 Task 단위로 애플리케이션을 실행합니다.

하지만 아래와 같이 ECS Task를 시작하는 작업이 지속적으로 실패하는 경우 정상적으로 애플리케이션을 배포할 수 없고, Task가 종료된지 1시간 이내에는 실패 원인을 AWS 콘솔이나 AWS CLI, AWS SDK를 통해 확인하실 수 있습니다. [1]

여기에 이미지 설명 입력

Task가 종료된 지 1시간이 지나 실패 원인을 확인할 수 없거나 긴급히 이슈를 해결하기 위해 AWS Support로 지원 케이스를 생성하고 문제 해결을 시도할 수 있지만, AWS 지원 자동화 워크플로우(Support Automation Workflow) 런북을 이용하면 AWS Support의 도움 없이 자동화된 방법으로 직접 이슈를 빠르게 해결할 수도 있습니다.

AWS 지원 자동화 워크플로우는 AWS Systems Manager 셀프 서비스 자동화 런북 모음입니다. 이러한 런북은 AWS Support 엔지니어링팀에서 고객 문제를 해결하며 배운 모범 사례를 바탕으로 작성되었습니다. 이를 통해 AWS 고객은 AWS 리소스의 일반적인 문제를 진단, 수정, 해결하실 수 있습니다. [1] 또한 네트워크 문제를 사전에 식별하고 로그 수집 및 분석의 다양한 작업을 수행할 수 있습니다. AWS 지원 자동화 워크플로우 런북은 AWS 모범 사례에 따라 수동 작업 및 관리 오버헤드, 인적 오류를 줄일 수 있습니다. [2]

AWS 지원 자동화 워크플로우에서 제공되는 "AWSSupport-TroubleshootECSTaskFailedToStart" 런북을 이용하면 ECS Task가 시작되지 않은 이슈를 직접 빠르게 진단하고 해결하실 수 있습니다. [3]

"AWSSupport-TroubleshootECSTaskFailedToStart" 런북은 사용자를 대신하여 다음과 같은 작업을 수행합니다.

  • 구성된 컨테이너 레지스트리에 대한 네트워크 연결이 정상적으로 수행되는지 확인합니다.
  • ECS Task 실행 역할에 필요한 IAM 권한이 누락되었는지 확인합니다.
  • Task 실행에 필요한 VPC 엔드포인트(ECR, CloudWatch Logs 등) 연결이 정상적으로 되어 있는지 확인합니다.
  • 보안 그룹 규칙 구성이 정상적으로 되어 있는지 확인합니다.
  • AWS Secrets Manager의 시크릿에 정상적으로 접근 가능한지 통신, 권한 등을 확인합니다.
  • 로깅 구성에 필요한 리소스들에 정상적으로 접근 가능한지 확인합니다.

본 기사에서는 "AWSSupport-TroubleshootECSTaskFailedToStart" 런북을 이용하여 Task가 시작되지 않은 이슈에 대한 해결 예제를 제공합니다.

문제 해결 예시

  1. 생성되지 않은 Task의 ID를 확인합니다. ECS 서비스를 통해 실행되었다면 ECS 콘솔에서 서비스 이벤트 메시지[4]를 확인하거나, 독립 실행형 Task로 생성되었다면 ECS 콘솔 Task 탭[1]에서 실패한 Task ID를 확인하실 수 있습니다.

  2. AWS Systems Manager 콘솔로 이동하여 왼쪽 네비게이션에서 자동화(Automation)을 선택합니다.

  3. 오른쪽의 자동화 실행(Execute automation) 버튼을 클릭합니다.

  4. 중앙의 자동화 런북에서 "AWSSupport-TroubleshootECSTaskFailedToStart"을 검색하고 선택한 뒤 하단에서 다음(Next)를 클릭합니다.

  5. 기본적으로 단순 실행(Simple execution)으로 선택됩니다. 입력 파라미터 섹션에서 필요한 정보를 입력합니다. 예는 다음과 같습니다.

    • ClusterName(필수): Task 생성에 실패한 ECS 클러스터 이름
    • Task ID(필수): 생성이 실패한 Task의 ID
    • AutomationAssumeRole(선택): System Manager에서 수임할 IAM Role을 지정합니다. 런북에서는 위에 설명한 작업들을 사용자 대신 수행하기 때문에 관련 권한이 존재해야 하며, 지정하지 않을 시 수행한 사용자의 권한으로 실행합니다.
    • CloudwatchRetentionPeriod(선택): 각 엔드포인트 등으로 네트워크 연결을 테스트한 로그가 저장되며 해당 로그의 보존 기간을 설정할 수 있습니다. 기본값은 30입니다. 여기에 이미지 설명 입력
  6. 하단에 실행(Execute)를 클릭합니다.

  7. 런북이 실행되는 동안 위에서 설명한 작업이 자동으로 진행됩니다.

  8. 런북이 성공적으로 실행 완료되며, 아래와 같은 그 결과(Output)을 통해 진단 내용을 확인하여 조치하실 수 있습니다. 아래 예시는 Task 실행 역할에 ECR 관련 IAM 권한이 부여되지 않았고, 인터넷 아웃바운드 연결이 불가하다는 진단 내용이 포함되어 있어 해당 부분들을 확인하여 조치하실 수 있습니다. 여기에 이미지 설명 입력

만약, 이와 같이 AWS 지원 자동화 워크플로우 런북을 진행하였으나 이슈가 해결되지 않을 경우, AWS Support 에 문의하여 계속 문제 해결을 시도할 수 있습니다.

이때, 앞서 실행하신 지원 자동화 워크플로우 런북 실행 ID가 포함된 케이스를 열어 주시면 빠른 지원에 도움이 됩니다.


참고:

[1] 중지된 Task 작업 확인
https://docs.aws.amazon.com/ko_kr/AmazonECS/latest/developerguide/stopped-task-errors.html

[2] AWS 지원 자동화 워크플로우(AWS Support Automation Workflow - AWS SAW)
https://aws.amazon.com/ko/premiumsupport/technology/saw/

[3] AWSSupport-TroubleshootECSTaskFailedToStart
https://docs.aws.amazon.com/ko_kr/systems-manager-automation-runbooks/latest/userguide/automation-aws-troubleshootecstaskfailedtostart.html

[4] ECS 서비스 이벤트 메시지
https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-event-messages.html

profile pictureAWS
지원 엔지니어
게시됨 2달 전298회 조회
댓글 없음

관련 콘텐츠