☁️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