본 기사는 AWS 지원 자동화 워크플로우 (Support Automation Workflow)의 "AWSSupport-CollectAmazonConnectContactFlowLog" 런북을 사용하여 특정 통화에 대한 Amazon Connect 통화 흐름 로그를 수집하여 문제를 보다 쉽게 해결하는 방법에 대해 설명합니다.
통화 흐름 로그를 사용하면 통화가 통화 흐름의 다양한 블록을 거쳐 이동하는 과정을 이해할 수 있습니다. 또한 통화 흐름 로그를 사용하여 장애를 해결하고 오류가 발생하는 위치를 격리할 수 있습니다.
Amazon Connect 통화 흐름 로그에 대한 자세한 내용은 다음 문서를 참고하시기 바랍니다. [1]
이 문서에서는 “AWSSupport-CollectAmazonConnectContactFlowLog” AWS Systems Manager(SSM) 자동화 런북을 사용하여 특정 통화 ID(ContactId)에 대한 Amazon Connect 통화 흐름 로그를 쉽게 수집할 수 있는 방법을 보여드리겠습니다.
어떻게 작동하나요?
Amazon Connect 통화 흐름 로그는 CloudWatch 로그에 쌓이게 됩니다. "AWSSupport-CollectAmazonConnectContactFlowLog" 런북은 지정된 통화 ID에 대해 Amazon CloudWatch 로그에 위치한 통화 흐름 로그들을 선택한 Amazon S3 버킷으로 정확하고 안전하게 추출하는 작업을 수행합니다.
사용에 대한 예로는, AWS 기술지원팀이 고객님의 문제 해결을 위해 통화 흐름 로그를 요청하였을때, 해당 자동화 실행 문서를 사용하여 Amazon CloudWatch 로그에서 안전하게 데이터를 추출하여 이를 전달할 수 있습니다.
사전 요구 사항
SSM 자동화 실행 문서를 실행하기위해, 해당 문서가 사용할 IAM 역할을 미리 준비해야 합니다. 해당 설정에 대한 자세한 내용은 다음 문서에서 확인하실 수 있습니다. [2]
따라서, "AWSSupport-CollectAmazonConnectContactFlowLog" 런북에 사용할 IAM 역할은 아래 절차에 따라 준비해주시기 바랍니다.
- Trust policy를 아래와 같이 지정해주시기 바랍니다.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "ssm.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
-
Connect 시스템으로 접근을 위해 권한에 AmazonConnectReadOnlyAccess Management role 을 추가해주시기 바랍니다.
-
실행을 위해 필요한 아래 권한들을 추가해주시기 바랍니다.
s3:GetBucketPublicAccessBlock
s3:GetBucketPolicyStatus
s3:PutObject
s3:PutObjectAcl
s3:GetBucketAcl
s3:GetAccountPublicAccessBlock
logs:StartQuery
logs:GetQueryResults
ssm:GetAutomationExecution
ssm:StartAutomationExecution
자동화 실행 절차
- Systems Manager 콘솔로 이동합니다.
- 좌측 메뉴창에서 변경관리 > 자동화 (Automation) 를 선택합니다.
- 우측 상단 "Execute automation" 버튼을 선택합니다.
- 검색 창에 "CollectAmazonConnectContactFlowLog" 를 입력합니다.
- 검색된 결과에서 "AWSSupport-CollectAmazonConnectContactFlowLog" 문서를 선택합니다.
- 우측 상단 "자동화 실행" (Execute automation) 버튼을 선택합니다.
- 입력 매개변수들에 아래 내용을 입력합니다:
- AutomationAssumeRole (선택): Systems Manager 자동화가 작업을 수행할 수 있도록 허용하는 IAM 역할의 Amazon 리소스 이름(ARN)입니다. 사전요구사항에서 준비하였던 IAM 역할을 지정하실것을 권고드립니다. 이 매개변수가 지정되지 않으면, Systems Manager 자동화는 이 실행을 시작하는 사용자의 권한을 사용합니다.
- ConnectInstanceId (필수): Amazon Connect 인스턴스 ID입니다.
- ContactId (필수): 통화 흐름 로그를 수집하려는 통화의 ID입니다.
- S3BucketName (필수): 통화 흐름 로그를 업로드해야할 Amazon S3 버킷 이름입니다. 버킷 정책에서 수집된 로그에 액세스할 필요가 없는 당사자들에게 불필요한 읽기/쓰기 권한을 부여하지 않도록 확인할것을 권고드립니다.
- S3ObjectPrefix (선택): 통화 흐름 로그가 업로드 될 Amazon S3 버킷의 객체 경로입니다. 예를 들어 'CollectedLogs'를 지정하면 로그가 's3://your-s3-bucket/CollectedLogs/ContactFlowLog_[ContactId][AWSAccountId].gz' 에 업로드됩니다. 이 매개변수가 지정되지 않으면, 자동화 실행 ID가 사용됩니다. 예를 들어, 's3://your-s3-bucket/[automation:EXECUTION_ID]/ContactFlowLog[ContactId]_[AWSAccountId].gz' 입니다. 참고로 'S3ObjectPrefix' 값에 ContactId 값과 동일한 값을 지정하면, 통화 흐름 로그는 덮어쓰여집니다.
- S3BucketOwnerAccountId (선택): 연락처 흐름 로그를 업로드할 Amazon S3 버킷을 소유하고 있는 AWS 계정 번호입니다. 값을 지정하지 않으면 자동화가 실행되는 사용자 또는 역할의 AWS 계정 ID를 사용합니다.
- S3BucketOwnerRoleArn (선택): Amazon S3 버킷과 계정 퍼블릭 액세스 차단 설정, 버킷 암호화 설정, 버킷 ACL, 버킷 정책 상태 및 버킷에 객체 업로드 권한으로 사용할 IAM 역할의 ARN입니다. 이 매개변수가 지정되지 않으면, 실행은 AutomationAssumeRole 이 지정되었을 경우 이를 사용하며, AutomationAssumeRole가 이 지정되지 않았을 경우 실행을 시작하는 사용자의 권한을 사용합니다.
- 이후 가장 아래에 있는 "Execute" 버튼을 선택합니다.
- 화면이 변경되어 자동화 실행이 시작되며, 진행상황을 확인하실 수 있습니다.
- 실행이 "Success" 로 종료되면 Outputs 항목을 열어 결과를 확인합니다. 결과에서 추출된 로그를 1) S3 콘솔경로 혹은 2) CLI 커멘드를 통해 접근가능한 방법을 확인하실 수 있습니다.
결론
지금까지 Systems Manager에서 사용할 수 있는자동화 런북 "AWSSupport-CollectAmazonConnectContactFlowLog" 를 이용하여 Amazon Connect 통화 흐름 로그를 수집하는 방법을 확인하였습니다.
수집된 통화 흐름 로그를 이용하여 통화 흐름 간 문제를 보다 빠르고 정확하게 해결하실 수 있습니다. 문제해결에 관한 자세한 내용은 다음 문서를 참고바랍니다. [3]
참고
[1] 고객이 상호 작용할 때 Amazon Connect 흐름 로그에서 이벤트 추적
https://docs.aws.amazon.com/ko_kr/connect/latest/adminguide/about-contact-flow-logs.html
[2] 콘솔을 사용하여 Automation을 위한 서비스 역할 생성
https://docs.aws.amazon.com/ko_kr/systems-manager/latest/userguide/automation-setup-iam.html
[3] Amazon Connect의 고객 응대 흐름 오류 문제를 해결하려면 어떻게 해야 하나요?
https://repost.aws/ko/knowledge-center/connect-contact-flow-errors