CloudWatch Logs를 사용하여 로깅 - AWS Step Functions

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

CloudWatch Logs를 사용하여 로깅

표준 워크플로는 AWS Step Functions의 실행 내역을 기록하지만 선택적으로 Amazon CloudWatch Logs에 로깅을 구성할 수 있습니다.

표준 워크플로처럼 Express 워크플로는 AWS Step Functions의 실행 내역을 기록하지 않습니다. Express 워크플로의 실행 내역과 결과를 보려면 Amazon CloudWatch Logs에 로깅을 구성해야 합니다. 로그를 게시해도 실행이 차단되거나 실행 속도가 느려지지 않습니다.

참고

로깅을 구성하면 CloudWatch Logs 요금이 적용되며 판매 로그 비율로 요금이 결제됩니다. 자세한 내용은 CloudWatch 요금의 로그 탭에서 판매 로그를 참조하세요.

로깅 구성

Step Functions 콘솔을 사용하여 표준 워크플로를 만들 때 CloudWatch Logs에 로깅을 활성화하도록 구성되지 않습니다. Step Functions 콘솔을 사용하여 생성된 Express 워크플로는 기본적으로 CloudWatch Logs에 로깅을 활성화하도록 구성됩니다.

Express 워크플로의 경우 Step Functions는 CloudWatch Logs에 필요한 AWS Identity and Access Management(IAM) 정책이 있는 역할을 만들 수 있습니다. API, CLI 또는 AWS CloudFormation을 사용하여 표준 워크플로나 Express 워크플로를 만드는 경우 Step Functions는 기본적으로 로깅을 활성화하지 않으므로 역할에 필요한 권한이 있는지 확인해야 합니다.

콘솔에서 시작된 실행마다 Step Functions는 해당 실행별 로그 이벤트를 가져오도록 올바른 필터가 구성된 CloudWatch Logs에 대한 링크를 제공합니다.

로깅을 구성하려면 CreateStateMachine 또는 UpdateStateMachine을 사용할 때 LoggingConfiguration 파라미터를 전달하면 됩니다. CloudWatch Logs Insights를 사용하여 CloudWatch Logs의 데이터를 자세히 분석할 수 있습니다. 자세한 내용은 CloudWatch Logs Insights를 사용한 로그 데이터 분석을 참조하십시오.

CloudWatch Logs 페이로드

실행 내역 이벤트에 해당 정의의 입력 또는 출력 속성이 포함될 수 있습니다. CloudWatch Logs로 전송된 이스케이프된 입력이나 이스케이프된 출력이 248KB를 초과하면 CloudWatch Logs 할당량으로 인해 잘립니다.

CloudWatch Logs에 로깅하기 위한 IAM 정책

또한 다음 예제와 같이 CloudWatch Logs에 로깅할 수 있는 적절한 권한이 있도록 상태 시스템 실행 IAM 역할을 구성해야 합니다.

IAM 정책 예시

다음은 권한을 구성하는 데 사용할 수 있는 정책의 예입니다. 다음 예제와 같이 CreateLogDelivery 및 DescribeLogGroups와 같은 CloudWatch API 작업은 Amazon CloudWatch Logs에서 정의한 리소스 유형을 지원하지 않으므로 Resource 필드에 *를 지정해야 합니다. 자세한 내용은 Amazon CloudWatch Logs에서 정의한 작업을 참조하세요.

  • CloudWatch 리소스에 대한 자세한 내용은 Amazon CloudWatch 사용 설명서CloudWatch Logs 리소스 및 작업을 참조하세요.

  • CloudWatch Logs로 로그를 전송하도록 설정하는 데 필요한 권한에 대한 자세한 내용은 CloudWatch Logs로 전송된 로그 섹션의 사용자 권한을 참조하세요.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogDelivery", "logs:CreateLogStream", "logs:GetLogDelivery", "logs:UpdateLogDelivery", "logs:DeleteLogDelivery", "logs:ListLogDeliveries", "logs:PutLogEvents", "logs:PutResourcePolicy", "logs:DescribeResourcePolicies", "logs:DescribeLogGroups" ], "Resource": "*" } ] }
CloudWatch Logs에 액세스할 수 없음

CloudWatch Logs에 액세스할 수 없으면 다음을 완료했는지 확인합니다.

  1. CloudWatch Logs에 로깅할 수 있는 적절한 권한이 있도록 상태 시스템 실행 IAM 역할을 구성했습니다.

    CreateStateMachine 또는 UpdateStateMachine 요청을 사용하는 경우 앞선 예제와 같이 권한이 포함된 roleArn 파라미터에 IAM 역할을 지정했는지 확인합니다.

  2. CloudWatch Logs 리소스 정책이 CloudWatch Logs 리소스 정책의 5120자 제한을 초과하지 않는지 확인했습니다.

    문자 제한을 초과한 경우 CloudWatch Logs 리소스 정책에서 불필요한 권한을 제거하거나 로그 그룹 이름 앞에 /aws/vendedlogs 접두사를 추가합니다. 그러면 리소스 정책에 문자를 더 추가하지 않고도 로그 그룹에 권한이 부여됩니다. Step Functions 콘솔에서 로그 그룹을 만들면 로그 그룹 이름에 접두사 /aws/vendedlogs/states가 추가됩니다. 자세한 내용은 Amazon CloudWatch Logs 리소스 정책 크기 제한 섹션을 참조하세요.