Amazon Elastic Container Service(Amazon ECS) 작업을 정기적으로 실행하도록 예약했습니다. 하지만 Amazon ECS 작업이 활성화되지 않았습니다. 클러스터의 실행 로그나 작업 기록이 표시되지 않습니다.
해결 방법
예약된 Amazon ECS 작업을 사용하는 경우 Amazon EventBridge는 Amazon ECS에 RunTask API를 호출하여 사용자를 대신하여 작업을 실행합니다.
예약된 Amazon ECS 작업은 다음과 같은 이유로 호출되지 않을 수 있습니다.
- Amazon EventBridge 시간 또는 cron 표현식이 잘못 구성되었습니다.
- EventBridge 규칙 또는 일정은 대상을 호출하지 않습니다.
- RunTask API를 실행하지 못했습니다.
- 애플리케이션 문제 또는 리소스 제약으로 인해 컨테이너가 종료됩니다.
EventBridge cron 표현식이 올바르게 구성되었는지 확인합니다.
EventBridge cron 표현식을 가져오려면 다음 AWS Command Line Interface(AWS CLI) 명령을 실행합니다.
If Eventbridge rules is used
$ aws events describe-rule --name "example-rule" --region example-region
If Eventbridge scheduler is used
$ aws scheduler get-schedule --name "example-schedule" --region example-region
명령 출력에서 ScheduleExpression 파라미터에서 구성된 EventBridge crone 표현식을 확인하세요. 규칙 일정은 UTC+0 시간대로 설정해야 합니다.
참고: AWS Command Line Interface(AWS CLI) 명령 실행 시 오류가 발생하는 경우, AWS CLI 오류 문제 해결을 참고하세요. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하세요.
규칙이 대상을 호출하지 않는지 확인
규칙 성능을 보려면 EventBridge에서 생성한 Amazon CloudWatch 지표를 사용하세요. 간접 호출 데이터 포인트는 대상이 규칙에 의해 호출되었음을 나타냅니다. FailedInvocations 데이터 포인트가 있는 경우, 대상을 호출하는 데 문제가 있는 것입니다. FailedInvocations은 영구적인 실패를 나타내며 잘못된 권한 또는 대상의 잘못된 구성의 결과일 수 있습니다.
EventBridge 규칙의 CloudWatch 지표를 검토하려면 다음과 같이 하세요.
- CloudWatch 콘솔을 엽니다.
- 탐색 창에서 지표를 선택한 다음, 모든 지표를 선택합니다.
- 이벤트를 선택합니다.
- 규칙 이름별을 선택합니다.
- ECS 작업을 실행하도록 구성된 EventBridge 규칙에 대한 TriggerRules, Invocations 및 FailedInvocations 지표를 선택합니다.
- 그래프로 표시된 지표 탭을 선택합니다.
- 나열된 모든 지표에 대해 통계에서 SUM을 선택합니다.
FailedInvocations 데이터 포인트가 있는 경우, 대상 권한과 관련된 문제가 있을 수 있습니다. EventBridge에 ECS 작업을 호출할 수 있는 액세스 권한이 있는지 확인하세요. EventBridge AWS Identity and Access Management(IAM) 역할에 필요한 권한이 있는지 확인합니다. 자세한 내용을 알아보려면 Amazon ECS EventBridge IAM 역할을 참조하세요.
스케줄이 대상을 호출하지 않는지 확인
규칙 성능을 보려면 EventBridge에서 생성한 Amazon CloudWatch 지표를 사용하세요. InvocationAttemptCount 데이터 포인트는 EventBridge 스케줄러가 스케줄 호출을 시도하고 있음을 나타냅니다. TargetErrorCount 데이터 포인트가 있는 경우, 대상 간접 호출에 문제가 있는 것입니다. InvocationDroppedCount는 영구적인 실패를 나타내며 잘못된 권한 또는 대상의 잘못된 구성의 결과일 수 있습니다.
EventBridge 규칙의 CloudWatch 지표를 검토하려면 다음과 같이 하세요.
- CloudWatch 콘솔을 엽니다.
- 탐색 창에서 지표를 선택한 다음, 모든 지표를 선택합니다.
- 스케줄러를 선택합니다.
- 스케줄 그룹 지표를 선택합니다.
- ECS 작업을 실행하도록 구성된 EventBridge 규칙에 대한 InvocationAttemptCount, TargetErrorCount 및 InvocationDroppedCount 지표를 선택합니다.
- 그래프로 표시된 지표 탭을 선택합니다.
- 나열된 모든 지표에 대해 통계에서 SUM을 선택합니다.
InvocationDroppedCount 데이터 포인트가 있는 경우, 부적절한 대상 권한과 관련된 문제가 있을 수 있습니다. EventBridge에 ECS 작업을 호출할 수 있는 액세스 권한이 있는지 확인하세요. EventBridge AWS Identity and Access Management(IAM) 역할에 필요한 권한이 있는지 확인합니다. 자세한 내용을 알아보려면 Amazon ECS EventBridge IAM 역할을 참조하세요.
RunTask 작업이 실행되었는지 확인
RunTask API가 실행되지 않았는지 확인하려면 AWS CloudTrail 이벤트 기록에서 RunTask를 검색하세요. 스케줄링된 ECS 작업이 호출될 것으로 예상되는 시간 범위 내에서 확인하세요.
RunTask 작업이 실패하여 예약된 작업이 호출되지 않았는지 확인하려면 다음과 같이 하세요.
- AWS CloudTrail 콘솔을 엽니다.
- 탐색 창에서 이벤트 기록을 선택합니다.
- 이벤트 기록 페이지에서 조회 속성에 대해 이벤트 이름을 선택합니다.
- 이벤트 이름 입력에 RunTask를 입력합니다.
- 스케줄링된 ECS 작업이 실행될 것으로 예상되는 시간을 기준으로 시간 범위 필터에서 시간 범위를 선택합니다.
참고: 시간 범위의 사전 설정 값은 30분, 1시간, 3시간 및 12시간입니다. 사용자 지정 시간 범위를 지정하려면 사용자 지정을 선택합니다.
- 결과 목록에서 보려는 이벤트를 선택합니다.
- JSON 이벤트 레코드를 보려면 세부 정보 페이지에서 이벤트 레코드로 스크롤합니다.
- JSON 이벤트 레코드에서 errorMessage 또는 responseElements.failures.reason 요소를 찾아보세요.
JSON 이벤트 레코드의 이러한 요소는 스케줄링된 ECS 작업이 호출되지 않는 이유를 표시합니다.
RunTask API 장애 원인 및 원인의 예는 Amazon ECS의 API 실패 이유를 참조하세요.
작업 실행 후 컨테이너가 종료되었는지 확인
Amazon ECS 작업은 애플리케이션 문제 또는 리소스 제약으로 인해 작업이 성공적으로 실행된 후에도 중지될 수 있습니다. 자세한 내용을 알아보려면 컨테이너가 종료될 때 Amazon ECS 작업이 중단되거나 시작되지 않는 문제를 해결하려면 어떻게 해야 하나요?를 참조하세요.
관련 정보
컨테이너가 종료될 때 Amazon ECS 작업이 중단되거나 시작되지 않는 문제를 해결하려면 어떻게 해야 하나요?