

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

# Amazon Cognito Sync 스트림 구현
<a name="cognito-streams"></a>

****  
Amazon Cognito Sync를 처음 사용하는 경우 [AWS AppSync](https://aws.amazon.com/appsync/)를 사용하세요. Amazon Cognito Sync와 마찬가지로 AWS AppSync 는 디바이스 간에 애플리케이션 데이터를 동기화하기 위한 서비스입니다.  
앱 기본 설정이나 게임 상태 같은 사용자 데이터를 동기화할 수 있습니다. 또한 이러한 기능을 더욱 확장해, 복수의 사용자가 공유 데이터를 실시간으로 동기화하고 협업할 수 있게 합니다.

Amazon Cognito 스트림은 개발자에게 Amazon Cognito에 저장된 데이터에 대한 제어와 통찰력을 제공합니다. 개발자는 이제 데이터가 업데이트 및 동기화될 때 이벤트를 수신하도록 Kinesis 스트림을 구성할 수 있습니다. Amazon Cognito는 각 데이터 집합 변경 사항을 사용자가 소유하는 Kinesis 스트림으로 실시간으로 푸시합니다.

Amazon Cognito 스트림을 사용하여 모든 동기화 데이터를 Kinesis로 이동할 수 있습니다. 그러면 추가 분석을 위한 Amazon Redshift와 같이 데이터 웨어하우스 도구로 스트리밍될 수 있습니다. Kinesis에 대한 자세한 내용은 [Amazon Kinesis 사용 시작하기](https://docs.aws.amazon.com/kinesis/latest/dev/getting-started.html)를 참조하세요.

**스트림 구성**

Amazon Cognito 스트림은 Amazon Cognito 콘솔에서 설정할 수 있습니다. Amazon Cognito 콘솔에서 Amazon Cognito 스트림을 사용하려면 게시할 Kinesis 스트림과 선택한 스트림에 이벤트를 게시할 Amazon Cognito 권한을 부여하는 IAM 역할을 선택해야 합니다.

[콘솔 홈 페이지](https://console.aws.amazon.com/cognito/home)에서 다음을 수행합니다.

1. Amazon Cognito 스트림을 설정할 자격 증명 풀 이름을 클릭합니다. 자격 증명 풀에 대한 **대시보드** 페이지가 표시됩니다.

1. **대시보드(Dashboard)** 페이지의 우측 상단 모서리에서 **자격 증명 풀 관리(Manage Identity Pools)**를 클릭합니다. 연동 자격 증명 관리(Manage Federated Identities) 페이지가 나타납니다.

1. 아래로 스크롤하고 **Cognito 스트림**을 클릭하여 확장합니다.

1. **스트림 이름** 드롭다운 메뉴에서 기존 Kinesis 스트림의 이름을 선택합니다. 또는 **스트림 생성**을 클릭하여 스트림 하나를 생성하고 스트림 이름과 샤드 수를 입력합니다. 샤드에 대한 자세한 내용과 스트림에 필요한 샤드의 수 예상에 대한 도움말은 [Kinesis 개발자 가이드](https://docs.aws.amazon.com/kinesis/latest/dev/amazon-kinesis-streams.html)를 참조하세요.

1. [**게시 역할(Publish role)**] 드롭다운 메뉴에서 스트림을 게시할 Amazon Cognito 권한을 부여하는 IAM 역할을 선택합니다. [AWS IAM 콘솔](https://console.aws.amazon.com/iam/home)에서 [**역할 생성(Create role)**]을 클릭하여 자격 증명 풀과 연결된 역할을 생성하거나 수정합니다.

1. **스트림 상태** 드롭다운 메뉴에서 **활성**을 선택하여 스트림 업데이트를 활성화합니다. **변경 사항 저장**을 클릭합니다.

Amazon Cognito 스트림을 성공적으로 구성한 후 이 자격 증명 풀의 데이터 세트에 대한 모든 후속 업데이트가 스트림으로 전송됩니다.

**스트림 콘텐츠**

스트림으로 전송된 각 레코드는 단일 동기화를 나타냅니다. 다음은 스트림으로 전송된 레코드의 예제입니다.

```
{
    "identityPoolId": "Pool Id",
    "identityId": "Identity Id",
    "dataSetName": "Dataset Name",
    "operation": "(replace|remove)",
    "kinesisSyncRecords": [
        {
            "key": "Key",
            "value": "Value",
            "syncCount": 1,
            "lastModifiedDate": 1424801824343,
            "deviceLastModifiedDate": 1424801824343,
            "op": "(replace|remove)"
        },
        ...
    ],
    "lastModifiedDate": 1424801824343,
    "kinesisSyncRecordsURL": "S3Url",
    "payloadType": "(S3Url|Inline)",
    "syncCount": 1
}
```

Kinesis 최대 페이로드 크기인 1MB보다 큰 업데이트의 경우 Amazon Cognito는 업데이트의 전체 콘텐츠가 포함된 미리 서명된 Amazon S3 URL을 포함합니다.

Amazon Cognito 스트림을 구성한 후 Kinesis 스트림을 삭제하거나 Amazon Cognito Sync가 더 이상 역할을 맡을 수 없도록 역할 신뢰 권한을 변경하는 경우 Amazon Cognito 스트림을 해제합니다. Kinesis 스트림을 다시 생성하거나 역할을 수정한 다음 스트림을 다시 설정해야 합니다.

**대량 게시**

Amazon Cognito 스트림을 구성한 경우 자격 증명 풀의 기존 데이터에 대해 대량 게시 작업을 실행할 수 있습니다. 대량 게시 작업을 시작한 후 Amazon Cognito는 콘솔을 통하거나 API를 통해 직접 업데이트를 수신하는 동일한 스트림에 이 데이터의 게시를 시작합니다.

Amazon Cognito는 대량 게시 작업을 사용할 때 스트림에 전송된 데이터의 고유성을 보장하지 않습니다. 업데이트 및 대량 게시의 일부로 동일한 업데이트를 받을 수 있습니다. 스트림에서 레코드를 처리할 때 이 점을 유의하시기 바랍니다.

모든 스트림을 대량으로 게시하려면 스트림 구성의 1-6단계를 따른 다음 대량 게시 시작(Start bulk publish)을 클릭합니다. 대량 게시 작업은 지정된 시간에 한 번으로 제한되며 대량 게시 요청은 24시간마다 한 번으로 제한됩니다.