☁️Cloud/AWS
AWS 통합 및 메시징
terranbin
2024. 3. 20. 16:59
728x90
SMALL
미들웨어로 다른 서비스 간 합동 작업을 하는 방법을 살펴본다
여러 개 배포할 때는, 커뮤니케이션을 할 수 밖에 없다 (서비스는 정보와 데이터를 공유)
그 방법은 크게 두 가지로 나뉜다
1. 동기 커뮤니케이션
직접적으로 연결되어 있다.
2. 비동기 혹은 이벤트 기반 유형
구매가 증가하거나, 한 서비스가 다른 서비스를 압도하는 경우, sync 에 문제가 발생할 수 있다.
트래픽이 갑자기 급증 or 예측 불가할 때,
애플리케이션 분리 및 계층을 확장해야 한다.
SQS
- 대기열 서비스
- 애플리케이션을 분리하여, 대기열에 메시지를 담음
- 무제한 처리량이 있음
- 대기열에 최소 4일, 최대 14일 놔둘 수 있다.
- SQS 에 메시지를 보내는 API 를 SendMessage API 라고 한다.
- 메시지를 보내는 주체를 생산자 (producer) 라고 한다.
- 수신하는 대상자를 소비자 (consumer) 라고 한다.
- 대기열에서 미시지를 폴링 (poll message / 소비자 앞으로 온 메시지 있는지 물어봄)
- EC2 Instance, Server, AWS Lambda 에서 수행됨
- 보안
- HTTPS API 사용하여 메시지를 보내고, 생성함으로써 비행 중 암호화를 함
- KMS 키 사용 미사용 암호화를 얻음
- 클라이언트 측 암호화 또한 가능
SNS
- Pub/Sub (게시, 구독) 사용 가능
- 이를 통해 구매 서비스가 메시지를 SNS 주제로 전송할 수 있음
- "event producer" 는 한 SNS 주제에만 메시지를 보냄
- 해당 주제 관련 SNS 알림 받음
- 주제 별 최대 1200 만
- 주제를 만든 다음, 하나 or 여러 구독을 만든 뒤 SNS 주제에 계시하면, 구독자가 자동으로 메시지 받음
Kinesis (중요)
- 실시간 스트리밍 데이터 손쉽게 수집 / 처리하여 분석 가능
- 실시간 데이터에는 애플리케이션 로그, 계측, 웹 사이트 클릭 스트림, IoT 원격 측정 데이터 등 어떤 것도 포함 가능
셋의 차이점 분석 및 요약
SQS: 소비자가 SQS 대기열에서 메시지를 요청해서 데이터를 가져오는 pull 모델
SNS:게시 / 구독 모델
Kinesis:소비자가 kinesis 로부터 데이터를 가져오는 pull 표준 모드, 팬 아웃 유형의 소비 메카니즘은 kinesis 가 소비자에게 데이터를 push. 빅데이터, ETL 에 사용
LIST