

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

# 엘라스틱 채널을 사용하여 Amazon Chime SDK 회의에서 라이브 이벤트 주최
<a name="elastic-channels"></a>

엘라스틱 채널은 최대 1백만 명의 멤버가 참여하는 대규모 채팅 경험을 지원합니다. 일반적인 용도로는 스포츠 또는 정치 행사를 위한 감상 파티가 있습니다. 엘라스틱 채널은 미국 동부(버지니아 북부) 리전에서만 사용할 수 있습니다.

엘라스틱 채널은 공통 구성을 가진 단일 채널과 다양한 수의 하위 채널, 또는 *탄력적인* 채널로 구성됩니다. 구성에는 하위 채널의 멤버에 대한 최소 및 최대 임계값도 포함됩니다.

예를 들어 100개의 하위 채널이 있는 엘라스틱 채널을 만들고 하위 채널에 대해 멤버 500명이라는 낮은 임계값을 설정하고, 멤버 10,000명이라는 높은 임계값을 설정한다고 가정해 보겠습니다. 사용자가 이 예시 채널에 가입하면 시스템에서 멤버 수가 10,000명을 넘을 때까지 사용자를 단일 하위 채널에 자동으로 배정합니다. 이 시점에서 시스템은 새 하위 채널을 만들고 거기에 새 멤버를 추가합니다. 사용자가 나가면 시스템은 하위 채널을 삭제하고 나머지 하위 채널에 멤버를 분배합니다.

시청자를 하위 채널로 나누면 참가자들이 대화를 더 쉽게 따라갈 수 있습니다. 중재자는 일부 하위 채널만 시청하면 되기 때문에 작업량도 줄어듭니다. 또한 중재자는 엘라스틱 채널이 제공하는 기본 제공 도구를 사용할 수 있습니다. 예를 들어 중재자는 채널에서 [사용자를 차단하고](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_CreateChannelBan.html), [중재자를 만들고](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_CreateChannelModerator.html), [채널 흐름](https://docs.aws.amazon.com/chime-sdk/latest/dg/using-channel-flows.html)을 사용하여 채널의 모든 메시지를 자동으로 모더레이션할 수 있습니다.

Amazon Chime SDK 메시징 할당량에 대한 자세한 내용은 Amazon Chime SDK 일반 참조**의 [메시징 할당량](https://docs.aws.amazon.com/general/latest/gr/chime-sdk.html)을 참조하세요.

**Topics**
+ [사전 조건](#elastic-prereqs)
+ [엘라스틱 채널의 개념](#elastic-concepts)
+ [지원되는 추가 기능](#additional-features)
+ [Amazon Chime SDK 회의를 위한 엘라스틱 채널 생성](create-elastic-channel.md)
+ [Amazon Chime SDK 회의를 위한 엘라스틱 채널 멤버 관리](manage-elastic-members.md)
+ [Amazon Chime SDK 회의에서 엘라스틱 채널 메시지 전송](send-messages-elastic.md)
+ [Amazon Chime SDK 회의를 위한 엘라스틱 채널의 WebSocket 시스템 메시지 이해](websocket-messages-elastic.md)
+ [Kinesis 스트림을 사용하여 Amazon Chime SDK 회의에 대한 시스템 메시지 수신](elastic-onboard-streams.md)
+ [데모 앱에서 Amazon Chime SDK 회의를 위한 엘라스틱 채널 테스트](elastic-testing.md)

## 사전 조건
<a name="elastic-prereqs"></a>

엘라스틱 채널을 사용하려면 다음 사항이 필요합니다.
+ Amazon Chime SDK 메시징 기능(예: 채널 관리, 메시지 전송 및 수신)에 대한 지식이 있어야 합니다.
+ Amazon Chime SDK 메시징 API를 호출할 수 있어야 합니다.

## 엘라스틱 채널의 개념
<a name="elastic-concepts"></a>

엘라스틱 채널을 효과적으로 사용하려면 다음과 같은 개념을 이해해야 합니다.

**하위 채널**  
엘라스틱 채널은 멤버를 하위 채널이라는 논리적 컨테이너로 나눕니다. 엘라스틱 채널에 `AppInstanceUser`를 추가하면 사용자는 하위 채널의 구성원이 됩니다. 해당 사용자는 메시지를 보내고 받을 수 있지만 해당 하위 채널의 다른 멤버와만 메시지를 주고 받을 수 있습니다. 시스템에서는 한 하위 채널의 메시지가 다른 하위 채널에 표시되는 것을 허용하지 않습니다.

**규모 조정**  
사용자 참여를 지원하려면 모든 하위 채널이 최소 멤버십 요구 사항을 충족해야 합니다. 엘라스틱 채널을 만들 때 이 값을 제공하면 됩니다. 사용자가 이벤트에 참여하거나 이벤트에서 나가면 시스템에서 구성원을 다른 하위 채널로 이동시켜 전체 채널을 ‘탄력적으로’ 운영합니다. 하위 채널은 다음과 같은 조정 작업을 실행합니다.  
+ **SCALE\$1OUT** - 새로운 엘라스틱 채널 멤버십 요청이 들어오고 모든 하위 채널이 가득 차면 시스템은 새 하위 채널을 만든 다음 기존 하위 채널의 멤버십을 새 하위 채널로 이전하여 스케일 아웃합니다.
+ **SCALE\$1IN** - 하위 채널 멤버십 수가 최소 요구 사항 이하로 떨어지고 다른 하위 채널에 첫 번째 하위 채널의 모든 구성원을 수용할 수 있는 용량이 있는 경우 `SCALE_IN` 이벤트가 해당 멤버십을 이전한 다음 하위 채널과 모든 메시지를 삭제합니다.
삭제된 채널의 메시지에 액세스해야 하는 경우 먼저 메시지 스트리밍을 켜야 합니다. 자세한 정보는 [Amazon Chime SDK 메시징에서 메시징 데이터 스트리밍](streaming-export.md) 섹션을 참조하세요.

**멤버 이전**  
멤버십 밸런싱을 통해 `AppInstanceUser`를 한 하위 채널에서 다른 하위 채널로 이동할 때 발생합니다. 이전 후에도 앱 인스턴스 사용자는 여전히 탄력적 채널에 속합니다. 이전 후에도 `AppInstanceUser`는 여전히 엘라스틱 채널에 속합니다. 하지만 새 하위 채널에는 다른 멤버십과 메시지가 포함되어 있으므로 이전 후 `AppInstanceUser`가 보낸 메시지는 다른 멤버에게 전달됩니다. 멤버십 밸런싱은 중재자 멤버십에 영향을 주지 않습니다.

**참고**  
 엘라스틱 채널은 숨겨진 멤버십, 멤버십 기본 설정, 읽기 메시지 타임스탬프를 지원하지 않습니다.

## 지원되는 추가 기능
<a name="additional-features"></a>

엘라스틱 채널은 다음과 같은 메시징 기능도 지원합니다.
+ [미리 가져오기](websockets.md#prefetch)
+ [채널 흐름](using-channel-flows.md)

# Amazon Chime SDK 회의를 위한 엘라스틱 채널 생성
<a name="create-elastic-channel"></a>

[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_CreateChannel.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_CreateChannel.html) API의 `ElasticChannelConfiguration` 필드를 사용하여 엘라스틱 채널을 생성합니다. 엘라스틱 채널을 만들고 나면 채널 멤버십이 생성됩니다.

**참고**  
비 엘라스틱 채널의 경우 채널을 만든 `AppInstanceUser`가 자동으로 해당 채널에 멤버 겸 중재자로 추가됩니다. 엘라스틱 채널의 경우 채널 생성자는 중재자로만 추가됩니다.
한 번 설정된 `ElasticChannelConfiguration`은 업데이트할 수 없습니다.
채널을 엘라스틱에서 비 엘라스틱으로 또는 그 반대로 업데이트할 수 없습니다.
[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_CreateChannel.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_CreateChannel.html) API 요청에는 멤버 ARN 목록을 포함할 수 없습니다. 하지만 중재자 ARN 목록은 포함할 수 있습니다.
`UNRESTRICTED` 유형 엘라스틱 채널은 생성할 수 없습니다.

# Amazon Chime SDK 회의를 위한 엘라스틱 채널 멤버 관리
<a name="manage-elastic-members"></a>

탄력적 채널의 멤버를 관리하려면 [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_CreateChannelMembership.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_CreateChannelMembership.html), [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_CreateChannelModerator.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_CreateChannelModerator.html), [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_CreateChannelBan.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_CreateChannelBan.html) API를 사용합니다. 다음 정보에서는 사용 방법을 설명합니다.

**채널 멤버십**  
`CreateChannelMembership` API는 하위 채널 수준에서 멤버십을 생성합니다. 하위 채널에는 중재자와 일반 멤버가 포함될 수 있습니다.  
+ **중재자** - 여러 하위 채널에 중재자를 추가할 수 있습니다. 이렇게 하면 중재자가 자신이 속한 각 하위 채널에서 메시지를 보낼 수 있습니다. 하위 채널에 중재자를 추가할 때는 `SubChannelId`를 제공해야 합니다.

  새 하위 채널에 중재자를 자동으로 할당하려는 경우 [메시지 스트리밍을 활성화하고](streaming-export.md) 하위 채널 생성 이벤트를 수신한 다음 해당 이벤트에 대한 응답으로 중재자 멤버십을 만들 수 있습니다.

  마지막으로 특정 하위 채널 또는 모든 하위 채널에서 중재자를 삭제할 수 있습니다. 두 경우 모두 [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_DeleteChannelMembership.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_DeleteChannelMembership.html) API를 사용합니다. 특정 하위 채널에서 중재자를 삭제하려면 `SubChannelId`를 제공합니다. 하위 채널의 ID를 제공하지 않으면 시스템에서 모든 하위 채널에서 해당 중재자를 삭제합니다. 마지막으로 [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_ListSubChannels](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_ListSubChannels) API를 사용하여 하위 채널과 각 하위 채널의 멤버 수를 나열할 수 있습니다.
+ **일반 멤버** - 채널 멤버십의 대다수를 구성합니다. 하나의 하위 채널에만 일반 멤버를 추가할 수 있습니다. 또한 멤버십이 생성되는 하위 채널은 시스템에서 제어하므로 채널 멤버십을 만들거나 삭제할 때 `SubChannelId`를 전달할 수 없습니다.

**채널 중재자**  
`CreateChannelModerator` API는 엘라스틱 채널 수준에서 중재자를 생성합니다. 중재자는 모든 하위 채널의 모든 메시지를 볼 수 있습니다. 일반 멤버를 채널 중재자로 승격시키면 시스템에서 해당 멤버의 기존 채널 멤버십이 모두 제거됩니다. 중재자를 강등시킬 때도 마찬가지입니다.

**채널 차단**  
`CreateChannelBan` API는 엘라스틱 채널 수준에서 차단을 생성합니다. 차단된 `AppInstanceUser`는 어떤 하위 채널에도 속할 수 없습니다. 멤버를 차단하면 시스템에서 해당 멤버의 모든 채널 멤버십을 제거합니다.

# Amazon Chime SDK 회의에서 엘라스틱 채널 메시지 전송
<a name="send-messages-elastic"></a>

[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_SendChannelMessage.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_SendChannelMessage.html) API는 하위 채널 수준에서 메시지를 생성합니다. 메시지를 보내려면 `subChannelId`가 있어야 합니다. [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_UpdateChannelMessage.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_UpdateChannelMessage.html) 및 [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_RedactChannelMessage.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_RedactChannelMessage.html) API를 사용하여 메시지를 수정하고 삭제할 수도 있지만, 모든 경우에 `subChannelId`가 있어야 합니다.

**참고**  
메시지 발신자는 자신이 메시지를 보낸 하위 채널에 속한 경우에만 메시지를 수정하거나 삭제할 수 있습니다. 멤버십 밸런싱으로 구성원을 다른 하위 채널로 이전하는 경우 해당 구성원은 새 하위 채널에서 보내는 메시지만 수정하거나 수정할 수 있습니다.

# Amazon Chime SDK 회의를 위한 엘라스틱 채널의 WebSocket 시스템 메시지 이해
<a name="websocket-messages-elastic"></a>

Amazon Chime SDK는 채널에서 발생하는 이벤트에 대해 연결된 모든 클라이언트에 시스템 메시지를 보냅니다. 다음 목록에서는 엘라스틱 채널의 시스템 메시지에 대해 설명합니다.

**메시지 이벤트**  
엘라스틱 채널의 이벤트 페이로드에는 `subChannelId` 필드가 포함됩니다. 비 엘라스틱 채널의 페이로드는 동일하게 유지됩니다.

**멤버십 이벤트**  
이제 `CREATE_CHANNEL_MEMBERSHIP` 및 `DELETE_CHANNEL_MEMBERSHIP` 이벤트의 페이로드에 `subChannelId` 필드가 있습니다.  
엘라스틱 채널은 `BATCH_CREATE_CHANNEL_MEMBERHSIP` 이벤트를 지원하지 않습니다. [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_BatchCreateChannelMembership.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_BatchCreateChannelMembership.html) API를 직접 호출하면 시스템에서 개별 `CREATE_CHANNEL_MEMBERSHIP` 이벤트를 전송합니다.  
이제 `UPDATE_CHANNEL_MEMBERSHIP` 이벤트 유형을 사용하여 멤버십 정보 변경을 알릴 수 있습니다. 예를 들어, 한 하위 채널에서 다른 하위 채널로 멤버를 이전하는 동안 시스템은 페이로드에 새 `SubChannelId`가 포함된 `UPDATE_CHANNEL_MEMBERSHIP` 이벤트를 전송하여 멤버가 이전되었음을 알립니다.  
시스템은 전송된 멤버에게만 `UPDATE_CHANNEL_MEMBERSHIP` 이벤트를 전송하고 하위 채널의 다른 멤버에게는 전송하지 않습니다. 따라서 채널 멤버십 명단을 채울 때는 WebSockets 대신 [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_ListChannelMemberships.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_ListChannelMemberships.html) API를 사용하는 것이 좋습니다. 자세한 정보는 [WebSockets를 사용하여 Amazon Chime SDK 메시징에서 메시지 수신](websockets.md) 섹션을 참조하세요.

# Kinesis 스트림을 사용하여 Amazon Chime SDK 회의에 대한 시스템 메시지 수신
<a name="elastic-onboard-streams"></a>

스트림 형태로 데이터를 수신하도록 `AppInstance`를 구성할 수 있습니다. 예를 들어 스트림에는 메시지, 하위 채널 이벤트, 채널 이벤트가 포함될 수 있습니다.

이러한 스트림의 일부로 `CREATE_SUB_CHANNEL` 및 `DELETE_SUB_CHANNEL` 이벤트를 지원합니다. 이 이벤트들은 멤버십 밸런싱의 일환으로 하위 채널이 생성되거나 삭제된 시점을 나타냅니다. 데이터 스트림 수신에 대한 자세한 내용은 [Amazon Chime SDK 메시징에서 메시징 데이터 스트리밍](streaming-export.md) 섹션을 참조하세요.

# 데모 앱에서 Amazon Chime SDK 회의를 위한 엘라스틱 채널 테스트
<a name="elastic-testing"></a>

GitHub의 [https://github.com/aws-samples/amazon-chime-sdk/tree/main/apps/chat](https://github.com/aws-samples/amazon-chime-sdk/tree/main/apps/chat)에서 모든 Amazon Chime SDK 메시징 기능을 테스트할 수 있습니다.