강
[GCP] Preemptible VM Instances 이해 본문
Preemptible 인스턴스란?
preemptible은 직역하자면 선점 가능한 이라는 뜻을 가지고 있다. Preemptible 인스턴스는 따라서 다른 사람이 리소스를 선점할 수 있는 인스턴스를 뜻한다. 예를 들어 내가 30분 동안 ResNet 모델을 training 해야하는데 중간에 GCP에서 내 VM의 위치(리전)과 근접한 곳에서 요청이 폭주하면 내가 사용하던 리소스를 중단시키고 그 곳에 배정해 줄 수 있다는 것이다. 이는 AWS의 Spot 인스턴스와 매우 유사하다.
그렇다면 이렇게 불안정한 인스턴스를 왜 사용할까? 바로 저렴하기 때문이다.
위의 요금표는 GCP 인스턴스 중 TPU에 대한 요금을 나타낸다.
TPU의 경우 일반적인 v2 인스턴스의 경우 시간당 4.5달러를 요구하는 반면 Preemptible 인스턴스에서는 시간당 1.35달러로 약 70% 이상 할인을 해준다. 이정도의 할인폭이면 불안정함을 인지하고도 사용할만하지 않은가?
Preemption process
사용하던 인스턴스의 자원이 중지되는 순서는 다음과 같다
- GCP는 처리 되기 30초전에 해당 사용자에게 통지를 하여 사용자가 진행중이던 소프트웨어 작업을 중지, 백업할 수 있도록 요청함
- 30초 후에도 인스턴스가 중지되지 않았다면 해당 인스턴스 운영체제에 물리적으로 전원을 끊는 요청을 보냄
- 컴퓨팅 엔진이 인스턴스를 종료 상태로 전환
활용 방안
이러한 특성이 있는 Preemption 인스턴스를 활용하려면 작업에 활용되는 데이터들을 클라우드 스토리지 등에 미리 백업 해두거나 30초 알람이 왔을 때 백업할 수 있는 스크립트를 통해 단점을 보완할 수 있을 것이다. 또한 Preemptible 인스턴스가 종료될 것 같다면, 바로 새로운 Preemptible 인스턴스를 켜고 작업중이던 데이터를 옮겨 작업을 이어나가거나 온디맨드 인스턴스로 바꾸어가는 워크로드도 생각해 볼 수 있다.
가격적으로 너무나 매력이 있는 인스턴스 타입이기 때문에 이를 활용한 시스템이 분명히 나올 것 같다. 이러한 인스턴스의 종류가 있다는 것을 알아두면 추후에 활용해볼 여지가 있기 때문에 블로그에 정리해둔다.
참고
'GCP' 카테고리의 다른 글
[GCP] Google Cloud Storage에 용량이 큰 파일 업로드 (0) | 2021.11.06 |
---|---|
[GCP] Cloud Storage Bucket 파일,폴더 업로드(upload), 다운로드(download) (0) | 2021.10.12 |
[GCP] API not enabled on project 에러 해결 (0) | 2021.10.11 |
[GCP] 프로젝트(project) 생성(create) 및 삭제 (delete) (0) | 2021.10.11 |
[GCP] gcloud 초기 설정 (2) | 2021.10.05 |