Data Engineering 과정 (in Qwiklab)
Building an IoT Analytics Pipeline on Google Cloud
Data Engineering
Building an IoT Analytics Pipeline on Google Cloud
첫번째 개요
(1) 관련 서비스 소개
ⓐ Cloud IoT Core
분산된 수많은 디바이스들로부터 수신한 데이터를 연결, 관리, 통합하는 완전 관리형 서비스
표준 MQTT(Message Queue Telemetry Transport) 프로토콜을 사용하는 IoT 디바이스를 구글 클라우드 데이터 서비스에 연결
* IoT(Internet of Things)
인터넷을 기반으로 모든 사물을 연결하여 정보를 상호 소통하는 지능형 기술 및 서비스
Device manager : 디바이스를 서비스에 등록, 디바이스 모니터링 및 구성
Protocol bridge : MQTT 프로토콜을 사용하는 디바이스를 구글 클라우드에 연결
ⓑ Cloud Pub/Sub
자체 내부 인프라를 기반으로 구축한 완전 관리형 메시징 시스템
ⓒ Dataflow
Apache Beam에서 사용 가능한 여러 옵션 중 하나로, 완전 관리형 파이프라인 러너
* Apache Beam
ETL, 배치 및 스트림 처리를 포함한 데이터 처리 파이프 라인을 정의하고 실행하기위한 오픈 소스 통합 프로그래밍 모델
ⓓ BigQuery
몇 초만에 대규모 데이터를 쿼리할 수 있는 관계형 클라우드 데이터베이스
ⓔ Cloud Storage
ⓕ VM(IoT Device)
(2) 실습 목표
Connect and manage MQTT-based devices using Cloud IoT Core (using simulated devices)
Ingest a stream of information from Cloud IoT Core using Cloud Pub/Sub
Process the IoT data using Cloud Dataflow
Analyze the IoT data using BigQuery
두번째 준비
(1) Enable APIs
실습 시 이용할 서비스들 간의 통신을 위해 APIs & Services 에서 아래의 서비스에 대한 API 활성화
Cloud IoT API
Cloud Pub/Sub API
Dataflow API
Dataflow API의 경우 필히 비활성화 후 다시 활성화 시킴으로써 재연결을 해줘야 함
재연결을 해주지 않으면 Dataflow가 생성이 안될 수도 있음
(2) Create a Cloud Pub/Sub topic
IoT 디바이스와 연결하고 이로부터 센싱 데이터 메시지를 수신하기 위해 Cloud Pub/Sub의 topic을 생성
permissions에서 cloud-iot@system.gserviceaccount.com을 Publisher role로 지정
(3) Create a BigQuery dataset
여러 IoT 디바이스로부터 수신한 센싱 데이터를 취합하고 저장
실습에서는 가상의 IoT 디바이스로부터 센싱한 시간, 데이터를 송신한 디바이스 정보, 센싱한 온도 데이터 이 세 가지 정보를 수신함
BigQuery에 이 세 정보를 수신하여 저장할 수 있도록 테이블의 스키마를 정의
(4) Create a cloud storage bucket
Cloud Dataflow 파이프라인의 작업이 진행되는 과정에서 임시로 데이터를 저장하기 위해 사용
실습뿐만 아니라 대부분 실제 IoT 디바이스도 글로벌하게 분포해있기 때문에 bucket의 location을 멀티 리전으로 지정해 줄 것
세번째 파이프라인 생성
(1) Set up a Cloud Dataflow Pipeline
Cloud Dataflow를 이용해 Cloud Pub/Sub가 IoT 디바이스로부터 수집한 센싱 데이터를 BigQuery의 테이블에 저장하는 파이프라인을 생성하고 실행
해당 파이프라인은 계속 동작하고 있는 상태로, IoT 디바이스가 센싱 데이터를 전송하면 생성한 파이프라인의 작업 과정을 거치게 됨
실습에서는 Cloud Dataflow에서 제공하는 IoT용 템플릿을 이용하여 해당 과정을 진행
네번째 IoT 디바이스
(1) Set up a Cloud Dataflow Pipeline
현재 IoT 디바이스가 없기 때문에 임의로 GCP에 인스턴스를 하나 생성하여 IoT 디바이스로 가정
이 인스턴스에서 실제 IoT 디바이스처럼 센싱 값을 전송할 수 있게 설정
센싱 값은 구글에서 미리 생성하여 Git에 업로드한 값을 이용
(2) Create a registry for IoT devices
IoT 디바이스에서 생성된 센싱 데이터를 전달할 엔드포인트를 지정
Cloud Pub/Sub에 생성한 topic에 해당 센싱 데이터를 전송
(3) Create a Cryptographic Keypair
IoT 디바이스를 Cloud IoT Core에 연결 시 보안을 강화하기 위해 암호화 키를 생성하고 적용
(4) Add simulated devices to the registry
IoT 디바이스를 Cloud IoT Core에 연결
(5) Run simulated devices
세팅된 IoT 디바이스를 작동
다섯번째 데이터 분석
(1) Analyze the Sensor Data Using BigQuery
BigQuery에서 수집된 센싱 데이터를 확인
추후 해당 데이터를 원하는 용도에 맞게 전처리하거나 분석
'CSP (Cloud Service Provider) > GCP' 카테고리의 다른 글
[Google Cloud Platform] GCP VPC(Virtual Private Cloud) 네트워크 (0) | 2022.05.09 |
---|---|
[GCP] Cloud DNS (0) | 2022.05.09 |
GCP에서 컨테이너화된 웹 애플리케이션 배포하기 (0) | 2022.05.04 |
[Google Cloud Platform] GCP 기본 개념 -2 (0) | 2022.04.29 |
[GCP] 인스턴스 그룹만들기 (0) | 2022.04.29 |
댓글