기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
CloudWatch Logs를 사용하여 로깅
표준 워크플로는 AWS Step Functions의 실행 내역을 기록하지만 선택적으로 Amazon CloudWatch Logs에 로깅을 구성할 수 있습니다.
표준 워크플로처럼 Express 워크플로는 AWS Step Functions의 실행 내역을 기록하지 않습니다. Express 워크플로의 실행 내역과 결과를 보려면 Amazon CloudWatch Logs에 로깅을 구성해야 합니다. 로그를 게시해도 실행이 차단되거나 실행 속도가 느려지지 않습니다.
참고
로깅을 구성하면 CloudWatch Logs 요금
로깅 구성
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 할당량으로 인해 잘립니다.
-
inputDetails
및outputDetails
속성을 검토하여 페이로드가 잘렸는지 여부를 확인할 수 있습니다. 자세한 내용은HistoryEventExecutionDataDetails
데이터 유형을 참조하세요. -
표준 워크플로의 경우
GetExecutionHistory
를 사용하여 전체 실행 내역을 확인할 수 있습니다. -
Express 워크플로에
GetExecutionHistory
을 사용할 수 없습니다. 전체 입력 및 출력을 확인하려면 Amazon S3 ARN을 사용하면 됩니다. 자세한 내용은 대용량 페이로드를 전달하는 대신 Amazon S3 ARN 사용 섹션을 참조하세요.
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에 액세스할 수 없으면 다음을 완료했는지 확인합니다.
-
CloudWatch Logs에 로깅할 수 있는 적절한 권한이 있도록 상태 시스템 실행 IAM 역할을 구성했습니다.
CreateStateMachine 또는 UpdateStateMachine 요청을 사용하는 경우 앞선 예제와 같이 권한이 포함된
roleArn
파라미터에 IAM 역할을 지정했는지 확인합니다. -
CloudWatch Logs 리소스 정책이 CloudWatch Logs 리소스 정책의 5120자 제한을 초과하지 않는지 확인했습니다.
문자 제한을 초과한 경우 CloudWatch Logs 리소스 정책에서 불필요한 권한을 제거하거나 로그 그룹 이름 앞에
/aws/vendedlogs
접두사를 추가합니다. 그러면 리소스 정책에 문자를 더 추가하지 않고도 로그 그룹에 권한이 부여됩니다. Step Functions 콘솔에서 로그 그룹을 만들면 로그 그룹 이름에 접두사/aws/vendedlogs/states
가 추가됩니다. 자세한 내용은 Amazon CloudWatch Logs 리소스 정책 크기 제한 섹션을 참조하세요.