본문 바로가기
CSP (Cloud Service Provider)/GCP

[GCP in Action] Cloud Pub/Sub

by BTC_유온 2022. 6. 27.

첫번째  Cloud Pub/Sub 필요성

메시징 시스템의 요구사항

메시지는 특정한 사람이 보냄
특정 사람에게 정확히 보냄
정확히 한 번 보내고 한 번 받음

이외에도 그룹에 메시지를 브로드캐스팅할 수도 통신을 동기식 또는 비동기식으로 보낼지 등이 요구될 수 있음

기존의 많은 오픈 소스 메시징 플랫폼과 다양한 표준의 경우 별도의 서버를 켜야 함
모든 메시지를 모든 곳으로 라우팅하는 소프트웨어를 설치하고 관리해야 함
보내려는 메시지의 수가 증가하면 더 많은 머신을 켜야 함
새로운 컴퓨팅 성능을 사용하도록 시스템을 재구성해야 함

 



두번째  Cloud Pub/Sub

(1) Cloud Pub/Sub
자체 내부 인프라를 기반으로 구축한 완전 관리형 메시징 시스템

(2) 메시지 수명
생성자가 주제(topic)를 결정한 다음 해당 주제에 대해 구체적인 메시지를 퍼블리싱
Cloud Pub/Sub이 메시지를 수신하면 메시지가 주제에 고유한 ID를 할당하고 이를 생성자에게 반환함으로써 메시지를 수신했음을 알림

소비자는 관심있는 주제를 구독

 


구독 구성 방법

ⓐ 푸시 방식의 구독(push-style subscription)
해당 구독의 소비자에게 메시지를 푸시
구독이 소비자가 메시지를 요청하기를 기다림

ⓑ 풀 스타일 구독(pull-style subscription)
해당 구독의 소비자가 풀 API 메서드로 메시지를 요청할 때까지 기다렸다가 요청이 들어오면 전송
새 메시지가 도착하면 특정 URL로 요청을 적극적으로 보냄

Cloud Pub/Sub은 이미 주제에 존재하는 모든 구독을 보고 각자에게 메시지 복사본을 브로드캐스트
소비자가 메시지를 수신하고 처리 후 메시지와 함께 얻은 ID를 사용하여 고유한 ackId를 호출하고 acknowledge API 메소드를 호출함으로써 메시지 처리 여부를 알림


세번째  Cloud Pub/Sub 개념

(1) 주제(topic)

정보의 범주를 나타내며, 메시지를 퍼블리시하는 리소스
특정 주제에 메시지를 퍼블리싱하므로 메시지를 브로드캐스팅할 때 주제가 필요
소비자의 경우 주제는 관심 있는 메시지 범주를 분류하는 방법으로 작용
소비자가 원하는 모든 사용자 정의 및 구성을 처리할 수 있기 때문에 주제는 그 이름만으로 표현

(2) 메시지(message)

관심 있는 다른 사용자에게 브로드캐스트할 콘텐츠
특정 주제에 따라 메시지를 분류하고, 효과적으로 전달


메시지 구성

 

ⓐ 페이로드
base-64로 인코딩된, 콘텐츠 데이터

ⓑ 속성
페이로드에 대한 메타 데이터로 작동하는 메시지에 대한 일반 텍스트 속성 집합으로, 키 값 맵으로 표시
페이로드는 항상 base-64로 인코딩되지만 속성은 그렇지 않음. 즉, 페이로드는 소비자가 디코딩 과정을 거쳐야만 하지만 속성은 그럴 필요가 없음
페이로드가 지나치게 큰 경우 데이터를 다른 곳에 저장 후 메시지에는 해당 위치정보(링크 등)를 넣음으로써 이를 참조할 수 있게 할 수 있음
보낸 사람이 설정한 페이로드 및 속성과 함께 Cloud Pub/Sub 시스템은 메시지를 퍼블리싱할 때만 메시지 ID와 타임 스탬프를 추가로 할당할 수 있음

(3) 구독(subscription)

구독(메시징 대기열)
특정 주제에 대한 메시지를 듣는 또는 사용하려는 의도를 나타냄
소비자가 특정 구성에 따라 생기는 흥미로운 소비 패턴이 반영된 메시지 수신 방식을 구성하는 것과 관련된부분을 담당

특징
각 구독은 주제에 전송된 각 메시지의 개별 복사본을 수신하므로 소비자는 해당 주제의 메시지에 관심이 있는 다른 사람들에게 영향을 주지 않고 주제의 메시지에 액세스할 수 있음
각 구독은 주제에 대해 보내는 모든 메시지를 볼 수 있으므로 더 많은 사용자가 주제에 대한 구독을 만들면 더 많은 청중에게 메시지를 브로드캐스트할 수 있음
여러 사용자가 동일한 구독의 메시지를 소비할 수 있으므로 구독을 사용하여 여러 소비자에게 메시지를 주제별로 배포할 수 있음
구독은 풀/푸시 방식으로 제공

마감 시한 통지
초 단위로 정하는 마감 시한은 소비자에게 문제가 있다고 가정하기 전에 얼마나 기다려야 할지를 알려주는 타이머 역할을 함


네번째  가격 정책

실제로 사용하는 리소스와 계산에 대해서만 요금을 부과
브로드캐스팅한 데이터의 양을 기준으로 기가바이트당 최대 $0.06의 비율로 계산
요금은 보내는 메시지의 크기에 따라 결정되므로 용량이 큰 파일의 경우 GCS와 같은 보다 요금이 저렴한 저장소에 저장 후 메시지에 해당 링크를 기입하는 게 훨씬 저렴할 수 있음
각 요청에 대한 최소 청구 가능 금액은 1KB

댓글