Q45. AWS 데이터 수집 워크플로의 안정성 향상 - SQS와 Lambda를 활용한 해결책

AWS 자격증을 준비하는 여러분, 안녕하세요. 오늘은 실제 기업 환경에서 자주 발생할 수 있는 데이터 수집 워크플로의 안정성 문제와 그 해결책에 대해 알아보겠습니다. 이 문제를 통해 AWS의 주요 서비스들이 어떻게 연계되어 더 안정적인 시스템을 구축할 수 있는지 이해할 수 있을 것입니다.

문제 상황

Q1:
한 회사의 데이터 수집 워크플로는 다음과 같이 구성되어 있습니다:
• 새로운 데이터 전송에 대한 알림을 위한 Amazon SNS 주제
• 데이터를 처리하고 메타데이터를 기록하는 AWS Lambda 함수

회사는 네트워크 연결 문제로 인해 수집 워크플로가 때때로 실패하는 것을 관찰했습니다. 이러한 장애가 발생하면 회사에서 수동으로 작업을 다시 실행하지 않는 한 Lambda 함수는 해당 데이터를 수집하지 않습니다.

Lambda 함수가 향후 모든 데이터를 수집하도록 하려면 솔루션 설계자가 취해야 하는 작업 조합은 무엇입니까? (2개를 선택하세요.)

<small>A company has a data ingestion workflow that consists of the following:
• An Amazon Simple Notification Service (Amazon SNS) topic for notifications of new data deliveries
• An AWS Lambda function that processes the data and records metadata

The company has observed that the ingestion workflow sometimes fails because of network connectivity issues. When these failures occur, the Lambda function does not collect the data unless the company manually reruns the job.

Which combination of actions should a solutions architect take to ensure that the Lambda function collects all data going forward? (Choose two.)</small>

선택지

A. 여러 가용 영역에 Lambda 함수를 배포합니다.
<small>Deploy the Lambda function across multiple Availability Zones.</small>

B. Amazon Simple Queue Service(Amazon SQS) 대기열을 생성하고 SNS 주제를 구독합니다.
<small>Create an Amazon Simple Queue Service (Amazon SQS) queue and subscribe it to the SNS topic.</small>

C. Lambda 함수에 할당된 CPU와 메모리를 늘립니다.
<small>Increase the CPU and memory that are allocated to the Lambda function.</small>

D. Lambda 함수에 대해 프로비저닝된 처리량을 늘립니다.
<small>Increase the provisioned throughput for the Lambda function.</small>

E. Amazon Simple Queue Service(Amazon SQS) 대기열에서 읽도록 Lambda 함수를 수정합니다.
<small>Modify the Lambda function to read from an Amazon Simple Queue Service (Amazon SQS) queue.</small>

정답 및 해설

정답은 B와 E입니다.

  1. B. Amazon SQS 대기열을 생성하고 SNS 주제를 구독:

    • SQS는 메시지 큐 서비스로, 네트워크 연결 문제와 같은 일시적인 장애 상황에서 메시지를 안전하게 보관할 수 있습니다.
    • SNS 주제를 SQS 대기열이 구독하면, 데이터 전송 알림이 SQS에 저장되어 처리 실패 시에도 메시지 손실을 방지할 수 있습니다.
  2. E. Lambda 함수를 수정하여 SQS 대기열에서 읽도록 함:

    • Lambda 함수가 SQS 대기열에서 메시지를 읽도록 수정하면, 네트워크 연결 문제가 해결된 후에도 누락된 데이터를 처리할 수 있습니다.
    • 이 방식은 Lambda 함수에 내장된 재시도 메커니즘을 활용할 수 있어, 일시적인 오류에 대해 더 강건한 시스템을 구축할 수 있습니다.

이러한 변경을 통해 시스템은 더 안정적이고 내구성 있게 되며, 일시적인 네트워크 문제에도 불구하고 모든 데이터를 처리할 수 있게 됩니다.

오답 설명

A. 여러 가용 영역에 Lambda 배포: Lambda는 이미 여러 AZ에서 실행되므로 추가 배포가 필요하지 않습니다.

C. CPU와 메모리 증가: 리소스 증가는 네트워크 연결 문제를 해결하지 않습니다.

D. 프로비저닝된 처리량 증가: Lambda의 처리량 증가는 네트워크 연결 문제와 관련이 없습니다.

결론

이 문제는 AWS의 서버리스 아키텍처에서 안정성을 높이는 방법을 보여줍니다. SNS, SQS, Lambda를 조합하여 사용하면 네트워크 불안정성과 같은 일시적인 문제에도 강건한 데이터 처리 파이프라인을 구축할 수 있습니다. 이는 AWS 솔루션 아키텍트로서 알아야 할 중요한 설계 패턴 중 하나입니다.

원본 문제 링크

댓글

이 블로그의 인기 게시물

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

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