하위 문제 풀이는 개인적 의견일 수 있습니다. AWS 공식 문서를 참조하는 것을 추천 드립니다.
[영문]
A company has an application that ingests incoming messages. Dozens of other applications and microservices then quickly consume these messages. The number of messages varies drastically and sometimes increases suddenly to 100,000 each second. The company wants to decouple the solution and increase scalability.
Which solution meets these requirements?
- A. Persist the messages to Amazon Kinesis Data Analytics. Configure the consumer applications to read and process the messages.
- B. Deploy the ingestion application on Amazon EC2 instances in an Auto Scaling group to scale the number of EC2 instances based on CPU metrics.
- C. Write the messages to Amazon Kinesis Data Streams with a single shard. Use an AWS Lambda function to preprocess messages and store them in Amazon DynamoDB. Configure the consumer applications to read from DynamoDB to process the messages.
- D. Publish the messages to an Amazon Simple Notification Service (Amazon SNS) topic with multiple Amazon Simple Queue Service (Amazon SOS) subscriptions. Configure the consumer applications to process the messages from the queues.
[한글] (번역기)
한 회사에 수신 메시지를 수집하는 애플리케이션이 있습니다. 그러면 수십 개의 다른 애플리케이션과 마이크로서비스가 이러한 메시지를 빠르게 소비합니다. 메시지 수는 매우 다양하며 때로는 초당 100,000개까지 갑자기 증가하기도 합니다. 이 회사는 솔루션을 분리하여 확장성을 높이고자 합니다.
이러한 요구 사항을 충족하는 솔루션은 무엇일까요?
A. Amazon Kinesis 데이터 분석에 메시지를 지속합니다. 메시지를 읽고 처리하도록 소비자 애플리케이션을 구성합니다.
B. 자동 확장 그룹의 Amazon EC2 인스턴스에 수집 애플리케이션을 배포하여 CPU 메트릭에 따라 EC2 인스턴스 수를 확장합니다.
C. 단일 샤드로 Amazon Kinesis 데이터 스트림에 메시지를 씁니다. AWS 람다 함수를 사용하여 메시지를 전처리하고 Amazon DynamoDB에 저장합니다. 소비자 애플리케이션이 메시지를 처리하기 위해 DynamoDB에서 읽도록 구성합니다.
D. 여러 개의 Amazon 단순 알림 서비스(Amazon SQS) 가입을 통해 Amazon 단순 알림 서비스(Amazon SNS) 항목에 메시지를 게시합니다. 대기열에서 메시지를 처리하도록 소비자 애플리케이션을 구성합니다.
[풀이]
- 메시지나 데이터를 수집하는 애플리케이션이 있는데 이 메시지나 데이터들을 다른 애플리케이션과 마이크로 서비스가 소비한다. 또한 메시지 수가 급격히 늘어나기도 하여 가용성이 필요할 듯 함.
- 일단 D의 경우 SQS 대기열로 많은 수의 데이터를 처리하려면 Queue 방식이 문제가 될듯
D 제외 - A의 경우 Amazon Kinesis Data Analytics 는 주로 스트리밍 데이터의 실시간 분석에 사용, 여러 소비자에게 메시지를 배포하도록 설계되지 않았다.
- C의 경우 Kinesis 데이터 스트림은 DynamoDB에 데이터를 보내고 람다에 데이터를 처리하고 Kinesis API를 이용해서 EC2나 ECS에서 실행하는 사용자 지정 애플리케이션을 구축할수도 있음.
- Kinesis 와 SQS가 통상 사용되고 있는 사용 사례는 이렇다고 함
Kinesis — 로그 및 이벤트 데이터 수집, 실시간 분석, 모바일 데이터 캡처, 사물 인터넷 데이터 피드
SQS — 애플리케이션 통합, 마이크로서비스 분리, 집중적인 백그라운드 작업에서 실시간 사용자 요청 분리, 향후 처리를 위한 일괄 메시지 - SQS 대기열로 많은 수의 데이터를 처리하기 어렵다고 생각했는데, Standard인지 FIFO인지 명시가 되어 있지 않으니 Standard로 설정 시 100,000개의 초당 메시지도 처리 가능.
- 그리고 SQS + SNS 를 Pub/Sub 구조로 사용하고 있는 사례가 많은 듯함
https://aws.amazon.com/ko/blogs/compute/simplify-pubsub-messaging-with-amazon-sns-message-filtering/ - D 정답인듯함...
[출처] : https://www.examtopics.com/exams/amazon/aws-certified-solutions-architect-associate-saa-c03/view/
위 문제에 대한 저작권은 상위 출처 링크에 있으며 해당 게시글로 문제 시 댓글 부탁 드리며 삭제 조치 진행 하겠습니다.
'자격증 > AWS SAA' 카테고리의 다른 글
[SAA-C03][문제 풀이] 온프레미스 <-> S3 데이터 액세스 수명주기 문제 (0) | 2023.10.11 |
---|---|
[SAA-C03][문제 풀이] 분산 애플리케이션 복원력 확장성 극대화 문제 (1) | 2023.10.11 |
[SAA-C03][문제 풀이] 온프레미스 데이터 S3 전송 문제 (1) | 2023.10.10 |
[SAA-C03][문제 풀이] EBS Multi-AZ 문제 (0) | 2023.10.10 |
[SAA-C03][문제 풀이] Organization S3 Policy 문제 (0) | 2023.10.10 |