본문 바로가기
[AWS]/AWS SAA EXAMTOPICS

[AWS][SAA][EXAMTOPICS] Question 306

by METAVERSE STORY 2022. 7. 11.
반응형
728x170

A business must consume and manage massive volumes of streaming data generated by its application. The application is deployed on Amazon EC2 instances and communicates with Amazon Kinesis Data Streams, which is setup with default parameters. The application consumes and publishes data to an Amazon S3 bucket every other day for business intelligence (BI) analysis. The business notes that Amazon S3 is not getting all of the data sent to Kinesis Data Streams by the application.

What is the best course of action for a solutions architect to take in order to tackle this issue?

  • A. Update the Kinesis Data Streams default settings by modifying the data retention period.
  • B. Update the application to use the Kinesis Producer Library (KPL) to send the data to Kinesis Data Streams.
  • C. Update the number of Kinesis shards to handle the throughput of the data that is sent to Kinesis Data Streams.
  • D. Turn on S3 Versioning within the S3 bucket to preserve every version of every object that is ingested in the S3 bucket.

 

한글 번역

기업은 애플리케이션에서 생성되는 방대한 양의 스트리밍 데이터를 소비하고 관리해야 합니다. 애플리케이션은 Amazon EC2 인스턴스에 배포되고 기본 파라미터로 설정된 Amazon Kinesis Data Streams와 통신합니다. 애플리케이션은 비즈니스 인텔리전스(BI) 분석을 위해 격일로 Amazon S3 버킷에 데이터를 사용하고 게시합니다. 비즈니스는 Amazon S3가 애플리케이션에서 Kinesis Data Streams로 보낸 모든 데이터를 가져오지 않는다는 점에 주목합니다.

이 문제를 해결하기 위해 솔루션 아키텍트가 취해야 할 가장 좋은 조치는 무엇입니까?

  • A. 데이터 보존 기간을 수정하여 Kinesis Data Streams 기본 설정을 업데이트합니다.
  • B. Kinesis Producer Library(KPL)를 사용하여 Kinesis Data Streams로 데이터를 전송하도록 애플리케이션을 업데이트합니다.
  • C. Kinesis 샤드 수를 업데이트하여 Kinesis Data Streams로 전송되는 데이터의 처리량을 처리합니다.
  • D. S3 버킷 내에서 S3 버전 관리를 켜서 S3 버킷에서 수집되는 모든 객체의 모든 버전을 보존합니다.

 

 

정답

  • A. Update the Kinesis Data Streams default settings by modifying the data retention period.

 

해설

데이터 보존 기간 연장 및 장기 데이터 보존

Q. Kinesis Data Streams에서 지원하는 보존 기간은 얼마입니까?

기본 보존 기간인 24시간에는 실시간 데이터를 따라잡기 위해서는 간헐적인 처리 지연이 필요한 경우가 포함됩니다. 보존 기간이 7일이면 최대 7일 동안 데이터를 다시 처리해서 잠재적 다운스트림 데이터 손실을 해결할 수 있습니다. 7일 이상, 365일 이내의 장기 데이터 보존을 사용하면 알고리즘 백 테스트, 데이터 스토어 백필, 감사 등의 사용 사례에 오래된 데이터를 다시 처리할 수 있습니다.

Q. 기존 Kinesis Data Streams API를 사용하여 7일이 지난 데이터를 읽을 수 있습니까?

예. 동일한 getShardIterator, GetRecords, SubscribeToShard API를 사용하여 7일 이상 보존된 데이터를 읽을 수 있습니다. 소비자는 반복자를 스트림 내의 원하는 위치로 옮기고, (열려 있거나 닫힌) 샤드 맵을 검색하여 기록을 읽을 수 있습니다.

Q: 오래된 데이터를 읽는 데 도움이 되는 새로운 API가 있습니까?

예. ListShards, GetRecords, SubscribeToShard API가 향상되었습니다. ListShards API에서 제공되는 TimeStamp 파라미터의 새로운 필터링 옵션을 사용하여 샤드 맵을 효율적으로 검색하고 오래된 데이터를 읽는 성능을 개선할 수 있습니다. TimeStamp 필터를 사용하는 애플리케이션은 데이터를 다시 처리하려는 시점에 샤드를 검색 및 나열하기 때문에 트림 면에서 시작할 필요가 없습니다. GetRecords 및 SubscribeToShards에는 새로운 필드인 ChildShards가 있어 애플리케이션이 샤드 맵을 다시 탐색할 필요 없이 닫힌 샤드에서 데이터 읽기를 마치면 하위 샤드를 빠르게 검색할 수 있습니다. 샤드를 빠르게 검색하기 때문에 데이터 보존 기간과 관계없이 모든 용량의 스트림에서 애플리케이션의 컴퓨팅 리소스를 효율적으로 사용할 수 있습니다.

Q: 향상된 API 구성 요소는 언제 사용할 수 있습니까? 

데이터 보존 기간을 늘리거나 스트림 용량을 정기적으로 확장하고 싶다면 이러한 향상된 API 구성 요소를 사용하는 것이 좋습니다. 스트림 확장 작업은 기존 샤드를 닫고 새로운 하위 샤드를 엽니다. 모든 열린 샤드 및 닫힌 샤드의 데이터는 보존 기간이 끝날 때까지 보존됩니다. 그러므로 샤드의 총 개수는 보존 기간이 길어지고 확장 작업이 여러 개일 때 비례적으로 증가합니다. 샤드 맵에서 샤드 개수가 증가하기 때문에 ListShards의 TimeStamp 필드, GetRecords의 ChildShards 필드, SubscribeToShard API를 사용하여 데이터 검색 시 샤드를 효율적으로 검색해야 합니다. 이 기능을 사용하려면 표준 소비자의 경우 KCL을 최신 버전인 1.x로, 향상된 팬아웃 소비자의 경우 2.x으로 업그레이드해야 합니다.

Q: Amazon Kinesis Data Streams는 스키마 등록을 지원합니까?

예. Kinesis Data Streams의 클라이언트는 AWS Glue의 서버리스 기능인 AWS Glue Schema Registry를 Kinesis Producer Library(KPL) 및 Kinesis Client Libraries(KCL) 또는 AWS Java SDK의 AWS Glue Schema Registry API를 통해 사용할 수 있습니다. 스키마 레지스트리는 추가 비용 없이 사용할 수 있습니다. 

스키마 레지스트리 사용 설명서를 참고하여 시작하고 자세히 알아보세요.

 

참조 문서

https://aws.amazon.com/ko/kinesis/data-streams/faqs/#:~:text=Amazon%20Kinesis%20stores%20your%20data,CLI%20or%20the%20API%20call.

 

반응형
그리드형

댓글