[GCP] Preemptible VM Instances 이해 본문

GCP

[GCP] Preemptible VM Instances 이해

최재강 2021. 10. 5. 17:50

Preemptible 인스턴스란?

preemptible은 직역하자면 선점 가능한 이라는 뜻을 가지고 있다. Preemptible 인스턴스는 따라서 다른 사람이 리소스를 선점할 수 있는 인스턴스를 뜻한다. 예를 들어 내가 30분 동안 ResNet 모델을 training 해야하는데 중간에 GCP에서 내 VM의 위치(리전)과 근접한 곳에서 요청이 폭주하면 내가 사용하던 리소스를 중단시키고 그 곳에 배정해 줄 수 있다는 것이다. 이는 AWS의 Spot 인스턴스와 매우 유사하다.

그렇다면 이렇게 불안정한 인스턴스를 왜 사용할까? 바로 저렴하기 때문이다.

Google TPU Price

위의 요금표는 GCP 인스턴스 중 TPU에 대한 요금을 나타낸다.

TPU의 경우 일반적인 v2 인스턴스의 경우 시간당 4.5달러를 요구하는 반면 Preemptible 인스턴스에서는 시간당 1.35달러로 약 70% 이상 할인을 해준다. 이정도의 할인폭이면 불안정함을 인지하고도 사용할만하지 않은가?

Preemption process

사용하던 인스턴스의 자원이 중지되는 순서는 다음과 같다

  1. GCP는 처리 되기 30초전에 해당 사용자에게 통지를 하여 사용자가 진행중이던 소프트웨어 작업을 중지, 백업할 수 있도록 요청함
  2. 30초 후에도 인스턴스가 중지되지 않았다면 해당 인스턴스 운영체제에 물리적으로 전원을 끊는 요청을 보냄
  3. 컴퓨팅 엔진이 인스턴스를 종료 상태로 전환

활용 방안

이러한 특성이 있는 Preemption 인스턴스를 활용하려면 작업에 활용되는 데이터들을 클라우드 스토리지 등에 미리 백업 해두거나 30초 알람이 왔을 때 백업할 수 있는 스크립트를 통해 단점을 보완할 수 있을 것이다. 또한 Preemptible 인스턴스가 종료될 것 같다면, 바로 새로운 Preemptible 인스턴스를 켜고 작업중이던 데이터를 옮겨 작업을 이어나가거나 온디맨드 인스턴스로 바꾸어가는 워크로드도 생각해 볼 수 있다.

가격적으로 너무나 매력이 있는 인스턴스 타입이기 때문에 이를 활용한 시스템이 분명히 나올 것 같다. 이러한 인스턴스의 종류가 있다는 것을 알아두면 추후에 활용해볼 여지가 있기 때문에 블로그에 정리해둔다.

 

참고

Comments