클라우드/GCP

GCP 인스턴스 그룹 스케줄링 (Cloud Scheduler)

Fanic 2022. 10. 1. 03:32
반응형

GCP 인스턴스 그룹은 내장 스케줄링 기능을 통해 제어가 가능하다. 

하지만 비용문제로 VM 전부를 새벽시간 동안 내려두고 싶다는 의견을 받았고 아래 과정은 내가 생각해서 해본 방법이다. 이게 정답인 방법이 아닐 수 있음을 알린다.

 

먼저 첫번 째로 알아본게 자동 확장 모드를 ON/OFF 할 수 있고 OFF 상태에서는 VM이 확장되지 않고 분리? 상태로 보이게 된다. 그리고 resize를 통해 현재 인스턴스 그룹에 연결된 인스턴스 수?를 조절할 수 있다. 

 

내가 설정한 방법은 이렇다.

1. IAM 추가 및 설정 / or default service account 이용 

2. API 생성 

 - API 및 서비스 - 사용자 인증 정보 - 사용자 인증 정보 만들기 - API 키 

 

 

3. Cloud Scheduler 이용

 

1) 자동확장 중지    - 예를 들어 오전 1시부터 VM을 삭제 하고 싶다면  빈도에 0 1 * * *

실행 구성

대상 유형 : http

URL : https://compute.googleapis.com/compute/v1/projects/프로젝트명입력/regions/리전입력/autoscalers?autoscaler=인스턴스그룹명&key=에서생성한API키값입력%20

HTTP 메서드 : PATCH

 

HTTP 헤더

이름 Accept     값: application/json 

이름 Content-Type     값: application/json 

 

본문

{
  "autoscalingPolicy": {
    "mode": "OFF"
  }
}

 

서비스 계정 : default 계정 혹은 1번에서 추가한 계정

 

 

2) resize 크기 변경으로 올라와 있는 인스턴스 삭제 - 예를 들어 오전 1시부터 VM을 삭제 하고 싶다면  빈도에 0 1 * * *

실행 구성

대상 유형 : http

URL : https://compute.googleapis.com/compute/v1/projects/프로젝트명입력/regions/리전입력/autoscalers?autoscaler=인스턴스그룹명&key=2에서생성한API키값입력%20

URL : https://compute.googleapis.com/compute/v1/projects/프로젝트명입력/regions/리전입력/instanceGroupManagers/인스턴스그룹명입력/resize?size=0&key=2에서 생성한 API 키값입력

HTTP 메서드 :POST

 

HTTP 헤더

이름 Accept     값: application/json 

 

서비스 계정 : default 계정 혹은 1번에서 추가한 계정

 

 

3) 자동 확장 기능 활성화 

실행 구성

대상 유형 : http

URL : https://compute.googleapis.com/compute/v1/projects/프로젝트명입력/regions/리전입력/autoscalers?autoscaler=인스턴스그룹명&key=에서생성한API키값입력%20

HTTP 메서드 : PATCH

 

HTTP 헤더

이름 Accept     값: application/json 

이름 Content-Type     값: application/json 

 

본문

{
  "autoscalingPolicy": {
    "mode": "ON"
  }
}

 

서비스 계정 : default 계정 혹은 1번에서 추가한 계정

 

 

 

-------------------------------------------------------------------------------

예시 상황

매일 오전 1시부터 8시까지 VM 사용 중지를 하고 싶다

 

1) 2) 는 순차적으로 실행 빈도에 5분정도 텀을 줌

1) 빈도 : 0 1 * * *

2) 빈도 : 5 1 * * *

 

3)은 8시에 실행

3) 빈도 : 0 8 * * *

 

3을 실행하고나면 기존 인스턴스 그룹 설정 대로 최소 인스턴수 수에 맞춰 VM이 기동 됨

 

 

 

반응형