Q77. AWS 실시간 데이터 수집 아키텍처 - API Gateway와 Kinesis의 완벽한 조화

AWS 자격증을 준비하는 여러분, 안녕하세요. 오늘은 실시간 데이터 수집 아키텍처에 대한 중요한 문제를 살펴보겠습니다. 이 문제는 API Gateway, Kinesis Data Streams, Kinesis Data Firehose, Lambda, 그리고 S3와 같은 여러 AWS 서비스들이 어떻게 함께 작동하여 효율적인 실시간 데이터 처리 솔루션을 구축하는지 이해하는 데 도움이 될 것입니다.

문제 상황

Q1:
회사는 애플리케이션에 대한 실시간 데이터 수집 아키텍처를 구성해야 합니다. 회사에는 데이터가 스트리밍될 때 데이터를 변환하는 프로세스인 API와 데이터를 위한 스토리지 솔루션이 필요합니다.
최소한의 운영 오버헤드로 이러한 요구 사항을 충족하는 솔루션은 무엇입니까?

<small>A company needs to set up a real-time data collection architecture for its application. The company requires an API and a storage solution for the data, with a process to transform the data as it is streamed.
What solution will meet these requirements with minimal operational overhead?</small>

선택지

A. Amazon EC2 인스턴스를 배포하여 Amazon Kinesis 데이터 스트림으로 데이터를 전송하는 API를 호스팅합니다. Kinesis 데이터 스트림을 데이터 원본으로 사용하는 Amazon Kinesis Data Firehose 전송 스트림을 생성합니다. AWS Lambda 함수를 사용하여 데이터를 변환합니다. Kinesis Data Firehose 전송 스트림을 사용하여 데이터를 Amazon S3로 보냅니다.

<small>Deploy Amazon EC2 instances to host an API that sends data to an Amazon Kinesis data stream. Create an Amazon Kinesis Data Firehose delivery stream that uses the Kinesis data stream as a data source. Use an AWS Lambda function to transform the data. Use the Kinesis Data Firehose delivery stream to send the data to Amazon S3.</small>

B. Amazon EC2 인스턴스를 배포하여 AWS Glue에 데이터를 전송하는 API를 호스팅합니다. EC2 인스턴스에서 소스/대상 확인을 중지합니다. AWS Glue를 사용하여 데이터를 변환하고 데이터를 Amazon S3로 보냅니다.

<small>Deploy Amazon EC2 instances to host an API that sends data to AWS Glue. Stop source/destination checks on the EC2 instances. Use AWS Glue to transform the data and send the data to Amazon S3.</small>

C. Amazon Kinesis 데이터 스트림으로 데이터를 보내도록 Amazon API Gateway API를 구성합니다. Kinesis 데이터 스트림을 데이터 원본으로 사용하는 Amazon Kinesis Data Firehose 전송 스트림을 생성합니다. AWS Lambda 함수를 사용하여 데이터를 변환합니다. Kinesis Data Firehose 전송 스트림을 사용하여 데이터를 Amazon S3로 보냅니다.

<small>Configure an Amazon API Gateway API to send data to an Amazon Kinesis data stream. Create an Amazon Kinesis Data Firehose delivery stream that uses the Kinesis data stream as a data source. Use an AWS Lambda function to transform the data. Use the Kinesis Data Firehose delivery stream to send the data to Amazon S3.</small>

D. 데이터를 AWS Glue로 보내도록 Amazon API Gateway API를 구성합니다. AWS Lambda 함수를 사용하여 데이터를 변환합니다. AWS Glue를 사용하여 데이터를 Amazon S3로 보냅니다.

<small>Configure an Amazon API Gateway API to send data to AWS Glue. Use an AWS Lambda function to transform the data. Use AWS Glue to send the data to Amazon S3.</small>

정답 및 해설

정답은 C입니다.

<small>The correct answer is C.</small>

이 솔루션은 실시간 데이터 수집, 변환, 저장에 대한 요구사항을 최소한의 운영 오버헤드로 충족시킵니다:

  1. API Gateway는 완전 관리형 서비스로, API를 쉽게 생성하고 관리할 수 있습니다.
  2. Kinesis Data Streams는 실시간 데이터 수집에 적합한 서비스입니다.
  3. Kinesis Data Firehose는 스트리밍 데이터를 S3와 같은 목적지로 쉽게 전달할 수 있게 해줍니다.
  4. Lambda 함수를 사용하여 데이터를 변환함으로써 서버리스 아키텍처를 구현할 수 있습니다.
  5. S3는 변환된 데이터를 저장하기 위한 확장 가능하고 내구성 있는 스토리지 솔루션을 제공합니다.

이 조합은 모두 완전 관리형 서비스들로 구성되어 있어, 운영 오버헤드를 최소화하면서 요구사항을 충족시킬 수 있습니다.

<small>This solution meets the requirements for real-time data collection, transformation, and storage with minimal operational overhead:

  1. API Gateway is a fully managed service that makes it easy to create and manage APIs.
  2. Kinesis Data Streams is suitable for real-time data ingestion.
  3. Kinesis Data Firehose allows easy delivery of streaming data to destinations like S3.
  4. Using Lambda functions for data transformation enables a serverless architecture.
  5. S3 provides a scalable and durable storage solution for the transformed data.

This combination consists of all fully managed services, allowing the requirements to be met while minimizing operational overhead.</small>

오답 설명

A. EC2 인스턴스를 사용하여 API를 호스팅하는 것은 관리 오버헤드가 더 높습니다. API Gateway를 사용하는 것이 더 적합합니다.

<small>A. Using EC2 instances to host the API introduces more management overhead. Using API Gateway is more suitable.</small>

B. AWS Glue는 주로 ETL(추출, 변환, 로드) 작업에 사용되며, 실시간 스트리밍 데이터 처리에는 적합하지 않습니다. 또한 EC2 인스턴스 사용은 관리 오버헤드를 증가시킵니다.

<small>B. AWS Glue is primarily used for ETL (Extract, Transform, Load) jobs and is not suitable for real-time streaming data processing. Also, using EC2 instances increases management overhead.</small>

D. AWS Glue를 실시간 데이터 스트리밍에 사용하는 것은 적절하지 않습니다. Kinesis 서비스가 이 용도에 더 적합합니다.

<small>D. Using AWS Glue for real-time data streaming is not appropriate. Kinesis services are more suitable for this purpose.</small>

결론

이 문제는 AWS의 다양한 데이터 처리 서비스들의 특성과 용도를 이해하는 것이 중요함을 보여줍니다. 실시간 데이터 처리에는 Kinesis 서비스가 적합하며, API Gateway, Lambda, S3와 같은 관리형 서비스들과 결합하여 효율적이고 확장 가능한 아키텍처를 구성할 수 있습니다. 이러한 서비스들의 특성과 사용 사례를 잘 이해하는 것이 AWS 솔루션 아키텍트로서 중요한 역량입니다.

<small>This question highlights the importance of understanding the characteristics and purposes of various AWS data processing services. For real-time data processing, Kinesis services are suitable, and they can be combined with managed services like API Gateway, Lambda, and S3 to create an efficient and scalable architecture. Understanding the characteristics and use cases of these services is crucial for an AWS Solutions Architect.</small>

원본 문제 링크

댓글

이 블로그의 인기 게시물

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

Python 웹 크롤링 - Scrapy 활용 파워볼 번호 수집(파일)