반응형
📝AWS SQS (Amazon Simple Queue Service)

AWS에서 제공하는 완전관리형 서버리스 기반 메시지 큐 서비스입니다.
특징
- 서버리스 상태
- 분산된 형태로 저장 → 고가용성
- SQS는 자동적으로 오토스케일링
- Visibility Timeout를 통해 동시 중복처리 방지
- At-least Once (메시지 삭제 되기전까지 계속 전달)
- DLQ존재해 N건 실패에 대해 따로 관리 가능 (콘솔로 수동이나 코드로 자동재처리 구현 가능) [옵션]
Standard vs FIFO 방식


| 항목 | Standard | FIFO |
| 메시지 순서 | 보장 X | 보장 |
| 중복 가능성 | 있음 (멱등 처리 필요) | 없음 |
| 전달 보장 | At-least-once | Exactly-once |
| 처리량 | 거의 무제한 | 제한 없음 |
| 비용 | 저렴 | 상대적 비쌈 |
| 사용 비율 | 80% | 20% |
Visibility Timeout
- 동시 중복 처리 발생을 막기 위한 기술
- 메시지 상태 (Visible)
- Consumer ReceiveMessage
- 메시지 상태 (Invisible) → Visibility Timeout 기간
- Consumer 처리후 성공시 DeleteMessage를 통해 처리됐음 상태 실패시에는 Timeout 만료로 해당 메시지 Visible상태
SQS Consumer 멱등 처리
- Visibility Timeout (가시성 제한 시간) 만료
- 컨슈머가 메시지를 가져옵니다. (SQS는 이때 메시지를 딴 놈이 못 보게 숨김)
- 컨슈머가 로직 처리하는데 오래걸릴 때 설정된 가시성 제한이 지나버려서 큐에 다시 노출됩니다. (SQS에서는 실패했다고 판단)
- 다른 컨슈머가 똑같은 메세지를 가져가 처리합니다.
SQS vs Kafka
- SQS
- 작업 처리 중심
- 예) 이메일같이 한번만 처리되면 되는 것
- 메시지 처리되면 사라짐 (메시지 수명 = 처리 완료까지)
- 작업 처리 중심
- Kafka
- 이벤트 기록 중심
- 예) 주문시 분석팀, 추천시스템, 모니터링 시스템 등에 보냄
- 메시지는 로그로 기록 (메시지 수명 = 보존 기간까지)
- 이벤트 기록 중심
📝AWS MSA (AWS Database Migration Service)
AWS의 데이터베이스 마이그레이션 & CDC 서비스로 DB간 실시간 데이터 복제 및 이기종 DB 마이그레이션 등을 할 수 있습니다.
📝 Source Connector & Sink Connector

Source Connector
- 외부 시스템 → Kafka 토픽으로 데이터를 넣는 커넥터
- DB → Kafka
- File → Kafka
- S3 → Kafka
Sink Connector
- Kafka 토픽 → 외부 시스템으로 데이터를 내보내는 커넥터
- Kafka → DB
- Kafka → Elasticsearch
- Kafka → S3
📝 Kafka Connect & Debezium

Kafka Conect
- Kafka Connect는 Kafka와 외부 시스템(DB, 파일 시스템, S3, Elasticsearch 등)을 손쉽게 연동하기 위한 제품으로 코드를 직접 작성하지 않고도 커넥터 설정만으로 데이터의 수집(Source)과 적재(Sink)를 자동화할 수 있습니다.
- Kafka에서 지원하는 기능들을 다 사용할 수 있습니다.
Debezium
- CDC(Change Data Capture) 전용 Source Connector로 DB 변경사항(INSERT / UPDATE / DELETE 감지)을 이벤트 스트림으로 변환해줍니다. Kafka Connect에서 사용하는 플러그인 같은 느낌이라고 생각하면 됩니다.
🔗 참고 및 출처
https://cjw-awdsd.tistory.com/53#google_vignette
https://www.youtube.com/watch?v=704qQs6KoUk
반응형