본문 바로가기
CSP (Cloud Service Provider)/GCP

[GCP]BigQuery Slot의 종류 및 사용방법

by BTC_최규환 2022. 10. 25.

안녕하세요 MC에몽입니다.

 

이번주는 GCP에서 제공하는 완전관리형 Data warehouse 서비스인 BigQuery에서 사용되는 가상 CPU인 Slot의 종류 및 사용방법에 대해 알아보겠습니다.

 

 

1. BigQuery Slot 이란?

 

BigQuery는 완전관리형 서비스이기 때문에 사용자가 직접 인프라를 관리할 필요가 없습니다. BigQuery에서 작업시 사용되는 리소스는 Slot이라는 형태로 구현되어 있으며, 쿼리 크기와 복잡성에 따라 각 쿼리에 필요한 Slot 수를 자동으로 계산합니다.

 

 

 

2. Slot의 종류

 

Slot은 가격정책에 따라 2가지 종류로 나누어 집니다.

 

1) On-demand Pricing Slot

 

On-demand, 주문형 가격 책정 모델의 Slot은 쿼리로 스캔한 데이터에 용량에 대한 비용을 지불하는 방식입니다. 주문형 가격 책정을 사용하면 일반적으로 단일 프로젝트에서 모든 쿼리 간에 공유되는 최대 2,000개의 동시 슬롯에 액세스할 수 있습니다.

 

사용한 만큼만 쓸 수 있지만 사용 가능한 Slot의 수가 제한이 있으며 동시에 사용하는 쿼리가 많아 경합이 일어나는 경우, 작업에 적은 Slot을 사용하게 되어 속도가 느려질 수 있습니다.

 

2) Flat-rate Pricing Slot

 

Flat-rate, 정액제 가격 책정 모델의 Slot은 사용하고자 하는 Slot 수만큼을 예약하여 약정이 취소될 때까지 초 단위로 요금이 청구되는 방식입니다. 

고정적인 쿼리 작업이 있는 경우에 사용하며, 데이터 처리량이 아닌 Slot 수에 따른 요금이 청구됩니다. 

 

정액제 방식은 년/월/초 3가지 기간 약정을 사용 가능하며 약정 구매시 종료일까지는 해당 Slot을 사용하지 않아도 비용이 청구되고 취소가 불가하니 주의해야합니다.

※ 장기 약정 시 더 저렴한 비용으로 Slot을 구매할 수 있습니다.

 

또한 구매한 Slot은 조직 전체에 공유되기 때문에 각 프로젝트마다 사용할 약정을 각각 구매할 필요가 없습니다.

Slot을 구매한 프로젝트가 관리 프로젝트가 되며 GCP에서는 조직내에 1개의 관리 프로젝트만을 두어 조직의 BigQuery 예약 리소스를 관리 중앙화하기를 권고하고 있습니다.

※ 약정을 생성 후에는 다른 관리프로젝트로 이전할 수 없으니 주의하시기 바랍니다.

 

 

3. Slot 사용 방법

 

On-demand Pricing Slot의 경우, 별다른 구매 절차 없이 사용한만큼 비용이 청구됩니다.

 

하지만 Flat-rate Pricing Slot은 Slot 구매, 예약 생성, 할당 등의 과정이 필요합니다.

아래와 같이 사용할 수 있습니다.



1) 관리 프로젝트로 사용할 프로젝트에서 BigQuery Reservation API 활성화

 



2) Google Cloud Console > BigQuery >  Capacity Management로 이동

 



3) Slot 구매(이때 구매한 Slot은 리전 별로 고정되기 때문에 구매 시 지역 설정에 유의하시기 바랍니다.)

 

 

  • Flex : 약정이 활성화 된 후 60초 동안 유지해야 하며, 이후에는 초 단위로 비용이 청구됩니다.
  • Monthly : 약정이 활성화 된 후 30일 동안 유지해야 하며, 이후에는 초 단위로 비용이 청구됩니다.
  • Annual : 약정이 활성화 된 후 365일 동안 유지해야 하며, 이후에는 갱신 요금제(3가지 유형 중 선택)에 따라 비용이 청구됩니다.



4) Reservation 생성

 

 

구매한 Slot의 일부, 혹은 전부를 하나의 예약으로 묶어서 같이 사용하도록 합니다.

※ 이때 주의할 점은 각 프로젝트당 할당될 수 있는 예약은 단일 리전에서 1개로 제한 되어있습니다.

 

5) 생성된 Reservation을 assignment를 생성하여 특정 리소스 계층(프로젝트, 폴더, 조직)에 할당

 

 

반드시 할당된 Slot 만큼만을 해당 프로젝트 및 폴더에서 사용할 수 있는 것이 아닙니다.

조직 내의 다른 프로젝트나 폴더에 할당되었지만 사용 중이지 않았거나, 아예 할당이 되지 않은 Slot이라면 유휴 Slot(Idle slot)이란 개념으로 가져와 사용할 수 있습니다.

 

 

4. 유휴 Slot(Idle Slot)

 

BigQuery 유휴 Slot은 해당 조직 내에 예약 중인 Flat-rate pricing Slot 중 다른 프로젝트나 폴더에 할당되어 있지만 현재 할당된 리소스에서 사용하지 않는 Slot이나 할당 자체가 되어있지 않은 Slot을 의미합니다.

 

기본적으로 BigQuery에서 실행되는 쿼리는 다른 예약의 유휴 Slot을 자동으로 사용하게 됩니다.

 

설명을 위해 예를 들어 보겠습니다.

 

A프로젝트에 500 Slot을 할당하고 B프로젝트에 500 Slot을 할당한 조직을 가지고 있는 경우, 

B프로젝트가 BigQuery 작업이 없어 500 Slot을 사용하지 않는 경우, A프로젝트에서 작업중인 Query는 최대 1000 Slot을 사용할 수 있습니다.

 

유휴 Slot을 사용하지 않고 각 프로젝트 별로 할당된 Slot만 사용하도록 설정하고 싶은 경우에는 예약의 ignore_idle_slots을 true로 설정합니다.

이 때 A프로젝트의 예약은 유휴 슬롯을 받지 않기 때문에 할당된 Slot, 500만큼만 사용하게 됩니다.



오늘은 GCP BigQuery의 Slot의 종류 및 사용방법에 대해 알아 보았습니다.

다음 시간에도 유익한 정보로 찾아오겠습니다.

 

See you next time!

 

참고문헌 : 

[1] https://cloud.google.com/bigquery/docs/slots
[2] https://cloud.google.com/bigquery/docs/reservations-intro?hl=ko#idle_slots


댓글