Q33. AWS Kinesis Data Streams를 활용한 실시간 금융 거래 데이터 처리

AWS 자격증을 준비하는 여러분, 안녕하세요. 오늘은 대규모 온라인 마켓플레이스에서 발생하는 금융 거래 데이터를 실시간으로 처리하고 공유하는 방법에 대해 알아보겠습니다. 이 문제를 통해 AWS의 데이터 스트리밍 서비스와 실시간 데이터 처리 아키텍처에 대해 학습할 수 있습니다.

문제 상황

Q1:
회사는 AWS에서 온라인 마켓플레이스 웹 애플리케이션을 실행합니다. 이 애플리케이션은 피크 시간에 수십만 명의 사용자에게 서비스를 제공합니다. 이 회사는 수백만 건의 금융 거래 세부 정보를 다른 여러 내부 애플리케이션과 공유할 수 있는 확장 가능한 거의 실시간 솔루션이 필요합니다. 또한 지연 시간이 짧은 검색을 위해 문서 데이터베이스에 저장하기 전에 민감한 데이터를 제거하기 위해 트랜잭션을 처리해야 합니다.

이러한 요구 사항을 충족하기 위해 솔루션 설계자는 무엇을 권장해야 합니까?

<small>A company runs an online marketplace web application on AWS. The application serves hundreds of thousands of users during peak hours. The company needs a scalable near-real-time solution to share millions of financial transaction details with several other internal applications. The company also needs to process the transactions to remove sensitive data before storing them in a document database for low-latency retrieval.
What should a solutions architect recommend to meet these requirements?</small>

선택지

A. 트랜잭션 데이터를 Amazon DynamoDB에 저장합니다. 쓰기 시 모든 트랜잭션에서 민감한 데이터를 제거하도록 DynamoDB에서 규칙을 설정합니다. DynamoDB 스트림을 사용하여 다른 애플리케이션과 트랜잭션 데이터를 공유합니다.
<small>Store the transaction data in Amazon DynamoDB. Set up a rule in DynamoDB to remove sensitive data from all transactions upon write. Use DynamoDB Streams to share the transaction data with other applications.</small>

B. 트랜잭션 데이터를 Amazon Kinesis Data Firehose로 스트리밍하여 Amazon DynamoDB 및 Amazon S3에 데이터를 저장합니다. Kinesis Data Firehose와 AWS Lambda 통합을 사용하여 민감한 데이터를 제거하십시오. 다른 애플리케이션은 Amazon S3에 저장된 데이터를 사용할 수 있습니다.
<small>Stream the transaction data to Amazon Kinesis Data Firehose to store the data in Amazon DynamoDB and Amazon S3. Use Kinesis Data Firehose integration with AWS Lambda to remove the sensitive data. Other applications can use the data stored in Amazon S3.</small>

C. 트랜잭션 데이터를 Amazon Kinesis Data Streams로 스트리밍합니다. AWS Lambda 통합을 사용하여 모든 트랜잭션에서 민감한 데이터를 제거한 다음 Amazon DynamoDB에 트랜잭션 데이터를 저장합니다. 다른 애플리케이션은 Kinesis 데이터 스트림의 트랜잭션 데이터를 사용할 수 있습니다.
<small>Stream the transaction data to Amazon Kinesis Data Streams. Use AWS Lambda integration to remove sensitive data from all transactions and then store the transaction data in Amazon DynamoDB. Other applications can use the transaction data from the Kinesis data stream.</small>

D. 일괄 처리된 트랜잭션 데이터를 Amazon S3에 파일로 저장합니다. Amazon S3에서 파일을 업데이트하기 전에 AWS Lambda를 사용하여 모든 파일을 처리하고 민감한 데이터를 제거하십시오. 그러면 Lambda 함수가 Amazon DynamoDB에 데이터를 저장합니다. 다른 애플리케이션은 Amazon S3에 저장된 트랜잭션 파일을 사용할 수 있습니다.
<small>Store batched transaction data as files in Amazon S3. Use AWS Lambda to process all files and remove sensitive data before updating the files in Amazon S3. The Lambda function then stores the data in Amazon DynamoDB. Other applications can use the transaction files stored in Amazon S3.</small>

정답 및 해설

정답은 C입니다.

Amazon Kinesis Data Streams는 이 시나리오에 가장 적합한 솔루션입니다. 다음과 같은 이유로 이 옵션이 최선의 선택입니다:

  1. 실시간 데이터 처리: Kinesis Data Streams는 실시간으로 대량의 데이터를 수집하고 처리할 수 있어, 피크 시간에 수십만 명의 사용자가 생성하는 트랜잭션을 처리하기에 적합합니다.

  2. 확장성: Kinesis Data Streams는 초당 기가바이트의 데이터를 처리할 수 있어 대규모 트랜잭션 처리에 적합합니다.

  3. 데이터 공유: 다른 내부 애플리케이션들이 Kinesis 데이터 스트림에서 직접 데이터를 소비할 수 있어, 실시간 데이터 공유가 가능합니다.

  4. 데이터 처리: AWS Lambda와의 통합을 통해 스트림의 데이터를 실시간으로 처리하고 민감한 정보를 제거할 수 있습니다.

  5. 저지연 저장: 처리된 데이터는 DynamoDB에 저장되어 빠른 검색이 가능합니다.

이 솔루션은 실시간 데이터 처리, 확장성, 데이터 공유, 민감한 정보 제거, 그리고 저지연 검색이라는 모든 요구사항을 충족시킵니다.

오답 설명

A. DynamoDB: 실시간 스트리밍 요구사항을 충족시키기 어렵고, 대량의 동시 쓰기 작업에 비용이 많이 들 수 있습니다.

B. Kinesis Data Firehose: 실시간 처리보다는 데이터 전송에 특화되어 있어, 다른 애플리케이션과의 실시간 데이터 공유가 어렵습니다.

D. S3와 배치 처리: 실시간 처리 요구사항을 충족시키지 못하며, 지연 시간이 길어질 수 있습니다.

결론

이 문제는 AWS의 실시간 데이터 처리 서비스에 대한 이해를 테스트합니다. Kinesis Data Streams는 대규모 실시간 데이터 처리와 여러 애플리케이션 간의 데이터 공유에 적합한 서비스입니다. 또한 Lambda와의 통합을 통해 데이터 처리의 유연성을 제공하며, DynamoDB와 함께 사용하여 처리된 데이터의 빠른 검색을 가능하게 합니다. 이러한 서비스들의 특성과 사용 사례를 잘 이해하는 것이 AWS 솔루션 아키텍트로서 중요합니다.

원본 문제 링크

댓글

이 블로그의 인기 게시물

Windows Git 설치 및 GitHub 활용 방법

Anaconda-Python 환경 VSCode에서 사용하기