
시작하기 전에
- 실습에서는 정해진 기간 동안 Google Cloud 프로젝트와 리소스를 만듭니다.
- 실습에는 시간 제한이 있으며 일시중지 기능이 없습니다. 실습을 종료하면 처음부터 다시 시작해야 합니다.
- 화면 왼쪽 상단에서 실습 시작을 클릭하여 시작합니다.
Download a code repository
/ 5
Create a BigQuery Dataset
/ 5
Simulate traffic sensor data into Pub/Sub
/ 5
Launch Dataflow Pipeline
/ 5
Create an alert
/ 5
이 실습에서는 Dataflow를 사용하여 Google Cloud PubSub를 통해 제공되는 시뮬레이션된 트래픽 센서 데이터로부터 트래픽 이벤트를 수집하고, 작업 가능한 평균값으로 처리한 다음, 나중에 분석할 수 있도록 원시 데이터를 BigQuery에 저장합니다. Dataflow 파이프라인을 시작하고, 모니터링하고, 최적화하는 방법을 학습합니다.
이 실습에서는 다음 작업을 수행합니다.
각 실습에서는 정해진 기간 동안 새 Google Cloud 프로젝트와 리소스 집합이 무료로 제공됩니다.
시크릿 창을 사용하여 Qwiklabs에 로그인합니다.
실습 사용 가능 시간(예: 1:15:00
)을 참고하여 해당 시간 내에 완료합니다.
일시중지 기능은 없습니다. 필요한 경우 다시 시작할 수 있지만 처음부터 시작해야 합니다.
준비가 되면 실습 시작을 클릭합니다.
실습 사용자 인증 정보(사용자 이름 및 비밀번호)를 기록해 두세요. Google Cloud Console에 로그인합니다.
Google Console 열기를 클릭합니다.
다른 계정 사용을 클릭한 다음, 안내 메시지에 이 실습에 대한 사용자 인증 정보를 복사하여 붙여넣습니다.
다른 사용자 인증 정보를 사용하는 경우 오류가 발생하거나 요금이 부과됩니다.
약관에 동의하고 리소스 복구 페이지를 건너뜁니다.
Google Cloud에서 작업을 시작하기 전에 프로젝트가 Identity and Access Management(IAM) 내에서 올바른 권한을 보유하고 있는지 확인해야 합니다.
Google Cloud 콘솔의 탐색 메뉴()에서 IAM 및 관리자 > IAM을 선택합니다.
기본 컴퓨팅 서비스 계정 {project-number}-compute@developer.gserviceaccount.com
이 있고 editor
역할이 할당되어 있는지 확인하세요. 계정 프리픽스는 프로젝트 번호이며, 이 번호는 탐색 메뉴 > Cloud 개요 > 대시보드에서 확인할 수 있습니다.
editor
역할이 없는 경우 다음 단계에 따라 필요한 역할을 할당합니다.729328892908
)를 복사합니다.{project-number}
는 프로젝트 번호로 바꿉니다.여러분은 학습용 VM에서 센서 시뮬레이터를 실행하게 됩니다. 실습 1에서는 수동으로 Pub/Sub 구성요소를 설치했습니다. 이번 실습에서는 해당 프로세스 중 일부가 자동화되어 있습니다.
콘솔의 탐색 메뉴()에서 Compute Engine > VM 인스턴스를 클릭합니다.
training-vm 인스턴스가 있는 줄을 찾습니다.
맨 오른쪽에 있는 연결에서 SSH를 클릭하여 터미널 창을 엽니다.
이 실습에서는 training-vm에 CLI 명령어를 입력합니다.
training-vm이 백그라운드에서 몇 가지 소프트웨어를 설치합니다.
목록(ls) 명령어 결과가 아래 이미지와 같이 표시되면 설정이 완료된 것입니다. 전체 목록이 표시되지 않는 경우 몇 분 정도 기다린 후 다시 시도하세요.
이 스크립트는 DEVSHELL_PROJECT_ID
및 BUCKET
환경 변수를 설정합니다.
내 진행 상황 확인하기를 클릭하여 목표를 확인합니다.
Dataflow 파이프라인은 나중에 생성되어 BigQuery 데이터 세트에 있는 테이블에 기록됩니다.
Cloud Console의 BigQuery에 오신 것을 환영합니다라는 메시지 상자가 열립니다. 이 메시지 상자에서는 빠른 시작 가이드 링크 및 UI 업데이트 목록을 확인할 수 있습니다.
데이터 세트를 만들려면 프로젝트 ID 옆에 있는 작업 보기 아이콘을 클릭하고 데이터 세트 만들기를 선택합니다.
다음으로 데이터 세트 ID의 이름을 demos
로 지정하고 다른 옵션은 모두 기본값으로 둔 후 데이터 세트 만들기를 클릭합니다.
프로젝트 ID와 동일한 이름을 가진 버킷이 이미 존재할 것입니다.
콘솔의 탐색 메뉴()에서 Cloud Storage > 버킷을 클릭합니다.
다음 값을 확인합니다.
속성 |
값 (값 입력 또는 지정된 옵션 선택) |
이름 |
|
기본 스토리지 클래스 |
리전 |
위치 |
|
내 진행 상황 확인하기를 클릭하여 목표를 확인합니다.
이 명령어는 1시간 분량의 데이터를 1분 안에 보냅니다. 스크립트가 현재 터미널에서 계속 실행되도록 둡니다.
training-vm SSH 터미널의 오른쪽 상단에서 톱니바퀴 모양 버튼()을 클릭하고 드롭다운 메뉴에서 training-vm로의 새로운 연결을 선택합니다. 새 터미널 창이 열립니다.
새 터미널 세션에는 필수 환경 변수가 없습니다. 다음 명령을 실행하여 설정합니다.
새 training-vm SSH 터미널에서 다음을 입력합니다.
내 진행 상황 확인하기를 클릭하여 목표를 확인합니다.
네 번째 선택 가능한 인수는 options입니다. options 인수에 대한 내용은 이 실습의 뒷부분에서 설명하겠습니다.
프로젝트 ID |
|
버킷 이름 |
|
클래스 이름 |
|
options |
|
classname의 경우 4개의 Java 파일 중에서 선택할 수 있습니다. 각각 Pub/Sub에서 트래픽 데이터를 읽고 서로 다른 집계/계산을 실행합니다.
이 스크립트는 어떤 역할을 하나요?
파일을 닫고 계속합니다. 애플리케이션을 실행할 때 이 소스 코드를 참조하고 싶을 수 있습니다. 새 브라우저 탭을 열고 AverageSpeeds.java 파일을 GitHub에서 보면 액세스하기가 편합니다.
이 브라우저 탭은 열어 두세요. 이 실습의 나중 단계에서 소스 코드를 다시 참조하게 됩니다.
이 스크립트는 maven을 사용하여 Java로 Dataflow 스트리밍 파이프라인을 빌드합니다.
완료 시 다음과 유사한 결과가 출력됩니다.
이 Dataflow 파이프라인은 Pub/Sub 주제의 메시지를 읽고, 입력 메시지의 JSON을 파싱하며, 기본 출력을 하나 생성하고, BigQuery에 씁니다.
예:
./run_oncloud.sh $DEVSHELL_PROJECT_ID $BUCKET AverageSpeeds
명령어를 다시 실행합니다.파이프라인이 실행되면 탐색 메뉴()에서 Pub/Sub > 주제를 클릭합니다.
주제 이름 줄에서 sandiego 주제를 살펴봅니다.
탐색 메뉴()로 돌아가 Dataflow를 클릭하고 작업을 클릭합니다.
GitHub 브라우저 탭에 있는 AverageSpeeds.java 코드와 Dataflow 작업 페이지에 있는 파이프라인 그래프를 비교합니다.
그래프에서 GetMessages 파이프라인 단계를 찾은 다음 AverageSpeeds.java 파일에서 이에 해당하는 코드를 찾습니다. 이는 Pub/Sub 주제에서 읽는 파이프라인 단계입니다. 이 단계는 읽은 Pub/Sub 메시지에 해당하는 Strings 컬렉션을 만듭니다.
그래프에서 BySensor 및 AvgBySensor 파이프라인 단계를 찾은 다음 AverageSpeeds.java 파일에서 이에 해당하는 코드 스니펫을 찾습니다. BySensor는 기간 내의 모든 이벤트를 센서 ID별로 그룹화하고, AvgBySensor는 각 그룹의 평균 속도를 계산합니다.
그래프 및 코드에서 ToBQRow 파이프라인 단계를 찾습니다. 이 단계에서는 이전 단계에서 계산한 평균값과 차선 정보를 포함하는 '행'을 만듭니다.
파이프라인 그래프와 소스 코드 모두에서 BigQueryIO.Write를 찾습니다. 이 단계는 파이프라인에서 가져온 행을 BigQuery 테이블에 씁니다. WriteDisposition.WRITE_APPEND 쓰기 방식을 선택했기 때문에 새 레코드가 테이블에 추가됩니다.
BigQuery 웹 UI 탭으로 돌아간 다음, 브라우저를 새로고침합니다.
프로젝트 이름 및 생성한 데모 데이터 세트를 찾습니다. 데이터 세트 이름 demos 왼쪽에 작은 화살표가 활성화되고 이를 클릭하면 average_speeds 테이블이 표시됩니다.
BigQuery에 average_speeds 테이블이 나타날 때까지 몇 분 정도 걸립니다.
예:
내 진행 상황 확인하기를 클릭하여 목표를 확인합니다.
Dataflow 파이프라인을 모니터링하고 개선할 때는 파이프라인이 1초에 몇 개의 요소를 처리하는지, 시스템 지연이 어느 정도 발생하는지, 지금까지 얼마나 많은 데이터 요소를 처리했는지 알아내는 작업을 공통적으로 수행합니다. 이 활동에서는 Cloud 콘솔에서 처리된 요소 및 시간에 대한 정보를 확인할 수 있는 위치를 학습합니다.
콘솔의 브라우저 탭으로 돌아갑니다. 탐색 메뉴()에서 Dataflow를 클릭하고 진행 상태를 모니터링할 작업을 클릭합니다(파이프라인 이름에 사용자 이름이 있음).
그래프에서 GetMessages 파이프라인 노드를 선택하고 오른쪽에 있는 단계 측정항목을 봅니다.
아래 쿼리는 10분 전 존재했던 average_speeds 테이블의 행 하위 집합을 반환합니다.
쿼리를 통해 행을 요청했지만 해당 테이블의 지정된 시점에 참조 포인트가 존재하지 않는 경우 다음과 같은 오류 메시지가 표시됩니다.
Invalid snapshot time 1633691170651 for Table PROJECT:DATASET.TABLE__
이 오류가 표시된다면 분 값을 낮춰 시간 이동 범위를 줄여보세요.
수신 Pub/Sub 메시지의 백로그를 처리하기 위해 Dataflow가 작업자 수를 조정하는 방법을 관찰합니다.
콘솔의 브라우저 탭으로 돌아갑니다. 탐색 메뉴()에서 Dataflow를 클릭하고 파이프라인 작업을 클릭합니다.
오른쪽의 작업 측정항목 패널을 살펴본 후 자동 확장 섹션을 검토합니다. Pub/Sub 주제의 메시지를 처리하는 데 현재 얼마나 많은 작업자가 사용되고 있나요?
기록 더보기를 클릭하고 파이프라인 실행 중 다양한 시점에서 얼마나 많은 작업자가 사용되었는지 검토합니다.
실습 초반에 시작된 트래픽 센서 시뮬레이터의 데이터를 통해 Pub/Sub 주제로 초당 수백 개의 메시지가 생성됩니다. 이로 인해 Dataflow에서 파이프라인의 시스템 지연을 최적의 수준으로 유지하기 위해 작업자 수를 늘립니다.
기록 더보기를 클릭합니다. 작업자 풀에서 Dataflow가 작업자 수를 어떻게 변경했는지 확인할 수 있습니다 상태 열에는 변경 이유가 설명되어 있습니다.
센서 데이터 스크립트가 실행 중인 training-vm SSH 터미널로 돌아갑니다.
정보: 게시 중이라는 메시지가 표시되면 스크립트가 아직 실행 중인 것입니다. Ctrl+C를 눌러 중지합니다. 그런 다음 명령어를 실행하여 스크립트를 다시 시작합니다.
새 SSH 터미널을 엽니다. 새 세션에는 새로운 할당량이 적용됩니다.
콘솔의 탐색 메뉴()에서 Compute Engine > VM 인스턴스를 클릭합니다.
training-vm 인스턴스가 있는 줄을 찾습니다.
맨 오른쪽에 있는 연결에서 SSH를 클릭하여 새 터미널 창을 엽니다.
training-vm SSH 터미널에서 다음을 입력하여 환경 변수를 만듭니다.
Cloud Monitoring과 Dataflow가 통합되어 사용자는 Cloud Monitoring 내에서 시스템 지연시간(스트리밍 작업의 경우), 작업 상태(실패, 성공), 요소 개수, 사용자 카운터 등의 Dataflow 작업 측정항목에 액세스할 수 있습니다.
몇 가지 일반적인 Dataflow 측정항목은 다음과 같습니다.
측정항목 | 특징 |
---|---|
작업 상태 | 30초마다와 업데이트 시 enum으로 보고되는 작업 상태(실패, 성공) |
경과 시간 | 30초마다 보고되는 작업 경과 시간(초 단위로 측정됨) |
시스템 지연시간 | 전체 파이프라인의 최대 지연(초 단위로 보고됨) |
현재 vCPU 개수 | 작업에 사용되는 가상 CPU의 현재 개수(값이 변경될 때마다 업데이트됨) |
예상 바이트 수 | PCollection당 처리되는 바이트 수 |
Cloud Monitoring은 Google Cloud에서 별도로 제공되는 서비스입니다. 따라서 실습 계정에서 서비스를 초기화하려면 몇 가지 설정 단계를 거쳐야 합니다.
이제 Qwiklabs GCP 프로젝트와 연결된 모니터링 작업 공간을 설정합니다. 다음 단계는 모니터링 무료 평가판이있는 새 계정을 만듭니다.
Google Cloud Platform 콘솔에서 탐색 메뉴 > 모니터링을 클릭하십시오.
작업 공간이 프로비저닝 될 때까지 기다리십시오.
모니터링 대시 보드가 열리면 작업 공간이 준비된 것입니다.
패널 왼쪽에서 측정항목 탐색기를 클릭합니다.
측정항목 탐색기의 리소스 및 측정항목에서 측정항목 선택을 클릭합니다.
Dataflow 작업 > 작업
을 선택합니다. 사용할 수 있는 Dataflow 관련 측정항목 목록이 표시됩니다. 데이터 워터마크 지연시간을 선택하고 적용을 클릭합니다.
Cloud Monitoring에서 페이지 오른쪽에 그래프를 그립니다.
측정항목에서 재설정을 클릭하여 데이터 워터마크 지연시간 측정항목을 삭제합니다. 새로운 Dataflow 측정항목인 시스템 지연시간을 선택합니다.
참고: Dataflow에서 Monitoring에 제공하는 측정항목은 Google Cloud 측정항목 문서에 나와 있습니다. 페이지에서 Dataflow를 검색하면 됩니다. 앞서 살펴본 측정항목은 파이프라인 성능에 관한 유용한 지표입니다.
데이터 워터마크 지연시간: 파이프라인에서 완전히 처리된 가장 최근 데이터 항목의 기간(이벤트 타임스탬프 이후 경과된 시간)입니다. 시스템 지연시간: 데이터 항목이 현재 처리를 기다리고 있는 최대 시간(초)입니다.특정 측정항목이 지정된 임곗값을 초과할 때(예: 이 실습용 스트리밍 파이프라인의 시스템 지연이 사전 정의된 값을 초과할 때) 알림을 받으려면 Monitoring의 알림 메커니즘을 사용하면 됩니다.
Cloud Monitoring에서 알림을 클릭합니다.
+ 정책 만들기를 클릭합니다.
측정항목 선택 드롭다운을 클릭합니다. 활성 리소스 및 측정항목만 표시를 사용 중지로 전환합니다.
필터에 리소스 및 측정항목 이름으로 Dataflow 작업을 입력하고 Dataflow 작업 > 작업을 클릭합니다. 시스템 지연시간
을 선택하고 적용을 클릭합니다.
트리거 구성을 클릭합니다.
임곗값 위치를 임곗값 초과
로, 임곗값을 5
로, 고급 옵션 > 재테스트 기간을 1분
으로 설정합니다. 다음을 클릭합니다.
알림 채널 페이지가 새 탭에서 열립니다.
페이지를 아래로 스크롤하고 이메일에 대해 새로 추가를 클릭합니다.
이메일 채널 만들기 대화상자에서 이메일 주소 필드에 실습 사용자 이름을 입력하고 표시 이름을 추가합니다.
저장을 클릭합니다.
이전의 알림 정책 만들기 탭으로 돌아갑니다.
알림 채널을 다시 클릭한 다음 새로고침 아이콘을 클릭하여 이전 단계에서 지정한 표시 이름을 가져옵니다.
이제 표시 이름을 선택하고 확인을 클릭합니다.
알림 이름을 MyAlertPolicy
로 설정합니다.
다음을 클릭합니다.
알림을 검토한 후 정책 만들기를 클릭합니다.
Cloud Monitoring 탭에서 알림 > 정책을 클릭합니다.
측정항목 임곗값 조건에 의해 알림이 트리거될 때마다 Monitoring에서 이슈 및 이에 상응하는 이벤트가 생성됩니다. 이메일, SMS, 무선 호출기 등의 알림 도구에서 알림 메커니즘을 지정한 경우에도 알림이 발송됩니다.
내 진행 상황 확인하기를 클릭하여 목표를 확인합니다.
Cloud Monitoring 대시보드를 사용하여 관련성이 가장 높은 Dataflow 차트가 포함된 대시보드를 쉽게 빌드할 수 있습니다.
왼쪽 창에서 대시보드를 클릭합니다.
+ 대시보드 만들기를 클릭합니다.
새 대시보드 이름에 My Dashboard
를 입력합니다.
위젯 추가, 선 차트를 차례로 클릭합니다.
리소스 및 측정항목 아래의 dropdown
상자를 클릭합니다.
Dataflow 작업 > 작업 > 시스템 지연시간
을 선택하고 적용을 클릭합니다.
필터 패널에서 + 필터 추가를 클릭합니다.
Label
필드에서 project_id를 선택한 다음 Value
필드에서
적용을 클릭합니다.
예:
원하는 경우 주제에 대한 Pub/Sub 게시율이나 구독 백로그(Dataflow 자동 확장 처리에 보내는 신호) 등 더 많은 차트를 대시보드에 추가할 수 있습니다.
실습을 완료하면 실습 종료를 클릭합니다. Google Cloud Skills Boost에서 사용된 리소스를 자동으로 삭제하고 계정을 지웁니다.
실습 경험을 평가할 수 있습니다. 해당하는 별표 수를 선택하고 의견을 입력한 후 제출을 클릭합니다.
별점의 의미는 다음과 같습니다.
의견을 제공하고 싶지 않다면 대화상자를 닫으면 됩니다.
의견이나 제안 또는 수정할 사항이 있다면 지원 탭을 사용하세요.
Copyright 2020 Google LLC All rights reserved. Google 및 Google 로고는 Google LLC의 상표입니다. 기타 모든 회사명 및 제품명은 해당 업체의 상표일 수 있습니다.
현재 이 콘텐츠를 이용할 수 없습니다
이용할 수 있게 되면 이메일로 알려드리겠습니다.
감사합니다
이용할 수 있게 되면 이메일로 알려드리겠습니다.
한 번에 실습 1개만 가능
모든 기존 실습을 종료하고 이 실습을 시작할지 확인하세요.