Q18. AWS Lambda와 SQS를 활용한 효율적인 이미지 처리 마이크로서비스 구축하기

AWS 자격증을 준비하는 여러분, 안녕하세요. 오늘은 AWS Lambda와 Amazon SQS를 활용하여 확장 가능하고 내구성 있는 이미지 처리 마이크로서비스를 구축하는 방법에 대해 알아보겠습니다. 이 문제를 통해 서버리스 아키텍처의 장점과 AWS 서비스들의 연계 방법을 이해할 수 있습니다.

문제 상황

Q18:
애플리케이션 개발 팀은 큰 이미지를 더 작은 압축 이미지로 변환하는 마이크로서비스를 설계하고 있습니다. 사용자가 웹 인터페이스를 통해 이미지를 업로드하면 마이크로 서비스는 이미지를 Amazon S3 버킷에 저장하고, AWS Lambda 함수로 이미지를 처리 및 압축하고, 다른 S3 버킷에 압축된 형태로 이미지를 저장해야 합니다. 솔루션 설계자는 내구성이 있는 상태 비저장 구성 요소를 사용하여 이미지를 자동으로 처리하는 솔루션을 설계해야 합니다.

이러한 요구 사항을 충족하는 작업 조합은 무엇입니까? (2개를 선택하세요.)

<small>An application development team is designing a microservice to convert large images to smaller compressed images. When users upload images through a web interface, the microservice must store the images in an Amazon S3 bucket, process and compress the images with an AWS Lambda function, and store the compressed images in a different S3 bucket.
A solutions architect needs to design a solution that will automatically process the images by using durable, stateless components.
Which combination of actions will meet these requirements? (Choose two.)</small>

선택지

A. Amazon Simple Queue Service(Amazon SQS) 대기열을 생성합니다. 이미지가 S3 버킷에 업로드될 때 SQS 대기열에 알림을 보내도록 S3 버킷을 구성합니다.
<small>Create an Amazon Simple Queue Service (Amazon SQS) queue. Configure the S3 bucket to send notifications to the SQS queue when images are uploaded.</small>

B. Amazon Simple Queue Service(Amazon SQS) 대기열을 호출 소스로 사용하도록 Lambda 함수를 구성합니다. SQS 메시지가 성공적으로 처리되면 대기열에서 메시지를 삭제합니다.
<small>Configure a Lambda function to use the Amazon Simple Queue Service (Amazon SQS) queue as an invocation source. Delete messages from the queue when they are processed successfully.</small>

C. 새 업로드에 대해 S3 버킷을 모니터링하도록 Lambda 함수를 구성합니다. 업로드된 이미지가 감지되면 메모리의 텍스트 파일에 파일 이름을 쓰고 텍스트 파일을 사용하여 처리된 이미지를 추적합니다.
<small>Configure a Lambda function to monitor the S3 bucket for new uploads. When an uploaded image is detected, write the file name to a text file in memory and use the text file to track processed images.</small>

D. Amazon EC2 인스턴스를 시작하여 Amazon Simple Queue Service(Amazon SQS) 대기열을 모니터링합니다. 항목이 대기열에 추가되면 EC2 인스턴스의 텍스트 파일에 파일 이름을 기록하고 Lambda 함수를 호출합니다.
<small>Launch an Amazon EC2 instance to monitor the Amazon Simple Queue Service (Amazon SQS) queue. When items are added to the queue, record the file names in a text file on the EC2 instance and invoke a Lambda function.</small>

E. Amazon EventBridge(Amazon CloudWatch Events) 이벤트를 구성하여 S3 버킷을 모니터링합니다. 이미지가 업로드되면 추가 처리를 위해 애플리케이션 소유자의 이메일 주소와 함께 Amazon Simple Notification Service(Amazon SNS) 주제에 알림을 보냅니다.
<small>Configure an Amazon EventBridge (Amazon CloudWatch Events) event to monitor the S3 bucket. When images are uploaded, send a notification to an Amazon Simple Notification Service (Amazon SNS) topic with the application owner's email address for further processing.</small>

정답 및 해설

정답은 A와 B입니다.

A. Amazon SQS 대기열을 생성하고 S3 버킷에 이미지가 업로드될 때 SQS 대기열에 알림을 보내도록 구성하는 것은 이미지 업로드 이벤트를 안정적으로 캡처하는 좋은 방법입니다. SQS는 내구성 있는 메시지 큐 서비스로, 이벤트 메시지를 안전하게 저장하고 처리할 수 있습니다.

B. Lambda 함수를 SQS 대기열의 이벤트 소스로 구성하면 새로운 메시지가 큐에 도착할 때마다 자동으로 Lambda 함수가 트리거됩니다. 이는 상태 비저장 방식으로 이미지를 처리할 수 있게 해줍니다. 또한 메시지가 성공적으로 처리된 후 삭제함으로써 중복 처리를 방지합니다.

이 조합은 다음과 같은 이점을 제공합니다:

  1. 내구성: SQS는 메시지를 안전하게 저장하여 데이터 손실을 방지합니다.
  2. 확장성: Lambda 함수는 큐의 메시지 수에 따라 자동으로 확장됩니다.
  3. 상태 비저장: Lambda 함수는 각 요청을 독립적으로 처리합니다.
  4. 자동화: S3 이벤트 트리거와 SQS-Lambda 통합으로 전체 프로세스가 자동화됩니다.

오답 설명

C. 메모리 내 텍스트 파일 사용은 상태 저장 방식이며, Lambda 함수가 종료되면 데이터가 손실됩니다.

D. EC2 인스턴스 사용은 서버리스 아키텍처의 이점을 활용하지 못하며, 관리 오버헤드가 증가합니다.

E. EventBridge와 SNS를 통한 이메일 알림은 자동화된 이미지 처리에 적합하지 않습니다.

결론

이 문제는 AWS의 서버리스 서비스들을 조합하여 확장 가능하고 내구성 있는 마이크로서비스를 구축하는 방법을 보여줍니다. S3, SQS, Lambda의 조합은 효율적이고 관리가 쉬운 이미지 처리 파이프라인을 구현하는 데 이상적입니다. 이러한 아키텍처 패턴을 이해하는 것은 AWS 솔루션 아키텍트로서 중요한 역량입니다.

원본 문제 링크

댓글

이 블로그의 인기 게시물

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

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