반응형

📝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

  • 동시 중복 처리 발생을 막기 위한 기술
    1. 메시지 상태 (Visible)
    2. Consumer ReceiveMessage
    3. 메시지 상태 (Invisible) → Visibility Timeout 기간
    4. Consumer 처리후 성공시 DeleteMessage를 통해 처리됐음 상태 실패시에는 Timeout 만료로 해당 메시지 Visible상태

 

SQS Consumer 멱등 처리

  • Visibility Timeout (가시성 제한 시간) 만료
    1. 컨슈머가 메시지를 가져옵니다. (SQS는 이때 메시지를 딴 놈이 못 보게 숨김)
    2. 컨슈머가 로직 처리하는데 오래걸릴 때 설정된 가시성 제한이 지나버려서 큐에 다시 노출됩니다. (SQS에서는 실패했다고 판단)
    3. 다른 컨슈머가 똑같은 메세지를 가져가 처리합니다.

 

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

 

반응형