Step Functions를 사용하여 모니터링하기 CloudWatch - AWS Step Functions

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

Step Functions를 사용하여 모니터링하기 CloudWatch

모니터링은 AWS 솔루션의 안정성, 가용성 및 성능을 유지하는 데 AWS Step Functions 있어 중요한 부분입니다. 멀티포인트 장애를 디버깅하려면 사용하는 AWS 서비스에서 최대한 많은 모니터링 데이터를 수집해야 합니다. Step Functions 모니터링을 시작하기 전에 다음 질문에 대해 답하는 모니터링 계획을 작성해야 합니다.

  • 모니터링의 목표

  • 모니터링할 리소스

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

  • 사용할 모니터링 도구

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

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

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

예를 들어 Step Functions를 사용하면 하트비트 타임아웃으로 인해 실패한 액티비티 또는 AWS Lambda 태스크의 수를 모니터링할 수 있습니다. 성능이 설정된 기준 아래로 떨어지면 하트비트 간격을 변경해야 할 수 있습니다.

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

  • ActivitiesStarted

  • ActivitiesTimedOut

  • ExecutionsStarted

  • ExecutionsTimedOut

  • LambdaFunctionsStarted

  • LambdaFunctionsTimedOut

다음 섹션에서는 Step Functions가 아마존에 제공하는 메트릭을 설명합니다 CloudWatch. 이러한 지표를 사용하면 상태 시스템 및 활동을 추적하고 임계값에 경보를 설정할 수 있습니다. 를 사용하여 지표를 볼 수 있습니다 AWS Management Console.

시간 간격을 보고하는 지표

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

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

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

개수를 보고하는 지표

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

Step Functions는 모든 스테이트 머신 실행에 대해 두 개의 ExecutionsStarted 메트릭을 내보냅니다. 이로 인해 모든 상태 머신 실행에 대한 ExecutionsStarted 지표 SampleCount통계에 값 2가 표시됩니다. SampleCount 통계에는 실행 완료 ExecutionStarted=1 시점과 ExecutionStarted=0 시기가 표시됩니다.

작은 정보

콘솔에 카운트를 보고하는 지표의 디스플레이 통계로 Sum을 선택하는 것이 좋습니다. CloudWatch

실행 지표

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

지표 설명
OpenExecutionCount

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

워크플로가 최대 실행 한도에 도달하는 시기에 대한 통찰력을 제공하여 표준 워크플로를 StartExecution 호출하거나 표준 워크플로를 호출할 때 ExecutionLimitExceeded오류가 발생하지 않도록 하기 RedriveExecution 위한 것입니다.

지표는 활성 워크플로 상태 전환에 따라 달라지므로 낮은 수준에서는 예상치가 관찰된 실행 워크플로 수와 일치하지 않을 수 있습니다.

OpenExecutionLimit

열려 있는 최대 실행 수입니다. 자세한 설명은 계정과 관련된 할당량 섹션을 참조하세요.

이 제한은 익스프레스 워크플로우에는 적용되지 않습니다.

버전 또는 별칭이 있는 스테이트 머신의 실행 메트릭

버전 또는 별칭을 사용하여 상태 머신을 실행하는 경우 Step Functions는 다음 지표를 내보냅니다. 이 ExecutionThrottled 지표는 실행이 제한되는 경우에만 생성됩니다. 이러한 지표에는 특정 상태 머신을 StateMachineArn 식별하기 위한 a가 포함됩니다.

지표 설명
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를 사용하여 Lambda 간접 호출 섹션을 참조하세요.

서비스 통합 지표

AWS/States 네임스페이스에는 Step Functions 서비스 통합에 대한 다음과 같은 지표가 포함되어 있습니다. 자세한 설명은 다른 서비스와 AWS Step Functions 함께 사용 섹션을 참조하세요.

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

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

측정기준 설명

ServiceIntegrationResourceArn

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

서비스 지표

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

지표 설명
ThrottledEvents

병목 현상이 발생한 요청 수.

ProvisionedBucketSize

초당 사용 가능한 요청 수.

ProvisionedRefillRate

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

ConsumedCapacity

초당 요청 수.

Step Functions 서비스 지표의 차원

측정기준 설명

ServiceName

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

API 지표

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

지표 설명
ThrottledEvents

병목 현상이 발생한 요청 수입니다.

ProvisionedBucketSize

초당 사용 가능한 요청 수.

ProvisionedRefillRate

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

ConsumedCapacity

초당 요청 수.

Step Functions API 지표의 차원

측정기준 설명

APIName

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

최선을 다한 CloudWatch 지표 전달

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

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

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