내용으로 건너뛰기

Amazon ECS에서 EventBridge 규칙 문제를 해결하려면 어떻게 해야 합니까?

3분 분량
0

Amazon EventBridge 규칙이 Amazon Elastic Container Service(Amazon ECS) 작업을 간접적으로 호출하지 않습니다.

간략한 설명

EventBridge 규칙을 사용하여 Amazon ECS 작업을 간접적으로 호출하면 EventBridge는 RunTask API를 직접적으로 호출하여 작업을 실행합니다.

다음과 같은 이유로 EventBridge 규칙이 ECS 작업을 간접적으로 호출하지 못할 수 있습니다.

  • EventBridge 규칙 구성이 올바르지 않습니다.
  • EventBridge 규칙의 대상 구성이 올바르지 않습니다.
  • AWS Identity and Management(IAM) 역할에 작업을 실행할 권한이 없습니다.

해결 방법

참고: AWS Command Line Interface(AWS CLI) 명령을 실행할 때 오류가 발생하면 AWS CLI의 오류 해결을 참조하십시오. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하십시오.

EventBridge 규칙 구성 확인

EventBridge 규칙이 ENABLED 상태인지 확인합니다. DISABLED 상태인 경우 규칙을 다시 활성화하고 테스트를 수행하여 규칙이 작업을 생성할 수 있는지 여부를 확인합니다.

규칙의 상태를 확인하려면 EventBridge 콘솔 또는 AWS CLI를 사용할 수 있습니다.

EventBridge 콘솔

다음 단계를 완료하십시오.

  1. EventBridge 콘솔을 엽니다.
  2. 탐색 창에서 규칙을 선택합니다.
  3. 이벤트 버스 선택에서 규칙과 연결된 이벤트 버스를 선택합니다.
  4. 규칙을 선택하여 해당 상태를 확인합니다.

AWS CLI

다음 describe-rule 명령을 실행합니다.

aws events describe-rule --name "DailyLambdaFunction" --region "us-east-1"

참고: us-east-1을 해당 AWS 리전으로 바꾸십시오.

명령 출력에서 State 파라미터를 확인하여 규칙의 상태를 확인합니다. 규칙이 DISABLED 상태인 경우 AWS CloudTrail 로그를 확인하여 규칙이 비활성화된 이유를 파악합니다.

이벤트 패턴이 정확하고 이벤트 소스의 이벤트와 일치하는지 확인하십시오. 이벤트 패턴을 확인하려면 EventBridge 샌드박스를 사용합니다.

EventBridge 규칙의 대상 구성 확인

다음 작업을 수행하십시오.

  • EventBridge 규칙의 대상에 대한 ECS 클러스터, TaskDefinition네트워크 구성 파라미터가 올바른지 확인합니다.
  • EventBridge IAM 역할에 작업을 실행하는 데 필요한 권한이 있는지 확인합니다.

다음 Amazon CloudWatch 지표를 사용하면 문제를 해결하는 데 도움이 됩니다.

  • TriggeredRules 지표를 확인합니다. CloudWatch는 이벤트가 규칙을 트리거할 때만 지표를 표시합니다.
  • Invocations 지표를 사용하여 EventBridge가 규칙을 간접적으로 호출한 후 ECS 작업을 실행하려고 시도한 횟수를 확인합니다.
  • FailedInvocations 지표를 사용하여 실패한 간접 호출 수를 확인합니다. 값이 높은 경우 대상이 잘못 구성되었을 수 있습니다.
    참고: 합계 통계는 FailedInvocations 지표를 확인하는 데 가장 유용한 통계일 수 있습니다.

RunTask API 직접 호출이 실패한 이유 확인

다음 단계를 완료하십시오.

  1. CloudTrail 콘솔을 엽니다.
  2. 탐색 창에서 이벤트 기록을 선택합니다.
  3. 속성 조회 드롭다운 목록에서 이벤트 이름을 선택합니다.
  4. 텍스트 상자에 RunTask를 입력하여 RunTask API와 관련된 이벤트를 필터링합니다.
  5. 예상 ECS 작업 런타임을 기준으로 시간 범위를 필터링합니다.
    참고: 시간 범위의 기본값은 30분, 1시간, 3시간 및 12시간입니다. 사용자 지정 시간 범위를 지정하려면 절대 범위를 선택합니다.
  6. 이벤트를 선택한 다음, 이벤트 레코드 섹션에서 JSON 이벤트 레코드를 검토합니다. errorCodeerrorMessage에서 실패 이유를 확인하십시오.

EventBridge DLQ 사용

EventBridge 규칙은 Dead Letter Queue(DLQ)를 지원합니다. DLQ는 Amazon Simple Queue Service(Amazon SQS)를 사용하여 실패한 간접 호출 이벤트를 지정된 표준 대기열에 저장합니다. 이벤트 규칙이 대상을 간접적으로 호출하지 않는 경우 EventBridge는 간접 호출 세부 정보 및 대상으로부터의 응답을 포함하는 JSON 페이로드를 DLQ로 전달합니다. DLQ에서 실패한 이벤트 전송을 분석하여 문제를 해결할 수 있습니다.

관련 정보

Amazon EventBridge 규칙 관련 문제를 해결하려면 어떻게 해야 합니까?

Dead Letter Queue(DLQ)를 사용하여 EventBridge 규칙의 FailedInvocations 문제를 해결하려면 어떻게 해야 합니까?

AWS 공식업데이트됨 10달 전