Google Cloud Pub/Sub는 독립적인 애플리케이션 간에 메시지를 주고받을 수 있도록 하는 완전 관리형 실시간 메시징 서비스입니다. Cloud Pub/Sub를 사용하여 여러 소스에 데이터를 게시하고 여러 소스의 데이터를 구독한 다음, Google Cloud Dataflow를 사용하여 데이터를 실시간으로 파악할 수 있습니다.
이 실습에서는 트래픽 센서 데이터를 Pub/Sub 주제로 시뮬레이션한 후, Dataflow 파이프라인으로 처리하고, 마지막으로 추가 분석을 위해 BigQuery 테이블로 내보냅니다.
참고: 이 문서를 작성할 당시에는 Dataflow Python SDK에서 스트리밍 파이프라인을 사용할 수 없었습니다. 따라서 스트리밍 실습이 Java로 작성되었습니다.
목표
이 실습에서는 다음 작업을 수행합니다.
Pub/Sub 주제 및 구독 만들기
Pub/Sub로 트래픽 센서 데이터 시뮬레이션
설정
각 실습에서는 정해진 기간 동안 새 Google Cloud 프로젝트와 리소스 집합이 무료로 제공됩니다.
시크릿 창을 사용하여 Qwiklabs에 로그인합니다.
실습 사용 가능 시간(예: 1:15:00)을 참고하여 해당 시간 내에 완료합니다.
일시중지 기능은 없습니다. 필요한 경우 다시 시작할 수 있지만 처음부터 시작해야 합니다.
준비가 되면 실습 시작을 클릭합니다.
실습 사용자 인증 정보(사용자 이름 및 비밀번호)를 기록해 두세요. Google Cloud Console에 로그인합니다.
Google Console 열기를 클릭합니다.
다른 계정 사용을 클릭한 다음, 안내 메시지에 이 실습에 대한 사용자 인증 정보를 복사하여 붙여넣습니다.
다른 사용자 인증 정보를 사용하는 경우 오류가 발생하거나 요금이 부과됩니다.
약관에 동의하고 리소스 복구 페이지를 건너뜁니다.
작업 1. 준비
학습용 VM에서 센서 시뮬레이터를 실행해야 합니다. 이 환경에는 파일이 여러 개 포함되어 있으며, 환경의 일부를 설정해야 합니다.
SSH 터미널을 열고 학습용 VM에 연결하기
콘솔의 탐색 메뉴()에서 Compute Engine > VM 인스턴스를 클릭합니다.
training-vm 인스턴스가 있는 줄을 찾습니다.
맨 오른쪽에 있는 연결에서 SSH를 클릭하여 터미널 창을 엽니다.
이 실습에서는 training-vm에 CLI 명령어를 입력합니다.
초기화가 완료되었는지 확인하기
training-vm이 백그라운드에서 몇 가지 소프트웨어를 설치합니다. 새 디렉터리의 내용을 검토하여 설정이 완료되었는지 확인합니다.
ls /training
나열(ls) 명령어 결과가 아래 이미지와 같이 표시되면 설정이 완료된 것입니다. 전체 목록이 표시되지 않는 경우 몇 분 정도 기다린 후 다시 시도하세요. 참고: 모든 백그라운드 작업이 완료되려면 2~3분 정도 걸립니다.
이 명령어를 사용하면 Pub/Sub 메시지를 통해 기록된 센서 데이터를 보내 센서 데이터를 시뮬레이션할 수 있습니다. 스크립트는 센서 데이터의 원래 시간을 추출하고 각 메시지를 보내는 사이에 일시중지함으로써 센서 데이터의 전송 속도를 사실적으로 시뮬레이션합니다. speedFactor 값은 메시지 사이의 시간을 비례식으로 변경합니다. 따라서 speedFactor의 값이 60이면 기록된 시간보다 '60배 더 빠르다'는 의미이며, 60초마다 약 1시간 분량의 데이터를 보냅니다.
이 터미널을 열어 두고 시뮬레이션을 실행 중인 상태로 둡니다.
작업 4. 메시지가 수신되었는지 확인하기
두 번째 SSH 터미널을 열고 학습용 VM에 연결하기
콘솔의 탐색 메뉴()에서 Compute Engine > VM 인스턴스를 클릭합니다.
training-vm 인스턴스가 있는 줄을 찾습니다.
맨 오른쪽에 있는 연결에서 SSH를 클릭하여 두 번째 터미널 창을 엽니다.
작업 중이던 디렉터리로 변경합니다.
cd ~/training-data-analyst/courses/streaming/publish
주제에 대한 구독을 만들고 가져오기를 수행하여 메시지가 수신되고 있는지 확인합니다(참고: 메시지가 표시되도록 하려면 'pull' 명령어를 두 번 이상 실행해야 할 수 있음).