일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 상관관계
- integrated gradient
- airflow subdag
- BigQuery
- 유튜브 API
- GenericGBQException
- top_k
- subdag
- spark udf
- hadoop
- correlation
- XAI
- UDF
- TensorFlow
- login crawling
- grad-cam
- GCP
- 공분산
- Counterfactual Explanations
- gather_nd
- youtube data
- chatGPT
- flask
- Retry
- session 유지
- tensorflow text
- API
- Airflow
- API Gateway
- requests
- Today
- Total
데이터과학 삼학년
Cloud Scheduler로 Compute 인스턴스 예약 (feat. cloud function, cloud pub/sub) 본문
Cloud Scheduler로 Compute 인스턴스 예약 (feat. cloud function, cloud pub/sub)
Dan-k 2020. 10. 29. 13:25Cloud Scheduler 를 이용한 vm instance 관리
1. 개요
- 리소스 라벨을 사용해서 정기적으로 Compute Engine 인스턴스를 자동 시작 및 중지하기 위해 Cloud Scheduler 및 Cloud Functions를 사용하는 방법
- 고성능의 vm을 업무시간에 맞춰 자동으로 on / off 함으로써 비용 감소
- 주말 자동 off
2. 프로세스
- Cloud function을 이용한 vm on off 함수 작성 → Cloud scheduler를 이용한 실행 (pub/sub 이용)
- Compute Engine : 정기적으로 실행하려고 하는 Compute Engine 인스턴스
- Cloud Functions : 예약하려는 인스턴스를 시작하고 중지하는 함수
- Pub/Sub : 시작 및 중지 이벤트마다 전송되거나 수신되는 메시지
- Cloud Scheduler : 정해진 일정에 따라 호출을 실행하여 인스턴스를 시작하거나 중지하는 작업
- 프로세스 도식화
3. 적용 방법
1. VM 설정
- cloud function을 적용할 대상 vm 정보를 입력하는 단계
- vm llabel에 key:value 형식을 넣음
2. Cloud Function
1. VM 설정
- cloud function을 적용할 대상 vm 정보를 입력하는 단계
- vm label에 key:value 형식을 넣음
2. Cloud Function -> 실행함수 및 cloud pub/sub topic 생성
1. cloud function을 실행 시킬때 topic으로 접근
- vm on / off 함수를 cloud function에 작성함
- cloud pub/sub을 이용해 topic 생성 (Node.js 10)
- pub/sub function 작성 → python,GO, Node js 작성 가능
- 생성된 cloud functions
3. Cloud Scheduler
1. schedule 빈도는 crontab 형식으로 설정
2. 실행시킬 cloud function은 topic(주제)에 기재
3. payload에 적용할 vm 정보 기입
1.pub/sub을 호출하는 cloud scheduler 작업 설정
- topic 및 payload 입력
- payload 정보에 vm 정보 기입 (존, label 등)
2. cloud scheduler on / off 등록
- 고성능의 VM을 on/off schedule로 효과적으로 관리 가능
4. 적용
- 적용하고자하는 VM의 zone, label 정보를 payload에 넘김
- cloud function에서 즉각 테스트 하고 싶다면 base64 encoding된 data 넣으면 됨
- 함수 인자에 존과 label을 json 형태 입력 {"zone":"us-central1-a", "label":"env=tf22"}
- 실험을 위한 입력은 base64 encoding 된 값을 'data' 키로 넣어줘야함
- {"data":"eyJ6b25lIjoidXMtY2VudHJhbDEtYSIsICJsYWJlbCI6ImVudj10ZjIyIn0NCg=="}
- cloud scheduler을 사용하면 알아서 base64 인코딩함
- 다중의 vm을 동시에 처리하고 싶다면, vm별 label을 동일하게 맞추면 됨 (단, 존이 같아야함)
2개 vm이 모두 on 되고 있는 것을 확인할 수 있음
- label을 같게하여 실행한 형태
참조
Cloud Scheduler로 Compute 인스턴스 예약
'GCP' 카테고리의 다른 글
Bigquery procedure 를 이용하여 recursion 함수 만들기 (0) | 2021.04.17 |
---|---|
Bigquery Procedure 소개 (0) | 2021.04.08 |
[Bigquery client] BQ client를 이용하여 dataframe 의 array 데이터 빅쿼리에 올리기 (0) | 2020.08.28 |
GCP Dataflow를 이용한 텍스트 전처리 (feat. universal sentence encoder) (0) | 2020.08.19 |
Bigquery ML (0) | 2020.07.21 |