[AWS] SQS를 다른 AWS 인프라 웹 서비스와 함께 사용
Amazon SQS 메시지 대기열 서비스를 Redshift, DynamoDB, RDS, EC2, ECS, Lambda 및 S3 등 다른 AWS 서비스와 함께 사용하면 분산 애플리케이션의 안정성과 확장성을 더욱 향상할 수 있음
SQS + S3
1. 비동기 처리
: S3 버킷에 업로드 되는 파일을 처리하는 데 많은 시간이 걸리는 경우, 해당 파일을 처리하는 애플리케이션에서 대기열 메시지를 가져와 비동기적으로 처리할 수 있음
2. 높은 가용성
: S3 버킷에 업로드된 파일을 처리하는 애플리케이션이 다운 되었을 때, SQS 대기열에 저장된 메시지는 여전히 유지되므로 해당 애플리케이션이 복구되면 메시지를 가져와 작업을 다시 시작할 수 있음
3. 확장성
: S3이벤트와 SQS대기열을 함께 사용하면, 메시지 큐에 대량의 이벤트 알림 메시지를 쉽게 보낼 수 있으므로, 애플리케이션의 확장성을 높일 수 있음
4. 이벤트 기반 아키텍처
: S3 이벤트와 SQS 대기열은 이벤트 기반 아키텍처를 구현하는 데 유용함
S3 버킷에 업로드되는 파일을 처리하는 애플리케이션에서 SQS 대기열 메시지를 가져와 이벤트를 처리하고, 다른 애플리케이션이나 서비스에 이벤트를 전달할 수 있음
생성 방법
1. 구성 할 S3 버킷을 선택 후 속성 탭 선택
2. 이벤트 알림을 선택한 후 추가 버튼을 클릭
3. 이벤트 알림 구성 페이지에서 다음과 같은 정보를 입력
4. 전송 대상에서 SQS 대기열을 선택함
SQS+Lambda
1. 비동기 처리
: SQS 대기열에 저장된 메시지를 처리하는 데 많은 시간이 걸리는 경우, AWS Lambda 함수를 사용해 메시지를 비동기적으로 처리할 수 있음, 이렇게 하면 SQS 대기열에 대기 중인 다른 메시지를 동시에 처리 가능
2. 스케일링
: SQS 대기열과 AWS Lambda를 함께 사용하면 메시지 큐에 대량의 이벤트 알림 메시지를 쉽게 보낼 수 있으므로, AWS Lambda 함수를 병렬로 실행하여 처리량을 높일 수 있음
+) Lambda는 자동으로 확장되므로, 처리량이 늘어나면 자동으로 함수를 늘릴 수 있음
3. 에러 처리
: 대기열에서 가져온 메시지를 처리하는 중에 오류가 발생하는 경우 Lambda를 다시 실행하거나, SQS 대기열에 메시지를 다시 보낼 수 있음, 이렇게 하면 자동으로 오류가 처리됨
4. 이벤트 기반 아키텍처
: 예를 들어 S3 버킷에 파일이 업로드 될 때, 이를 감지하고 SQS 대기열에 메시지를 보내고, Lambda 함수를 실행하여 해당 파일을 처리할 수 있음
참조
'💻 CSP > AWS' 카테고리의 다른 글
[AWS] S3 & 스토리지 클래스 (0) | 2023.05.30 |
---|---|
[AWS] Elastic Load Balancer (ELB) (0) | 2023.05.29 |
[AWS] SQS (Simple Queue Service) (0) | 2023.05.05 |
[AWS SDK] Boto3 : boto3을 이용해서 S3 객체 copy 하기 (0) | 2023.05.01 |
[AWS] Elasticache (0) | 2023.04.24 |