데이터과학 삼학년

Cloud Scheduler로 Compute 인스턴스 예약 (feat. cloud function, cloud pub/sub) 본문

GCP

Cloud Scheduler로 Compute 인스턴스 예약 (feat. cloud function, cloud pub/sub)

Dan-k 2020. 10. 29. 13:25
반응형

Cloud Scheduler 를 이용한 vm instance 관리

 

1. 개요

- 리소스 라벨을 사용해서 정기적으로 Compute Engine 인스턴스를 자동 시작 및 중지하기 위해 Cloud Scheduler 및 Cloud Functions를 사용하는 방법

  1. 고성능의 vm을 업무시간에 맞춰 자동으로 on / off 함으로써 비용 감소
  2. 주말 자동 off

 

2. 프로세스

- Cloud function을 이용한 vm on off 함수 작성 → Cloud scheduler를 이용한 실행 (pub/sub 이용)

  1. Compute Engine : 정기적으로 실행하려고 하는 Compute Engine 인스턴스
  2. Cloud Functions : 예약하려는 인스턴스를 시작하고 중지하는 함수
  3. Pub/Sub : 시작 및 중지 이벤트마다 전송되거나 수신되는 메시지
  4. Cloud Scheduler : 정해진 일정에 따라 호출을 실행하여 인스턴스를 시작하거나 중지하는 작업

- 프로세스 도식화

 

3. 적용 방법

1. VM 설정

- cloud function을 적용할 대상 vm 정보를 입력하는 단계

      1. 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' 키로 넣어줘야함
    1. {"data":"eyJ6b25lIjoidXMtY2VudHJhbDEtYSIsICJsYWJlbCI6ImVudj10ZjIyIn0NCg=="} 
    2. cloud scheduler을 사용하면 알아서 base64 인코딩함

- 다중의 vm을 동시에 처리하고 싶다면, vm별 label을 동일하게 맞추면 됨 (단, 존이 같아야함)

    2개 vm이 모두 on 되고 있는 것을 확인할 수 있음

      1. label을 같게하여 실행한 형태

 

 

 

참조

Cloud Scheduler로 Compute 인스턴스 예약

https://cloud.google.com/scheduler/docs/start-and-stop-compute-engine-instances-on-a-schedule?hl=ko#console_3

 

Cloud Scheduler로 Compute 인스턴스 예약  |  Cloud Scheduler 문서  |  Google Cloud

애플리케이션 아키텍처 이 솔루션에는 다음과 같은 Google Cloud 구성요소가 포함됩니다. Compute Engine 인스턴스: 정기적으로 실행하려고 하는 Compute Engine 인스턴스 Cloud Functions 함수: 예약하려는 인

cloud.google.com

 

728x90
반응형
LIST
Comments