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

[Google Cloud Platform] 빅데이터와 머신러닝(4)

by BTC_박은혜 2022. 8. 5.

 

안녕하세요~ 할부로애틋하게 BTC_손지수, 박은혜 입니다!

이번 주에는 빅데이터와 머신러닝 소개를 계속해서 이어나가려고 합니다!

이번 포스팅에서는 Cloud Pub/Sub, Dataflow에 대해 알아보도록 하겠습니다.

그럼 이번 한 주도 GCP에 더 가까워져 봅시다~!

 


먼저 Cloud Pub/Sub에 대해 알아보고자 합니다.

Pub/Sub은 BigQuery, 데이터 레이크, 운영 데이터베이스로 스트리밍하기 위한 이벤트를 수집하는 서비스 입니다.

 

이 Pub/Sub를 통해 서비스는 비동기적으로 100밀리초의 지연 시간으로 통신할 수 있습니다.

뿐만 아니라 Pub/Sub는 데이터를 수집하고 배포하는 스트리밍 분석 및 데이터 통합 파이프라인에 사용됩니다.

이는 서비스 통합을 위한 메시징 중심 미들웨어 또는 태스크 병렬화를 위한 큐로도 효과적입니다.!

 

또, Pub/Sub를 사용하게 되면 게시자 및 구독자라는 이벤트 제작자 및 소비자 시스템을 만들 수 있습니다.

게시자는 동기식 리모트 프로시져 콜(RPC)이 아니라 이벤트를 브로드캐스트하여 구독자와 비동기적으로 통신하며, 이러한 이벤트가 처리되는 방식이나 시기에 관계없이 Pub/Sub 서비스에 이벤트를 보냅니다. 그 다음 Pub/Sub는 이벤트에 응답해야 하는 모든 서비스에 이벤트를 전달합니다. 게시자가 데이터를 수신하기를 기다려야 하는 RPC를 통해 통신하는 시스템과 비교하면 이러한 비동기식 통합은 전반적인 시스템의 유연성과 견고성을 높입니다.

 

그렇다면 이러한 Pub/Sub의 사용 사레들에는 어떤 것들이 있을까요?

Pub/Sub의 사용 사례들은 다음과 같습니다!

 

사용자 상호작용 및 서버 이벤트 수집. 

최종 사용자 앱의 사용자 상호작용 이벤트 또는 시스템의 서버 이벤트를 사용하려면 이를 Pub/Sub로 전달한 다음 Dataflow와 같은 스트림 처리 도구를 사용하여 BigQuery, Bigtable, Cloud Storage, 기타 데이터베이스에 전달합니다. Pub/Sub를 사용하면 여러 클라이언트의 이벤트를 동시에 수집할 수 있습니다.

 

실시간 이벤트 배포. 

원시 또는 처리된 이벤트를 팀과 조직 전체의 여러 애플리케이션에서 실시간으로 처리할 수 있습니다. 이는 '엔터프라이즈 이벤트 버스' 및 이벤트 기반 애플리케이션 설계 패턴을 지원합니다. Pub/Sub를 사용하면 이벤트를 Pub/Sub로 내보내는 여러 Google 시스템과 통합할 수 있습니다.

 

데이터베이스 간 데이터 복제. 

Pub/Sub는 일반적으로 데이터베이스의 변경 이벤트를 배포하는 데 사용됩니다. 이러한 이벤트는 BigQuery 및 다른 데이터 스토리지 시스템에서 데이터베이스 상태 및 상태 기록의 뷰를 구성하는 데 사용될 수 있습니다.

 

병렬 처리 및 워크플로. 

Pub/Sub 메시지를 사용하여 Cloud Functions에 연결하면 텍스트 파일 압축, 이메일 알림 전송, AI 모델 평가, 이미지 형식 재지정과 같은 다수의 작업을 여러 작업자 간에 효율적으로 배포할 수 있습니다.

 

엔터프라이즈 이벤트 버스. 

전사적 실시간 데이터 공유 버스를 만들어 비즈니스 이벤트, 데이터베이스 업데이트, 분석 이벤트를 조직 전체에 배포할 수 있습니다.

 

애플리케이션, 서비스, IoT 기기에서 데이터 스트리밍. 

예를 들어 SaaS 애플리케이션은 이벤트의 실시간 피드를 게시할 수 있으며 가정용 센서는 Dataflow를 통해 데이터를 다른 Google Cloud 제품에서 사용할 수 있도록 Pub/Sub로 데이터를 스트리밍할 수 있습니다.

 

분산 캐시 갱신. 

예: 애플리케이션이 무효화 이벤트를 게시해, 변경된 객체의 ID를 업데이트합니다.

 

안정성을 위한 부하 분산. 

예: 서비스 인스턴스가 여러 영역에 있는 Compute Engine에 배포되어도 공통 주제를 구독할 수 있습니다. 영역에 장애가 발생하면 나머지가 자동으로 부하를 선택합니다.

 

Pub/Sub은 이처럼 다양한 분야에서 활용이 가능합니다!

또한 Pub/Sub은 두 가지 서비스 유형이 존재합니다.

일반적인 Pub/Sub 서비스와 Pub/Sub 라이트 서비스로 구분 됩니다.

Pub/Sub 서비스는 대부분의 사용자와 애플리케이션에서 기본적으로 사용되는 옵션이며,

Pub/Sub 라이트 서비스는 저비용을 목적으로 하는 유사한 별개의 메시지 서비스입니다!

사용하고자 하는 목적에 맞게 선택하여 사용하시면 됩니다.

 

그럼 이러한 Pub/Sub은 어떤 흐름으로 이루어 지는지 흐름도를 보여드리고자 합니다!

Pub/Sub 흐름도

이 흐름도를 이해하기 위해선 몇 가지 주요 개념이 필요한데요, 간단하게 말씀드리면 다음과 같습니다.

  • 메시지: 서비스를 통해 이동하는 데이터
  • 주제: 메시지 피드를 나타내는, 이름이 지정된 항목입니다.
  • 구독: 특정 주제의 메시지 수신 의향을 나타내는, 이름이 지정된 항목입니다.
  • 게시자(또는 제작자): 특정 주제에 대한 메시지를 만들어 메시징 서비스로 전송(게시)합니다.
  • 구독자(또는 소비자): 지정한 구독에 대한 메시지를 수신합니다.

그리고 다시 위의 흐름도를 보시게 되면,

이 시나리오에서는 게시자 둘이 같은 주제로 메시지를 게시하고 있습니다.

해당 주제에는 구독 2개가 있습니다.

첫 번째 구독은 구독자가 둘이고, 각 구독자가 메시지의 하위 집합을 수신하여 메시지 부하가 분산됩니다.

두 번째 구독에는 모든 메시지를 수신하는 구독자가 하나 있습니다. 굵게 표시된 문자는 메시지를 의미합니다.

메시지 A는 게시자 1이 구독 1을 통해 구독자 2에게, 구독 2를 통해 구독자 3에게 전송합니다.

메시지 B는 게시자 2가 구독 1을 통해 구독자 1에게, 구독 2를 통해 구독자 3에게 전송합니다.

 

그럼 이렇게 Pub/Sub에 대해 알아보았으니,

다음으로 Dataflow에 대해 알아보고자 합니다!

 

Dataflow는 다양한 데이터 처리 패턴을 실행하는 관리형 서비스입니다.

또한 Dataflow는 빠르고 경제적이며 서버리스 방식인 통합 스트리밍 및 일괄 데이터 처리를 제공합니다.

 

이러한 Dataflow를 사용하게 된다면,

 

신속한 스트리밍 데이터 분석

Dataflow를 사용하면 데이터 지연 시간을 줄이면서 스트리밍 데이터 파이프라인을 빠르고 간편하게 개발할 수 있습니다.

운영 및 관리 간소화

Dataflow는 서버리스 방식으로 데이터 엔지니어링 워크로드에서 운영 오버헤드를 제거하므로 팀이 서버 클러스터를 관리하는 대신 프로그래밍에 집중할 수 있습니다.

총 소유 비용 절감

Dataflow는 리소스 자동 확장과 비용 최적화된 일괄 처리 기능의 결합으로 무제한에 가까운 용량을 제공하므로 시기에 따라 변동하거나 급증하는 워크로드도 과다한 지출 없이 관리할 수 있습니다.

 

위와 같은 이점이 있습니다!

 

또한 이 Dataflow는 다음과 같은 특징이 있습니다.

리소스 자동 확장 및 동적 작업 재균등화

데이터 인식 리소스 자동 확장을 통해 파이프라인 지연 시간을 최소화하고 리소스 사용률을 극대화하며 데이터 레코드당 처리 비용을 줄입니다. 데이터 입력은 작업자 리소스 사용률을 균등화하기 위해 자동으로 파티션이 나누어지며 지속적으로 다시 분산되고, '핫 키'가 파이프라인 성능에 미치는 영향을 줄입니다.

일괄 처리 시 유연한 예약 및 가격 책정

심야 작업과 같이 작업 예약 시간을 유연하게 처리해야 하는 경우 유연한 리소스 예약(FlexRS)으로 일괄 처리 비용을 낮춰줍니다. 이러한 유연한 작업은 6시간 안에 실행 대상으로 검색되도록 보장되어 큐에 배치됩니다.

즉시 사용할 수 있는 실시간 AI 패턴

즉시 사용 가능한 패턴을 통해 사용 설정된 Dataflow의 실시간 AI 기능은 인간에 가까운 지능으로 방대한 이벤트에 대해 실시간 대응을 지원합니다. 고객은 예측 분석 및 이상 감지부터 실시간 맞춤설정 및 기타 고급 분석 사용 사례에 이르는 지능형 솔루션을 빌드할 수 있습니다. 

 

이와 같은 이점들과 특징들을 통해 Dataflow를 사용하게 된다면 다양한 데이터 처리를 간편하게 관리할 수 있습니다!


 

지금까지 Pub/Sub과 Dataflow 에 대해 알아보았습니다!

너무 더웠던 이번 한 주도 고생 많으셨고,

저희는 다음 주에 더 알찬 내용으로 다시 돌아오도록 하겠습니다!

오늘도 봐주셔서 감사합니다~!!

댓글