

# IVS 챗 로깅
<a name="chat-logging"></a>

채팅 로깅 기능은 방에 있는 모든 채팅 메시지를 Amazon S3 버킷, Amazon CloudWatch Logs 또는 Amazon Kinesis Data Firehose에 기록할 수 있습니다. 이후 로그는 분석이나 라이브 비디오 세션으로 연결되는 채팅 리플레이를 만드는 데 사용될 수 있습니다.

## 채팅룸에 대한 채팅 로깅 활성화
<a name="chat-logging-enable"></a>

채팅 로깅은 로깅 구성을 채팅룸과 연결하여 활성화할 수 있는 고급 옵션입니다. 로깅 구성은 채팅룸의 메시지가 기록되는 위치 유형(Amazon S3 버킷, Amazon CloudWatch Logs 또는 Amazon Kinesis Data Firehose)을 지정할 수 있는 리소스입니다. 로깅 구성 생성 및 관리에 대한 자세한 내용은 [Amazon IVS Chat 시작하기](getting-started-chat.md) 및 [Amazon IVS Chat API 참조](https://docs.aws.amazon.com//ivs/latest/ChatAPIReference/Welcome.html)를 확인하세요.

새 방을 만들 때([CreateRoom](https://docs.aws.amazon.com//ivs/latest/ChatAPIReference/API_CreateRoom.html)) 또는 기존 방을 업데이트할 때([UpdateRoom](https://docs.aws.amazon.com//ivs/latest/ChatAPIReference/API_UpdateRoom.html)) 각 방에 최대 3개의 로깅 구성을 연결할 수 있습니다. 여러 방을 동일한 로깅 구성에 연결할 수 있습니다.

하나 이상의 활성 로깅 구성이 방과 연결되면 [Amazon IVS Chat Messaging API](https://docs.aws.amazon.com//ivs/latest/chatmsgapireference/welcome.html)를 통해 해당 방에 전송된 모든 메시징 요청이 지정한 위치에 자동으로 기록됩니다. 다음은 평균 전파 지연 시간(메시징 요청이 전송된 시점부터 지정한 위치에서 사용할 수 있게 되는 시점까지)입니다.
+ Amazon S3 버킷: 5분
+ Amazon CloudWatch Logs 또는 Amazon Kinesis Data Firehose: 10초

## 메시지 콘텐츠
<a name="chat-logging-message-content"></a>

### 형식
<a name="message-content-format"></a>

```
{
   "event_timestamp": "string",
   "type": "string",
   "version": "string",
   "payload": { "string": "string" }
}
```

### Fields
<a name="message-content-fields"></a>


| 필드 | 설명 | 
| --- | --- | 
| `event_timestamp` | Amazon IVS Chat에서 메시지를 받은 시점의 UTC 타임스탬프입니다. | 
| `payload` | 클라이언트가 Amazon IVS Chat 서비스에서 받게 되는 [메시지(구독)](https://docs.aws.amazon.com//ivs/latest/chatmsgapireference/actions-message-subscribe.html) 또는 [이벤트(구독)](https://docs.aws.amazon.com//ivs/latest/chatmsgapireference/actions-event-subscribe.html) JSON 페이로드입니다. | 
| `type` | 채팅 메시지의 유형입니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/ivs/latest/ChatUserGuide/chat-logging.html)  | 
| `version` | 메시지 콘텐츠 형식의 버전입니다. | 

## Amazon S3 버킷
<a name="chat-logging-s3-bucket"></a>

### 형식
<a name="s3-bucket-format"></a>

메시지 로그는 다음과 같은 S3 접두사와 파일 형식으로 구성되고 저장됩니다.

```
AWSLogs/<account_id>/IVSChatLogs/<version>/<region>/room_<resource_id>/<year>/<month>/<day>/<hours>/<account_id>_IVSChatLogs_<version>_<region>_room_<resource_id>_<year><month><day><hours><minutes>_<hash>.log.gz
```

### Fields
<a name="s3-bucket-fields"></a>


| 필드 | 설명 | 
| --- | --- | 
| `<account_id>` | 방이 생성되는 AWS 계정 ID입니다. | 
| `<hash>` | 고유성을 보장하기 위해 시스템에서 생성한 해시 값입니다. | 
| `<region>` | 방이 생성된 AWS 서비스 리전입니다. | 
| `<resource_id>` | 방 ARN의 리소스 ID 부분입니다. | 
| `<version>` | 메시지 콘텐츠 형식의 버전입니다. | 
| `<year> / <month> / <day> / <hours> / <minute>` | Amazon IVS Chat에서 메시지를 받은 시점의 UTC 타임스탬프입니다. | 

### 예제
<a name="s3-bucket-example"></a>

```
AWSLogs/123456789012/IVSChatLogs/1.0/us-west-2/room_abc123DEF456/2022/10/14/17/123456789012_IVSChatLogs_1.0_us-west-2_room_abc123DEF456_20221014T1740Z_1766dcbc.log.gz
```

## Amazon CloudWatch Logs
<a name="chat-logging-cloudwatch-logs"></a>

### 형식
<a name="cloudwatch-logs-format"></a>

메시지 로그는 다음과 같은 로그 스트림 이름 형식으로 구성되고 저장됩니다.

```
aws/IVSChatLogs/<version>/room_<resource_id>
```

### Fields
<a name="cloudwatch-logs-fields"></a>


| 필드 | 설명 | 
| --- | --- | 
| `<resource_id>` | 방 ARN의 리소스 ID 부분입니다. | 
| `<version>` | 메시지 콘텐츠 형식의 버전입니다. | 

### 예제
<a name="cloudwatch-logs-example"></a>

```
aws/IVSChatLogs/1.0/room_abc123DEF456
```

## Amazon Kinesis Data Firehose
<a name="chat-logging-kinesis-firehose"></a>

메시지 로그는 Amazon Redshift, Amazon OpenSearch Service, Splunk 및 사용자 지정 HTTP 엔드포인트 또는 지원되는 서드 파티 서비스 제공업체가 소유한 HTTP 엔드포인트와 같은 대상에 실시간 스트리밍 데이터로 전송됩니다. 자세한 내용은 [Amazon Kinesis Data Firehose란 무엇인가요?](https://docs.aws.amazon.com/firehose/latest/dev/what-is-this-service.html?icmpid=docs_console_unmapped)(What Is Amazon Kinesis Data Firehose?)를 참조하세요.

## Constraints
<a name="chat-logging-constraints"></a>
+ 메시지가 저장될 로깅 위치를 소유해야 합니다.
+ 방, 로깅 구성 및 로깅 위치는 동일한 AWS 리전에 있어야 합니다.
+ 채팅 로깅에는 활성 로깅 구성만 사용할 수 있습니다.
+ 어느 채팅룸과도 더 이상 연결되지 않는 로깅 구성만 삭제할 수 있습니다.

사용자가 소유한 위치에 메시지를 로깅하려면 AWS 보안 인증으로 권한을 부여해야 합니다. IVS Chat에 필요한 액세스 권한을 부여하려면 로깅 구성을 생성할 때 리소스 정책(Amazon S3 버킷이나 CloudWatch Logs 로그의 경우) 또는 AWS IAM [서비스 연결 역할](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html)(SLR)(Amazon Kinesis Data Firehose Firehose의 경우)이 자동으로 생성됩니다. 역할이나 정책을 수정하면 채팅 로깅 권한에 영향을 미칠 수 있으므로 주의해야 합니다.**

## Amazon CloudWatch로 오류 모니터링
<a name="chat-logging-monitor-errors"></a>

Amazon CloudWatch를 사용하여 채팅 로깅에서 발생하는 오류를 모니터링할 수 있으며, 특정 오류의 변경 사항을 표시하거나 이에 대응하는 경보나 대시보드를 생성할 수 있습니다.

다음과 같은 여러 유형의 오류가 있습니다. 자세한 내용은 [Amazon IVS Chat 모니터링](chat-health.md)을 참조하세요.