단계 7: 마무리 - Amazon Kinesis Data Streams

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

단계 7: 마무리

Kinesis 데이터 스트림 사용 요금을 결제하고 있으므로 작업이 완료되면 이 스트림과 해당 Amazon DynamoDB 테이블을 삭제해야 합니다. 레코드를 전송하거나 가져오지 않는 경우에도 활성 스트림에 대해 일반 요금이 부과됩니다. 이는 활성 스트림이 레코드를 가져오라는 요청과 들어오는 레코드를 지속적으로 "수신"하여 리소스를 사용하고 있기 때문입니다.

스트림과 테이블을 삭제하려면
  1. 계속 실행 중인 생산자와 소비자를 종료합니다.

  2. https://console.aws.amazon.com/kinesis에서 Kinesis 콘솔을 엽니다.

  3. 이 애플리케이션에 대해 생성한 스트림을 선택합니다(StockTradeStream).

  4. Delete Stream(스트림 삭제)을 선택합니다.

  5. https://console.aws.amazon.com/dynamodb/에서 DynamoDB 콘솔을 엽니다.

  6. StockTradesProcessor 테이블을 삭제합니다.

요약

대량의 데이터를 거의 실시간으로 처리하는 데에는 매직 코드를 작성하거나 거대한 인프라를 개발할 필요가 없습니다. 간단히 로직을 작성하여 소량의 데이터를 처리할 수 있지만(예: processRecord(Record) 작성), Kinesis Data Streams를 사용하여 확장할 수 있으므로 대량의 스트리밍 데이터에도 효과적입니다. Kinesis Data Streams에서 자동으로 처리되므로 처리를 확장하는 방법에 대해 걱정할 필요가 없습니다. 사용자는 스트리밍 레코드를 Kinesis Data Streams에 전송하고 수신된 각 새 레코드를 처리하는 로직을 작성하면 됩니다.

이 애플리케이션에 대한 몇 가지 잠재적 개선 사항이 있습니다.

모든 샤드에 대한 집계

현재는 단일 샤드에서 단일 작업자가 수신한 데이터 레코드의 집계로 인해 생성된 통계를 가져옵니다. (단일 애플리케이션에서 동시에 둘 이상의 작업자가 하나의 샤드를 처리할 수 없음) 물론, 샤드를 확장하여 샤드가 두 개 이상인 경우 모든 샤드에 대해 집계할 수 있습니다. 각 작업자의 출력이 단일 샤드가 있는 다른 스트림으로 공급되어 첫 단계의 출력을 집계하는 작업자가 처리하는 파이프라인 아키텍처를 구축하여 이를 수행할 수 있습니다. 첫 단계의 데이터가 제한(샤드마다 분당 샘플 하나)되므로 샤드 하나로 쉽게 처리할 수 있습니다.

처리 확장

스트림이 여러 샤드가 있도록 확장되면(여러 생산자가 데이터를 전송하기 때문) 더 많은 작업자를 추가하는 방식으로 처리가 확장됩니다. Amazon EC2 인스턴스에서 워커를 실행하고 오토 스케일링을 사용할 수 있습니다.

Amazon S3/DynamoDB/Amazon Redshift/Storm에 대한 커넥터 사용

스트림이 지속적으로 처리됨에 따라 해당 출력이 다른 대상으로 전송될 수 있습니다. AWS는 Kinesis Data Streams를 다른 AWS 서비스 및 타사 도구와 통합하기 위한 커넥터를 제공합니다.