Amazon Web Services 한국 블로그

Amazon Kinesis Data Streams 온디맨드 – 용량 관리 필요 없는 대규모 데이터 스트리밍 가능

오늘 새로운 용량 모드인 Amazon Kinesis Data Streams 온디맨드를 출시합니다. 이 용량 모드는 스트리밍 워크로드에 대한 용량 프로비저닝 및 관리를 사라지게 합니다.

Kinesis Data Streams는 대규모의 스트리밍 데이터를 실시간으로 처리하기 위한 완전 관리형 서버리스 서비스입니다. Kinesis Data Streams는 어떤 수량의 소스에서도 원하는 양의 데이터를 가져와 필요에 따라 확장 및 축소할 수 있습니다. 2013년 11월에 Kinesis Data Streams을 발표했기 때문에, 새로운 데이터 스트림을 생성하는 일은 쉬웠습니다. 시작하려면 스트림을 프로비저닝해야 하는 샤드의 수만 지정하면 됩니다.

샤드는 Kinesis Data Streams에서 용량을 정의하는 방법입니다. 각 샤드는 1MB/s 및 초당 1,000개의 레코드를 수집하고 최대 2MB/s까지 송신할 수 있습니다. Kinesis Data Streams API를 사용하여 스트림의 샤드를 추가 또는 제거하여, 워크로드의 전체 요구 사항에 따라 스트림 용량을 조정할 수 있습니다. 이를 통해 생산자 및 소비자 애플리케이션에서 제한이 발생하지 않게 할 수 있습니다.

고객이 데이터 스트리밍을 광범위하게 채택함에 따라, 몇 분 안에 수백만 개의 이벤트가 증가할 수 있는 데이터 트래픽의 워크로드가 점점 보편화되고 있습니다. 이러한 불안정한 트래픽 패턴의 경우 고객은 용량을 신중하게 계획하고, 처리량을 모니터링하며, 경우에 따라 Kinesis Data Streams 스트림 용량을 자동으로 변경하는 프로세스를 개발합니다.

Kinesis Data Streams 온디맨드 모드
이것이 바로 오늘 Kinesis Data Streams을 온디맨드 방식으로 발표하는 이유입니다. 이 새로운 용량 모드를 사용하면 스트리밍 데이터의 용량을 프로비저닝하고 관리할 필요가 없습니다. Kinesis Data Streams 온디맨드를 사용하면 다양한 데이터 트래픽에 대응하여 자동으로 용량의 크기를 조정합니다. 스트림에서 쓰고, 읽고 저장된 데이터의 기가바이트당 처리량당 지불 방식으로 고객에게 요금이 부과됩니다.

 

온디맨드 모드의 데이터 스트림은 Kinesis Data Streams가 이미 제공하는 것과 동일한 고내구성, 고가용성, 짧은 대기 시간, 보안, 그리고 심층적인 AWS 통합이라는 특성을 갖습니다. 또한 데이터를 쓰거나 읽는 새로운 API는 없습니다. 기존의 모든 Kinesis Data Streams 통합은 온디맨드 모드에서 작동합니다.

Kinesis Data Streams는 파티션 키를 사용하여 샤드 전반의 데이터에 데이터를 배포합니다. 그렇기 때문에 Kinesis Data Streams 온디맨드를 사용할 때는 프로비저닝된 모드를 사용하는 Kinesis Data Streams에서와 마찬가지로, 각 레코드에 대해 파티션 키를 지정하여 데이터 스트림에 데이터를 써야 합니다. Kinesis Data Streams 온디맨드에서 데이터 스트림은 고르지 않은 데이터 배포 패턴을 처리하도록 자동으로 조정됩니다. 하지만 파티션 키가 샤드의 제한을 초과하지 않도록 주의해야 합니다. 이 경우 쓰기 제한을 수신한 다음 다음 요청을 다시 시도할 수 있습니다.

Kinesis Data Streams 온디맨드를 사용해 새 데이터 스트림을 생성하면, 기본 용량인 4MB/s 및 쓰기용 초당 4,000개의 레코드를 가지고 생성됩니다. Kinesis Data Streams 온디맨드는 쓰기에 대해 최대 200MB/s 및 초당 200,000개의 레코드로 자동 확장할 수 있습니다

Kinesis Data Streams 온디맨드는 지난 30일 동안 관찰된 이전 최대 쓰기 처리량의 두 배까지 수용합니다. 데이터 스트림의 쓰기 처리량이 새로운 최대점에 도달하면 Kinesis Data Streams는 스트림의 용량을 자동으로 확장합니다.

예를 들어 데이터 스트림의 쓰기 처리량이 10MB/s에서 40MB/s 사이일 때, Kinesis Data Streams를 사용하면 최대점의 두 배인 80MB/s로 쉽게 크기를 확장할 수 있습니다. 그리고 나중에 동일한 데이터 스트림이 50MB/s의 새로운 최대 처리량에 도달하면, Kinesis Data Streams는 100MB/s를 수집하기에 충분한 용량이 있는지 확인합니다. 그러나 트래픽이 15분 이내에 이전 최대 처리량의 두 배 이상 증가하면 쓰기 제한이 발생할 수 있습니다.

Kinesis Data Streams를 사용할 시점
온디맨드 모드는 알 수 없거나 가변적인 워크로드를 보유하거나, 또는 단순히 용량 관리를 처리하고 싶지 않은 고객에게 적합합니다. 온디맨드 모드는 파티션 키 배포가 균일한 워크로드에 가장 적합합니다. 예를 들어 사용자는 고객이 주로 밤이나 주말에 플레이하기 때문에 일주일 내내 또는 하루 종일 트래픽이 가변적인 모바일 게임을 실행합니다. 또는 라이브 쇼를 호스팅하는 스트리밍 플랫폼을 실행하며, 게스트에 따라 갑자기 수요가 증가하는 것을 볼 수 있습니다.

또한 온디맨드 모드와 프로비저닝 모드 간 하루 두 번 전환할 수 있습니다. 예를 들어, 트래픽을 예측할 수 있는 전자 상거래 사이트를 운영합니다. 하지만 다음 달부터 전 세계적으로 많은 마케팅 캠페인이 시작될 예정입니다. 이러한 상황이 사이트 트래픽에 어떤 영향을 미칠지 알 수 없습니다. Kinesis Data Streams를 온디맨드 모드로 전환하면, 이제 데이터 스트림에 대한 자동화된 용량 계획 및 관리를 즐길 수 있습니다.

Kinesis Data Streams 온디맨드 시작하기
AWS 콘솔, AWS SDKs, AWS Command Line Interface (CLI), 및 AWS CloudFormation에서 Kinesis Data Streams 온디맨드를 사용하여 신규 데이터 스트림을 생성합니다.

콘솔에서 생성하려면, Kinesis 콘솔 및 [데이터 스트림 생성]을 방문하십시오. 용량 모드 선택 시 [온디맨드]를 선택합니다.

데이터 스트림 생성

페이지 끝에는 신규 데이터 스트림에 대한 모든 설정이 표시됩니다. 이러한 설정은 데이터 스트림이 생성된 후에 변경할 수 있습니다.

데이터 스트림 설정

실제로 어떻게 작동하는지 살펴보겠습니다!
이 데모에서는 새로운 Kinesis Data Streams 기능이 어떻게 작동하는지 보여 드리고자 합니다. 이 상황은 다음 Amazon CloudWatch 그래프를 살펴보면 가장 잘 설명됩니다. 녹색 선은 스트림에 성공적으로 수집된 바이트를 나타내고, 빨간색 선은 제한 현상이 발생한 트래픽의 비율을 나타냅니다.

먼저 5개의 샤드로 프로비저닝된 스트림으로 시작하겠습니다. 처음 3분 동안 우리는 4MB/s의 로드를 전송하고 있습니다. 스트림이 로드를 처리할 수 있음을 알 수 있습니다.

타임스탬프 21:19에서 로드를 12MB/s로 늘립니다. 이제 스트림이 로드를 처리할 수 없으며, 제한이 시작됩니다 (빨간색 선은 제한된 요청의 최대 60%까지 올라가기 시작합니다).

프로비저닝된 스트림의 로드 증가

타임스탬프 21:23에서 스트림 용량을 프로비저닝된 용량에서 온디맨드로 변경합니다. 스트림에 영향을 주지 않고 즉시 적용될 수 있습니다. 하나의 용량 모드에서 다른 용량 모드로 변환할 때, 스트림이 로드를 처리하는 데 매우 짧은 시간이 걸립니다.

몇 분 안에 (타임스탬프 21:24) 스트림이 확장되기 시작하면 제한이 떨어지기 시작합니다. 스트림 용량은 먼저 10개의 샤드로 두 배가 되고 (타임스탬프 21:26), 각 샤드의 로드가 0.5MB/s 미만일 때까지 스트림은 계속 확장됩니다. 이런 식으로 스트림이 갑자기 두 배의 로드를 받으면, 이를 처리할 수 있는 용량이 확보됩니다.

온디맨드 모드로 변경

타임스탬프 21:26에서 스트림의 부하가 18MB/s로 증가합니다. 녹색 선이 35만 개의 레코드로 올라가는 것을 볼 수 있습니다. 제한이 발생하지 않으며, 스트림은 40개의 오픈 샤드로 이 데모를 종료합니다. 즉, 스트림이 갑자기 40MB/s의 로드를 받으면 문제없이 처리할 수 있습니다.

로드 증가

정식 출시!
Amazon Kinesis Data Streams 온디맨드는 모든 상용 리전에서 글로벌하게 사용 가능합니다.

용량 모드에 대해 자세히 알아보려면 Amazon Kinesis Data Streams 개발자 가이드를 참조하세요.

Marcia