Amazon CloudWatch를 사용하여 Step Functions 지표 모니터링 - AWS Step Functions

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Amazon CloudWatch를 사용하여 Step Functions 지표 모니터링

모니터링은 AWS Step Functions와 사용자 AWS 솔루션의 신뢰성, 가용성 및 성능을 유지하는 중요한 역할을 합니다. 다중 지점 실패를 디버깅할 수 있도록 사용하는 AWS 서비스로부터 많은 모니터링 데이터를 수집해야 합니다.

Step Functions 모니터링을 시작하기 전에 다음 질문에 대해 답하는 모니터링 계획을 작성해야 합니다.

  • 모니터링의 목표

  • 모니터링할 리소스

  • 이러한 리소스를 모니터링하는 빈도

  • 사용할 모니터링 도구

  • 모니터링 작업을 수행할 사람

  • 문제 발생 시 알려야 할 대상

다음 단계는 환경의 정상 성능에 대한 기준을 설정하는 것입니다. 이렇게 하려면 다양한 시간과 다양한 부하 조건에서 성능을 측정해야 합니다. Step Functions를 모니터링할 때 과거 모니터링 데이터를 저장하는 것이 좋습니다. 그러한 데이터는 현재 성능 데이터와 비교하고, 일반 성능 패턴과 성능 이상을 식별하고, 문제 해결 방법을 제안하는 기준이 될 수 있습니다.

예를 들어 Step Functions를 사용하면 하트비트 제한 시간으로 인해 실패하는 활동이나 AWS Lambda 작업 수를 모니터링할 수 있습니다. 성능이 설정된 기준 아래로 떨어지면 하트비트 간격을 변경해야 할 수 있습니다.

기준선을 설정하려면 최소한 다음 지표를 모니터링해야 합니다.

  • ActivitiesStarted

  • ActivitiesTimedOut

  • ExecutionsStarted

  • ExecutionsTimedOut

  • LambdaFunctionsStarted

  • LambdaFunctionsTimedOut

CloudWatch에 대한 Step Functions 지표

Step Functions는 Amazon CloudWatch에 다음과 같은 유형의 지표를 제공합니다. 이러한 지표를 사용하면 상태 시스템 및 활동을 추적하고 임계값에 경보를 설정할 수 있습니다. AWS Management Console을 사용하여 지표를 볼 수 있습니다.

CloudWatch 지표 전송

CloudWatch 지표를 전송하고자 최선을 다할 것입니다.

모든 지표가 제때 전송될 것이라고 보장할 수는 없습니다. 특정 요청에 대한 데이터 요소는 그 요청이 실제로 처리되었을 때보다 더 늦은 타임스탬프와 함께 반환될 수도 있습니다. 데이터 요소가 CloudWatch를 통해 제공되기 전에 잠시동안 지연될 수 있거나 아예 전송되지 않을 수 있습니다. CloudWatch 요청 지표는 상태 시스템 실행 정보를 거의 실시간으로 제공합니다. 모든 실행 관련 지표를 완벽하게 제공한다는 의미는 아닙니다.

완벽한 전송을 보장할 수 없는 그 특성에 따라 결제 및 비용 관리 대시보드에 제공되는 보고서에는 실행 지표에 나타나지 않는 액세스 요청이 하나 이상 포함될 수 있습니다.

시간 간격을 보고하는 지표

일부 Step Functions CloudWatch 지표는 시간 간격이며 항상 밀리초 단위로 측정됩니다. 이러한 지표는 일반적으로 사용자가 알기 쉬운 이름을 사용하여 상태 시스템, 활동 및 Lambda 함수 제한 시간을 설정하는 실행 단계에 해당합니다.

예를 들어, ActivityRunTime 지표는 활동이 실행을 시작한 후 완료될 때까지 걸리는 시간을 측정합니다. 동일한 기간에 대해 제한 시간 값을 설정할 수 있습니다.

CloudWatch 콘솔에서 시간 간격 지표에 대한 표시 통계로 평균을 선택하면 최상의 결과를 얻을 수 있습니다.

개수를 보고하는 지표

Step Functions CloudWatch 지표 중 일부는 결과를 개수로 보고합니다. 예를 들어, ExecutionsFailed는 실패한 상태 시스템 실행 수를 기록합니다.

Step Functions는 모든 상태 시스템 실행에 ExecutionsStarted 지표 2개를 내보냅니다. 이로 인해 ExecutionsStarted 지표에 대한 SampleCount 통계에는 모든 상태 머신 실행에 대한 값 2가 표시됩니다. 실행이 완료되면 SampleCount 통계에 ExecutionStarted=1ExecutionStarted=0이 표시됩니다.

작은 정보

CloudWatch 콘솔에서 개수를 보고하는 지표의 표시 통계로 합계를 선택하는 것이 좋습니다.

실행 지표

AWS/States 네임스페이스에는 모든 Step Functions 실행에 대한 다음 지표가 포함되어 있습니다. 이는 리전의 계정 전체에 적용되는 차원 없는 지표입니다.

지표 설명
OpenExecutionCount

현재 열린 실행의 대략적인 수 - 현재 계정에서 진행 중인 워크플로입니다.

표준 워크플로의 경우 StartExecution 또는 RedriveExecution을 호출할 때 ExecutionLimitExceeded 오류를 방지하기 위해 워크플로가 최대 실행 한도에 도달하는 시점에 대한 통찰력을 제공하기 위한 입니다.

OpenExecutionCount는 대략적인 열린 워크플로 수입니다. 이 지표는 관찰된 실행 중인 워크플로 수보다 적습니다. 10,000개 미만의 열린 워크플로 수를 실행하면 열린 실행이 0으로 표시될 수 있습니다. OpenExecutionLimit에 가까워지면 알려주는 경보의 경우, 기본 열린 워크플로 한도가 1,000,000회 실행이므로 임계값이 100K 이상인 최대 통계를 사용하는 것이 좋습니다.

OpenExecutionLimit

최대 열린 실행 수입니다. 자세한 내용은 계정과 관련된 할당량 단원을 참조하십시오.

Express 워크플로에는 이 한도가 적용되지 않습니다.

버전 또는 별칭이 있는 상태 시스템에 대한 실행 지표

버전 또는 별칭을 사용하여 상태 시스템 실행을 실행하면 Step Functions에서 다음 지표를 내보냅니다. ExecutionThrottled 지표는 실행이 제한된 경우에만 내보내집니다. 이러한 지표에는 특정 상태 시스템을 식별하기 위한 StateMachineArn이 포함됩니다.

지표 설명
ExecutionTime 실행 시작 시간과 종료 시간 사이의 시간 간격(밀리초)입니다.
ExecutionThrottled 조절된 StateEntered 이벤트 및 재시도 수입니다. 이 항목은 StateTransition 조절과 관련됩니다. 자세한 내용은 상태 제한과 관련된 할당량 단원을 참조하십시오.
ExecutionsAborted 중단되거나 종료된 실행 수입니다.
ExecutionsFailed 실패한 실행 수입니다.
ExecutionsStarted 시작된 실행 수입니다.
ExecutionsSucceeded 성공적으로 완료된 실행 수입니다.
ExecutionsTimedOut 이유에 관계없이 시간이 초과된 실행 수입니다.

Express 워크플로의 실행 지표

AWS/States 네임스페이스에는 Step Functions Express 워크플로 실행에 대한 다음 지표가 포함되어 있습니다.

지표 설명
ExpressExecutionMemory

Express 워크플로에서 소비한 총 메모리입니다.

ExpressExecutionBilledDuration

Express 워크플로 요금이 청구되는 기간입니다.

ExpressExecutionBilledMemory

Express 워크플로에 요금이 청구되는 메모리 사용량입니다.

표준 워크플로의 Redrive 실행 지표

상태 시스템 실행을 redrive하면 Step Functions에서 다음 지표를 내보냅니다.

모든 redriven 실행에 대해 Executions* 지표를 내보냅니다. 예를 들어 redriven 실행이 중단되었다고 가정해보겠습니다. 이 실행은 RedrivenExecutionsAbortedExecutionsAborted 모두에 대해 0이 아닌 데이터포인트를 내보냅니다.

지표 설명
ExecutionsRedriven redriven 실행 수입니다.
RedrivenExecutionsAborted 취소되거나 종료된 redriven 실행 수입니다.
RedrivenExecutionsTimedOut 이유에 관계없이 시간이 초과된 redriven 실행 수입니다.
RedrivenExecutionsSucceeded 성공적으로 완료된 redriven 실행 수입니다.
RedrivenExecutionsFailed 실패한 redriven 실행 수입니다.

Step Functions 실행 지표에 대한 차원

측정기준 설명
StateMachineArn

해당 실행에 사용되는 상태 시스템의 Amazon 리소스 이름(ARN)입니다.

버전이 있는 실행 차원

측정기준 설명
StateMachineArn

버전으로 실행이 시작된 상태 시스템의 Amazon 리소스 이름(ARN)입니다.

Version

실행을 시작하는 데 사용된 상태 시스템 버전입니다.

별칭이 있는 실행 차원

측정기준 설명
StateMachineArn

별칭으로 실행이 시작된 상태 시스템의 Amazon 리소스 이름(ARN)입니다.

Alias

실행을 시작하는 데 사용된 상태 시스템 별칭입니다.

버전 및 별칭에 대한 리소스 수 지표

AWS/States 네임스페이스에는 상태 시스템의 버전 및 별칭 수에 대한 다음 지표가 포함되어 있습니다.

지표 설명
AliasCount

상태 시스템에 대해 생성된 별칭 수입니다.

상태 시스템마다 별칭을 최대 100개까지 만들 수 있습니다.

VersionCount

상태 시스템에 게시된 버전 수입니다.

상태 시스템 버전을 최대 1,000개까지 게시할 수 있습니다.

버전 및 별칭에 대한 리소스 수 지표의 차원

측정기준 설명
ResourceArn

버전이나 별칭이 있는 상태 시스템의 Amazon 리소스 이름(ARN)입니다.

활동 지표

AWS/States 네임스페이스에는 Step Functions 활동에 대한 다음 지표가 포함되어 있습니다.

지표 설명
ActivityRunTime 활동 시작 시간과 종료 시간 사이의 시간 간격(밀리초)입니다.
ActivityScheduleTime 활동이 예약 상태를 유지하는 시간 간격(밀리초)입니다.
ActivityTime 활동 예약 시간과 종료 시간 사이의 시간 간격(밀리초)입니다.
ActivitiesFailed 실패한 활동 수입니다.
ActivitiesHeartbeatTimedOut 하트비트 제한 시간으로 인해 시간이 초과된 활동 수입니다.
ActivitiesScheduled 예약된 활동 수입니다.
ActivitiesStarted 시작된 활동 수입니다.
ActivitiesSucceeded 성공적으로 완료된 활동 수입니다.
ActivitiesTimedOut 종료 시간이 초과된 활동 수입니다.

Step Functions 활동 지표의 차원

측정기준 설명

ActivityArn

활동 ARN

Lambda 함수 지표

AWS/States 네임스페이스에는 Step Functions Lambda 함수에 대한 다음 지표가 포함되어 있습니다.

지표 설명
LambdaFunctionRunTime Lambda 함수 시작 시간과 종료 시간 사이의 시간 간격(밀리초)입니다.
LambdaFunctionScheduleTime Lambda 함수가 예약 상태를 유지하는 시간 간격(밀리초)입니다.
LambdaFunctionTime Lambda 함수 예약 시간과 종료 시간 사이의 시간 간격(밀리초)입니다.
LambdaFunctionsFailed 실패한 Lambda 함수 수입니다.
LambdaFunctionsScheduled 예약된 Lambda 함수 수입니다.
LambdaFunctionsStarted 시작된 Lambda 함수 수입니다.
LambdaFunctionsSucceeded 성공적으로 완료된 Lambda 함수 수입니다.
LambdaFunctionsTimedOut 종료 시간이 초과된 Lambda 함수 수입니다.

Step Functions Lambda 함수 지표의 차원

측정기준 설명

LambdaFunctionArn

Lambda 함수의 ARN입니다.

참고

Lambda 함수 지표를 Resource 필드에 Lambda 함수 ARN을 지정하는 Task 상태에 내보냅니다. "Resource": "arn:aws:states:::lambda:invoke"를 사용하는 Task 상태에서 대신 서비스 통합 지표를 내보냅니다. 자세한 내용은 Step Functions를 사용하여 AWS Lambda 함수 호출 단원을 참조하십시오.

서비스 통합 지표

AWS/States 네임스페이스에는 Step Functions 서비스 통합에 대한 다음과 같은 지표가 포함되어 있습니다. 자세한 내용은 Step Functions에서 서비스 통합 단원을 참조하십시오.

측정치 설명
ServiceIntegrationRunTime 서비스 작업이 시작되는 시간과 종료되는 시간 사이의 시간 간격(밀리초)입니다.
ServiceIntegrationScheduleTime 서비스 작업이 예약 상태를 유지하는 시간 간격(밀리초)입니다.
ServiceIntegrationTime 서비스 작업이 예약되는 시간과 종료되는 시간 사이의 시간 간격(밀리초)입니다.
ServiceIntegrationsFailed 실패한 서비스 작업 수입니다.
ServiceIntegrationsScheduled 예약된 서비스 작업 수입니다.
ServiceIntegrationsStarted 시작된 서비스 작업 수입니다.
ServiceIntegrationsSucceeded 성공적으로 완료된 서비스 작업 수입니다.
ServiceIntegrationsTimedOut 종료 시간이 초과된 서비스 작업 수입니다.

Step Functions 서비스 통합 지표의 차원

측정기준 설명

ServiceIntegrationResourceArn

통합 서비스의 리소스 ARN입니다.

서비스 지표

AWS/States 네임스페이스에는 Step Functions 서비스에 대한 다음과 같은 지표가 포함되어 있습니다.

지표 설명
ThrottledEvents

조절된 요청 수입니다.

ProvisionedBucketSize

초당 사용 가능한 요청 수입니다.

ProvisionedRefillRate

버킷에 허용되는 초당 요청 수입니다.

ConsumedCapacity

초당 요청 수입니다.

Step Functions 서비스 지표의 차원

측정기준 설명

ServiceMetric

State Transitions 수치를 보여 주는 데이터를 필터링합니다.

API 지표

AWS/States 네임스페이스에는 Step Functions API에 대한 다음과 같은 지표가 포함되어 있습니다.

지표 설명
ThrottledEvents

조절된 요청 수입니다.

ProvisionedBucketSize

초당 사용 가능한 요청 수입니다.

ProvisionedRefillRate

버킷에 허용되는 초당 요청 수입니다.

ConsumedCapacity

초당 요청 수입니다.

Step Functions API 지표의 차원

측정기준 설명

APIName

지정한 API 이름의 API에 대한 데이터를 필터링합니다.

CloudWatch에서 Step Functions 지표 보기

CloudWatch 콘솔을 사용하여 실행, 활동, 함수 및 서비스 통합에 대한 Step Functions 지표를 볼 수 있습니다.

  1. AWS Management Console에 로그인하고 CloudWatch 콘솔을 엽니다.

  2. 지표를 선택하고 모든 지표 탭에서 상태를 선택합니다.

    최근에 실행을 실행했다면 다음과 같은 유형의 지표가 최대 4개까지 표시됩니다.

    • 실행 지표

    • 활동 기능 지표

    • Lambda 함수 지표

    • 서비스 통합 지표

  3. 지표 목록을 보려는 지표 유형을 선택합니다.

    • [Metric Name] 또는 [StateMachineArn]을 기준으로 지표를 정렬하려면 열 머릿글을 사용하십시오.

    • 지표에 대한 그래프를 보려면 목록에서 지표 옆의 확인란을 선택합니다. 그래프 보기 위의 시간 범위 컨트롤을 사용하여 그래프 파라미터를 변경할 수 있습니다.

      상대값 또는 절대값(특정 날짜 및 시간)을 사용하여 사용자 지정 시간 범위를 선택할 수 있습니다. 또한 드롭다운 목록을 사용하여 값을 선, 스택형 영역 또는 숫자(값)으로 표시할 수 있습니다.

    • 그래프에 대한 세부 정보를 보려면 그래프 아래 나타나는 지표 색상 코드 위에 마우스 포인터를 놓으면 지표 세부 사항이 표시됩니다.

CloudWatch 지표 사용 방법에 대한 자세한 내용은 Amazon CloudWatch 사용 설명서Amazon CloudWatch 지표 사용을 참조하세요.

CloudWatch에서 Step Functions 지표에 대한 경보 설정

Amazon CloudWatch 경보를 사용하여 작업을 수행할 수 있습니다. 예를 들어 경보 임계 값 도달 시기를 알고 싶으면 StateMachinesFailed 지표가 특정 임계 값을 초과할 때 알림을 Amazon SNS 주제에 보내거나 이메일을 보내도록 경보를 설정하면 됩니다.

지표에 대해 경보를 설정하려면

  1. AWS Management Console에 로그인하고 CloudWatch 콘솔을 엽니다.

  2. 지표를 선택하고 모든 지표 탭에서 상태를 선택합니다.

    최근에 실행을 실행했다면 다음과 같은 유형의 지표가 최대 4개까지 표시됩니다.

    • 실행 지표

    • 활동 기능 지표

    • Lambda 함수 지표

    • 서비스 통합 지표

  3. 지표 목록을 보려는 지표 유형을 선택합니다.

  4. 지표를 선택한 후 그래프로 표시된 지표를 선택합니다.

  5. 목록의 지표 옆에 있는 종 모양 아이콘을 선택하여 경보 생성 페이지를 표시합니다.

  6. 경보 임계값작업에 값을 입력한 후 경보 생성을 선택합니다.

경보 설정 및 CloudWatch 경보 사용 방법에 대한 자세한 내용은 Amazon CloudWatch 사용 설명서Amazon CloudWatch 경보 생성을 참조하세요.