BigQuery 예약

김민형·2022년 9월 28일
1

GCP - Data

목록 보기
6/44

슬롯

먼저 예약을 말하기 전에 슬롯이라는 개념부터 알아야 한다.
슬롯은 SQL 쿼리를 실행하기 위해 BigQuery에 사용되는 가상 CPU.

예약은 바로 빅쿼리를 쓸 때 이 슬롯 용량을 구매해서 쓰는 것을 말한다.

쿼리는 해당 용량 범위 내에서 실행되며, 일반적으로 슬롯을 더 많이 구매하면 동시 쿼리를 더 많이 실행할 수 있으며 복잡한 쿼리가 더욱 빠르게 실행된다.

예를 들어 2,000개의 BigQuery 슬롯을 구매하면 집계 내의 쿼리가 언제든 2,000개 이하의 가상 CPU만 사용하도록 제한된다. 삭제할 때까지 이 용량이 제공되며 슬롯 2,000개에 대한 비용이 청구

하지만 쿼리가 현재 사용 가능한 슬롯보다 더 많은 슬롯을 요청하면?
-> 큐에 저장해놓는다. 슬롯이 사용 가능해질 때까지 대기하고, 쿼리 실행이 진행되면서 슬롯이 확보되면 큐에 추가됐던 작업들이 자동으로 실행된다.

때문에 무리 많은 슬롯이라도 요청할 수 있다.
요청된 슬롯 수는 구매한 용량과는 관련 없으며, 단지 해당 스테이지에 대해 빅쿼리가 결정한 가장 최적의 동시 처리 계수를 나타내는 것이다.

아래 사진은 1000개만 사용 가능하지만 쿼리 스테이지에서 2000개의 슬롯을 요청한 경우이다.

쿼리 요구가 예약된 슬롯을 초과해도 추가 슬롯에 대한 비용은 청구되지 않으며, 추가 주문형 요금에 대해서도 비용이 청구되지 않는다.

약정

용량 약정은 특정 기간만큼 빅쿼리 슬롯을 구입하는 것을 말한다.

  • 연간 약정
    365일 약정. 365일 후 약정 요금제를 갱신할지 또는 다른 유형으로 전환할지 선택할 수 있다.
    가격표

  • 월간 약정
    장기 약정의 최소 단위로 30일 약정. 30일 후에는 언제든지 요금제를 삭제할 수 있다.
    가격표

  • 가변 슬롯(단기 약정)
    60초 약정. 60초 후에 언제든지 삭제할 수 있다.
    가변 슬롯은 장기 약정을 구입하기 전 정액제 청구의 워크로드 성능을 테스트하기에 좋다. 또한 순환성 또는 계절성 요구를 처리하거나 세무 처리 기간 등 과부하가 발생하는 경우에 유용하다.
    가격표

예약

빅쿼리에는 두 가지 가격정책 모델이 있다.

가격정책 모델

  • 1. 주문형 가격 정책
    기본적으로 주문형 가격 정책이고, 쿼리를 하는 만큼 비용이 나가는 것을 말한다.

  • 2. 정액제 가격 정책
    예약이란 바로 이 가격 정책을 선택했을 시 해당되는 것이며, 빅쿼리 슬롯 단위로 약정을 구매하여 구매한 만큼의 쿼리성능이 보장되는 것을 말한다.
    정액제를 선택하는 경우 고려해야 할 사항들이 있다.

    • 비용
      월간 분석 비용 지출은 최소 빅쿼리 정액제 약정(현재 기준 월간 100슬롯) 수준으로 설정하는 것이 좋다.
    • 효율성
      쿼리당 비용을 지불하기 때문에 효율성이 중요한 경우 주문형이 권장된다.
    • 예측 가능성
      정액제를 선택하면 월간 정액 요금을 지불하기 때문에 월간 비용을 예측할 수 있다.
    • 리소스
      정액제와 주문형 결제 모델은 용량 제공 방식이 다르다.

두 가격정책 모델 중 아래 그림과 같이 기업의 워크로드를 고려하여 알맞은 모델을 선택하면 된다.

예약 사용
구매한 슬롯을 사용하려면 프로젝트에 할당해야 한다.

예를 들어 프로덕션 워크로드용으로 prod라는 이름의 예약을 만들고 테스트용으로 test라는 별도의 예약을 만든다고 가정.
이렇게 하면 테스트 작업이 프로덕션 워크로드에 필요한 리소스를 경합하지 않는다.
아런식으로 조직 내 여러 부서에 대해 예약을 만들 수 있다.
(슬롯을 구매하면 default라는 예약이 자동으로 생성된다.)

슬롯은 프로젝트에서 구매가 가능하고 구매한 슬롯을 상위의 폴더, 조직에 공유할 수가 있는데 이때 슬롯을 구매할 때는 물론이고 상위조직에 공유할 때 프로젝트 Owner 권한과 별개로 BigQuery Admin과 BigQuery Resource Admin 권한이 필요하다.
그리고 하위에 프로젝트들이 총 슬롯을 알아서 나눠쓰는데 한 프로젝트가 해당 슬롯만큼을 전부를 쓸 수도 있다.
또한 조직에 슬롯을 공유하더라도 그 하위에 있는 모든 프로젝트들이 무조건적으로 해당 슬롯만큼을 나눠써야되는 것은 아니다. 'None 할당'을 통해 그 조직에 속해있어도 원하면 온디맨드로 쓸 수 있다.

예약의 이점

  • 예측 가능성
    정액제 가격 책정에서는 비용이 일정하고 예측 가능하다. 때문에 지출액을 미리 알 수 있다는 장점이 있다.

  • 유연성
    용량을 선택할 수 있고, 두 청구 모델을 조합할 수도 있다.
    예를 들어 일부 워크로드를 주문형 가격 책정으로 실행하고 다른 워크로드는 정액제 가격 책정으로 실행할 수 있는 것.
    월간 또는 연간 최소 약정을 구매한 경우 빅쿼리에서는 할인된 가격으로 정액제를 제공한다.

  • 워크로드 관리
    슬롯을 구매한 후 이를 워크로드에 할당할 수 있다. 특정 프로젝트에 할당하게 되면 워크로드에 사용할 수 있는 해당 프로젝트 전용 빅쿼리 연산 리소스가 지정되는 것.
    동시에, 할당된 슬롯이 워크로드에 모두 사용되지 않으면, 사용되지 않은 슬롯이 다른 워크로드에 자동으로 공유된다.

  • 중앙화된 구매
    조직 전체에 대해 슬롯을 구매하고 할당할 수 있다.
    빅쿼리를 사용하는 각 프로젝트에 대해 슬롯을 구매할 필요가 없는 것.

순서는 아래와 같다.

profile
Solutions Architect (rlaalsgud97@gmail.com)

0개의 댓글