AWS Integration & Messaging
미들웨어로 다른 서비스간 협동작업을 하는 방법
애플리케이션을 여러개 배포하려고 할 때 커뮤니케이션을 해야 함
패턴
Synchronous → 문제 발생 가능
- 한 서비스가 다른 서비스를 압도하는 경우(요청 받는 서비스, 비디오 인코딩 서비스)
- ex) 보통 10개 비디오만 인코딩하다가 1000개 인코딩해야 하면 운용을 중지해야 함
- 트래픽 예측 불가하면 일반적으로 애플리케이션을 분리하고 분리계층을 확장하는 것이 좋음
- SQS를 사용 - Queue 모델
- SNS를 사용 - Pub/Sub 모델
- Kinesis를 사용 - 실시간 스트리밍, 대용량 데이터일 때
- ⇒ 독립적으로 서비스를 확장가능
Amazon SQS
- SQS 대기열에는 메시지를 넣음
- 메시지는 무엇이든 상관없음 ex)비디오를 처리하라, 오디오를 처리하라,..
- SQS 대기열에 메시지를 보내는 주체를 생산자(Producer)
- SQS 대기열에서 메시지를 수집하고 처리해야하는 대상 소비자(Consumer)
- Consumer는 대기열에서 메시지를 폴링하는데 이는 대기열에서 자신의 앞으로 온 메시지가 있는지를 물어보는 것
- 소비자는 여럿일 수 있음
- 메시지를 처리하고 큐에서 삭제함
- Queue Service는 Producer와 Consumer 사이를 분리하는 Buffer 역할을 함
- 종류