실습 개요
이 AWS 실습에서는 2개의 Python 스크립트를 사용하여 Amazon Simple Queue Service(Amazon SQS)를 직접 사용해 볼 수 있습니다. Amazon SQS는 클라우드 애플리케이션 내에서 구성 요소를 분리하는 데 도움이 되는 완전관리형 메시지 대기열 서비스이며, 신뢰할 수 있고 확장 가능한 통신 수단을 제공하도록 설계되었습니다.
Amazon SQS는 메시지 기반 미들웨어의 관리 및 운영과 관련된 복잡성과 오버헤드를 줄입니다. 개발자는 이를 사용하여 작업을 차별화하는 데 집중할 수 있습니다. 예를 들어 Amazon SQS를 이벤트 소스로 사용하여 이미지가 Amazon Simple Storage Service(Amazon S3) 버킷에 업로드될 때마다 이미지 분석을 수행하는 Lambda 함수를 호출할 수 있습니다. 또는 Amazon SQS를 사용하여 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스에서 다른 EC2 인스턴스로 메시지를 전송하여 처리되도록 할 수 있습니다.
Amazon SQS는 표준 대기열과 선입선출(FIFO) 대기열이라는 2가지 유형의 메시지 대기열을 제공합니다. 표준 대기열은 최대 처리량, 최선의 정렬을 제공하며 메시지가 최소한 1회 전달되도록 보장합니다. FIFO 대기열은 메시지가 전송된 정확한 순서대로 정확히 한 번 처리되도록 설계되었습니다.
Amazon SQS는 다음과 같이 작동합니다.
- 분산 애플리케이션의 구성 요소(생산자)는 Amazon SQS의 대기열에 메시지를 전송합니다(대기열에 추가라는 작업). 이 메시지에는 메시지 수신자가 태스크를 수행하는 데 필요한 모든 정보가 들어 있습니다.
- 이 메시지는 소비자(분산 애플리케이션의 다른 구성 요소)가 메시지를 검색하고 처리할 때까지 대기열에서 대기합니다(대기열에서 제거라는 작업).
- 소비자는 메시지를 처리한 다음 대기열에서 삭제하여 메시지가 다시 수신되어 처리되지 않도록 합니다.
이 실습에서는 2개의 Python 스크립트를 사용하여 Amazon SQS의 작동 방식과 해당 기능을 사용하는 방법을 더 잘 이해하고자 합니다. 첫 번째 Python 스크립트(receive.py)는 수신자이며 SQS 대기열에서 메시지를 지속적으로 수신 대기하고 수신하도록 설계되었습니다. 이 스크립트는 대기열에 연결하고 메시지를 실시간으로 검색하는 프로세스를 보여줍니다.
두 번째 Python 스크립트(send.py)는 생산자이며 여러분이 해결해야 하는 코드 문제를 제시합니다. 목표는 SQS 대기열에 메시지를 보내는 데 필요한 코드 작성을 완료하는 것입니다. 이 실습은 대기열과 메시지를 주고받는 프로세스를 이해하고 이 지식을 실제 시나리오에 적용할 수 있도록 도와줍니다.
목표
이 실습을 마치면 다음을 할 수 있습니다.
- 콘솔과 AWS Command Line Interface(AWS CLI)를 사용하여 SQS 대기열을 검토합니다.
- receive.py 스크립트의 기능을 검토하고 이해합니다.
- receive.py 스크립트를 실행하여 BackgroundCheckApp 대기열을 수신 대기합니다.
- send.py 스크립트를 업데이트하여 Hello World 메시지를 BackgroundCheckApp 대기열로 전송합니다.
- send.py 스크립트를 테스트하여 SQS 대기열로 이 메시지를 제대로 전송하는지 확인합니다.
기술 지식 사전 요구 사항
이 실습을 성공적으로 완료하려면 다음과 같은 기술 지식을 갖춰야 합니다.
- AWS 서비스에 대한 기본적인 이해.
- Python 스크립트를 편집하고 테스트할 수 있을 정도의 능숙한 AWS Cloud9 사용 능력.
소요 시간
이 실습을 완료하는 데는 약 30분이 소요됩니다.
아이콘 키
이 실습에서는 다양한 유형의 지침 및 참고 사항에 대한 주의를 환기하기 위해 다양한 아이콘이 사용됩니다. 각 아이콘의 목적은 다음과 같습니다.
- 명령: 실행해야 하는 명령입니다.
- 예상 출력: 명령 또는 편집된 파일의 출력을 확인하는 데 사용할 수 있는 샘플 출력입니다.
- 참고: 힌트, 팁 또는 중요한 가이드입니다.
- 고려 사항: 자신의 환경에 개념을 적용하는 방법을 고려하거나 당면한 주제에 대한 대화를 시작하기 위해 일시 중지할 시점입니다.
- 힌트: 질문 또는 도전 과제에 대한 힌트입니다.
- 태스크 완료: 실습의 결론 또는 요점입니다.