# BigQuery 예상 비용

GA4 BigQuery 연동 후 발생하는 비용을 항목별로 풀어 봅니다 — 저장(단·장기), 쿼리, 적재, 자동화(Cloud Functions·Pub/Sub·Scheduled Queries) — 그리고 회사 이벤트량 기준 월 비용을 추정하는 방법까지.

- 카테고리: BigQuery
- 소요 시간: 약 9분
- 난이도: 입문
- 업데이트: 2026.05.18
- 원문: /wiki/playbook/bigquery-checklist/how-to-estimate-bigquery-costs

## 목차

- [비용 네 가지](#four)
- [저장 비용](#storage)
- [쿼리 비용](#query)
- [적재 비용](#ingest)
- [자동화 부수 비용](#automation)
- [월 이벤트량별 예상 청구액](#case)
- [언제 비용이 본격적으로 발생하나](#when-grow)
- [자주 묻는 질문](#faq)

BigQuery 연동을 켜기 전, 가장 자주 받는 질문은 “**그래서 한 달에 얼마 나오나요? **”입니다. 이 글은 비용이 발생하는 항목을 모두 풀어 설명하고, **Hurdlers가 실제로 운영 중인 광고주 프로젝트들의 측정 데이터**를 기준으로 “월 이벤트량이 이 정도면 한 달에 얼마”라는 **구간별 추정표**를 정리합니다.

가격은 Google이 공시하는 표준 가격표 기준이며, 지역(region)에 따라 단가 차이가 있습니다. 이 글은 한국 고객에서 가장 자주 쓰는 두 지역 — **US 멀티 리전(us)**과 **서울(asia-northeast3)** — 을 함께 표시합니다.

## BigQuery 비용은 네 가지로 나뉩니다

먼저 큰 그림. GA4 연동을 켜고 BigQuery에서 분석할 때 발생하는 비용은 다음 네 가지가 전부입니다.

| 구분 | 무엇에 대한 비용 | 대략의 규모 |
| --- | --- | --- |
| **저장(Storage)** | BigQuery에 쌓인 데이터 용량 × 기간 | 가장 안정적·예측 가능 |
| **쿼리(Compute)** | SQL이 한 번 돌 때 스캔한 데이터 양 | 분석량에 따라 변동 |
| **적재(Ingestion)** | GA4 → BigQuery로 데이터가 들어올 때 | **무료** (Google이 부담) |
| **자동화 부수 비용** | Cloud Functions · Pub/Sub · Scheduled Queries 등 운영 인프라 | 대부분 ‘거의 0원’ |

요점은 — **저장과 쿼리, 두 가지가 비용의 90% 이상**을 차지한다는 점입니다. 나머지는 무료이거나 사실상 무료에 가깝습니다.

## 1단계. 저장 비용 — 단기와 장기로 자동 분리

BigQuery는 같은 데이터라도 **최근에 수정됐는지**에 따라 두 가지 단가가 적용됩니다. 이 분리는 자동입니다 — 우리가 신경 쓸 필요가 없습니다.

- **활성 저장(Active storage)** — 최근 **90일** 안에 한 번이라도 수정된 테이블에 적용되는 단가.
- **장기 저장(Long-term storage)** — 90일 동안 수정이 없으면 자동으로 전환됨. **단가가 절반**으로 떨어집니다.

GA4 BigQuery export는 “하루치 데이터가 들어 있는 `events_YYYYMMDD` 테이블이 매일 새로 생기고 다시 손대지 않는” 패턴이라, 90일이 지난 모든 일별 테이블은 자동으로 장기 저장 단가로 떨어집니다. 즉 시간이 지날수록 단가가 자연스럽게 낮아집니다.

### 저장 단가 (월, GB 기준)

활성 저장 · US 멀티 리전**$0.020 / GB**

활성 저장 · asia-northeast3 (서울)**$0.023 / GB**

장기 저장 · US 멀티 리전**$0.010 / GB**

장기 저장 · asia-northeast3 (서울)**$0.012 / GB**

매월 무료 한도**첫 10 GB**

참고로 BigQuery는 모든 데이터를 자동으로 압축해서 저장하기 때문에, 우리가 ‘넣은 용량’보다 실제 결제되는 용량은 보통 더 작습니다.

## 2단계. 쿼리 비용 — 스캔한 데이터 양으로 계산

BigQuery는 ‘**이번 쿼리가 읽어 본 데이터의 양(scanned bytes)**’으로 요금을 매깁니다. SQL이 반환한 결과 행 수가 아니라, 그 결과를 만들려고 읽어 들인 원본 데이터 양 기준입니다.

### On-demand 쿼리 단가

US 멀티 리전**$6.25 / TB 스캔**

asia-northeast3 (서울)**$7.50 / TB 스캔**

매월 무료 한도**첫 1 TB**

‘쿼리 한 번에 1 TB를 스캔한다’는 게 감이 잘 안 옵니다. 직관적으로 비교하면 — GA4 이벤트가 일 100만 건 정도라면 한 달 분 데이터가 압축 후 약 30 GB. 이 한 달치를 `SELECT *`로 전부 읽는 쿼리 한 번이 약 30 GB 스캔 = 0.03 TB ≈ $0.19. 이걸 하루 한 번 돌리면 한 달에 약 $5~6 정도가 됩니다.

그런데 보통은 ‘**날짜 범위와 컬럼을 좁혀서**’ 쿼리를 작성합니다. 한 번에 1일치만 / 필요한 두세 컬럼만 읽으면 스캔량이 100배 작아져, 같은 분석이 ‘월 0.05$’ 수준이 되기도 합니다. 비용을 좌우하는 건 **SQL을 어떻게 쓰는가**입니다(아래 ‘비용 줄이기’ 참고).

## 3단계. 적재 비용 — GA4 → BigQuery는 무료

가장 자주 받는 질문 — “GA4가 매일 BigQuery에 데이터를 보내면 그 적재(insert)에도 비용이 붙나요?” **아니요.** GA4 BigQuery export는 Google이 직접 운영하는 배치 적재라 우리에게 비용을 부과하지 않습니다.

참고로 ‘실시간 스트리밍 적재(Streaming Insert)’를 직접 호출하면 별도 단가($0.01 / 200 MB)가 붙지만, GA4 export는 일별 배치라 여기에 해당하지 않습니다.

## 4단계. 자동화 부수 비용 — 거의 0원

분석 운영을 정교화하면 보통 다음 도구를 함께 씁니다. 각각 무료 한도가 넉넉해서, GA4 운영 규모에서는 합쳐도 ‘월 몇 달러’ 수준을 넘기 어렵습니다.

### Scheduled Queries

트리거(스케줄링) 비용**없음**

실제 쿼리 비용**스캔량 × $6.25/TB**

우리가 만든 SQL을 매일/매시 자동으로 돌리는 기능. 트리거는 무료이고, 쿼리 비용만 평소처럼 정산됩니다.

### Cloud Functions (2세대)

호출 단가**$0.40 / 100만 호출**

매월 무료 한도**200만 호출**

CPU·메모리 시간**$0.0000025/GB·초 등 (소량은 무료 한도 안)**

‘새 events 테이블이 생기면 후속 처리를 한 번 돌리는’ 트리거를 두는 데 자주 씁니다. 하루 1~10회 호출이면 무료 한도를 한참 못 채웁니다.

### Pub/Sub

매월 무료 한도**10 GB**

초과 단가**$40 / TB**

파이프라인의 ‘신호 전달’ 역할(예: 적재 완료 알림 → 후속 함수). GA4 운영에서 흘리는 메시지는 보통 무료 한도 안.

## 월 이벤트량별 예상 청구액 — Hurdlers 운영 프로젝트 실측 기준

Hurdlers는 다양한 규모의 광고주를 운영하고 있어, 이 표는 ‘서로 다른 트래픽 규모의 실제 프로젝트들’에서 측정한 청구 추세를 일반화한 것입니다. 측정 환경의 공통 가정은 다음과 같습니다.

- 지역: **asia-northeast3(서울)** 기준 단가 적용
- 분석 운영 방식: GA4 raw 테이블 → **Looker Studio 시각화용 mart 테이블**을 매일 Scheduled Queries로 가공 → Looker는 작은 mart만 조회 (Hurdlers 표준 구조)
- 저장: BigQuery 기본 **logical billing** 단가, active 90일/이후 long-term 자동 전환 반영
- 1년 이상 누적된 상태 가정 (최초 가입 직후엔 이보다 낮음)

| 월 이벤트량 | 월 저장 | 월 쿼리 | 월 합계 (USD) | 한화 환산 |
| --- | --- | --- | --- | --- |
| **~ 100만** (소규모 D2C·런칭 직후) | $0 | $0 | $0 | 무료 한도 안 |
| **~ 500만** (중소 규모 커머스) | ~$1 | $0 | ~$1 | ~1,400원 |
| **~ 1,000만** (중견) | ~$5 | ~$5 | ~$10 | ~1.4만원 |
| **~ 3,000만** (대형 브랜드) | ~$30 | ~$30 | ~$60 | ~8.4만원 |
| **~ 5,000만** (1티어 광고주, 실측 데이터) | ~$95 | ~$75 | ~$170 | **~24만원** |
| **1억+** (초대형·앱+웹 동시) | ~$200 | ~$150 | ~$350 | ~49만원 |

‘1티어 광고주’ 행이 Hurdlers가 직접 측정한 실측 데이터입니다. 다른 행은 그 점을 기준으로 위·아래 규모로 비례 추정한 값입니다. ±30% 범위로 보면 됩니다.

### 저장 비용이 쿼리 비용보다 큰 이유

표를 보면 — 큰 광고주일수록 **저장이 쿼리보다 비싸지는** 추세가 보입니다. 처음에는 직관과 어긋나 보이지만, 이유는 단순합니다.

- **저장은 ‘누적’** — 한 번 적재된 데이터는 우리가 지우지 않는 한 매달 계속 청구됩니다. 1년이 지나면 누적량이 12배가 됩니다(90일 지난 분은 장기 저장 단가로 떨어지지만, 총량은 늘어남).
- **쿼리는 ‘운영 효율의 결과’** — mart로 한 번 구워 두면 Looker는 매번 그 작은 mart만 봅니다. 즉 ‘월 쿼리 비용’은 트래픽 자체가 아니라 분석 인프라 설계의 결과입니다.

실측 1티어 광고주의 30일 쿼리량은 약 **11 TB**(서울 region) — Looker 대시보드 일일 새로고침 + Scheduled Queries로 mart 매일 생성 + 분석가 ad-hoc 쿼리가 모두 포함된 숫자입니다. 만약 동일 트래픽 광고주가 ‘Looker가 raw 테이블을 직접 본다’ 구조였다면 같은 쿼리 비용이 **5~10배(월 $400~700)**로 뛸 수 있습니다.

## 언제 비용이 본격적으로 발생하나

위 추정표는 ‘제대로 설계된 분석 운영’ 기준입니다. 다음 세 가지 패턴 중 하나라도 빠지면 청구액이 표보다 빠르게 늘 수 있습니다.

- **1. Looker Studio가 GA4 raw 테이블을 직접 봄** — 차트 한 번 그릴 때마다 수억 행을 스캔. 사용자가 대시보드를 새로고침할 때마다 비용이 늘어남. ‘mart로 한 번 구워 두기’ 패턴이 핵심.
- **2. `_TABLE_SUFFIX` 미사용** — `events_*` 와일드카드만 쓰고 날짜 범위를 안 좁히면 전체 history(연 단위)를 매번 풀스캔. 한 번에 GB·TB 단위 청구.
- **3. `SELECT *` 습관** — 50개 컬럼이 들어 있는 events 테이블에서 5개만 쓰면 되는데 전부 읽으면 비용도 10배. 분석가 SQL 컨벤션으로 굳혀 두는 게 안전.

Hurdlers가 운영하는 광고주들은 위 세 가지를 모두 피하도록 셋업되어 있어, 위 표의 ‘월 합계’ 범위 안에서 안정적으로 운영됩니다. 비용 폭증 사례는 거의 다 ‘저장량이 늘어서’가 아니라 ‘**비효율 쿼리가 반복 실행돼서**’ 입니다.

## 자주 묻는 질문

### 새 GA4 속성을 BigQuery에 연결하기만 해도 비용이 발생하나요?

처음 한 달은 사실상 무료에 가깝습니다 — 매월 첫 10 GB 저장과 1 TB 쿼리가 무료라, 일 이벤트가 30만 건 미만이면 저장도 무료 한도 안에서 끝나고, 쿼리를 거의 안 돌리면 쿼리 비용도 $0입니다. 비용이 본격적으로 발생하는 건 데이터가 어느 정도 쌓이고, 분석가가 매일 SQL을 돌리기 시작한 시점부터입니다.

### BigQuery 비용 한도를 미리 걸어 둘 수 있나요?

네. **예산 알림(Budget alerts)**을 결제 페이지에서 설정해 두면 ‘월 $30 사용 시 메일 알림’ 같은 임계치를 받을 수 있고, 프로젝트 수준에서 **쿼리 max bytes billed** 옵션을 걸면 ‘이 쿼리는 N GB 이상 스캔하면 거부’가 가능합니다.

### 지역(region)은 무엇으로 잡는 게 좋나요?

일반적으론 **US 멀티 리전**이 가장 저렴하고 도구 호환성도 가장 넓습니다. 다만 데이터 거주 요건(개인정보 보호·금융권 등)이 있는 회사는 **asia-northeast3(서울)**을 선택합니다 — 단가가 약 15% 더 높지만 데이터가 국내에 머무릅니다. 한 번 정한 지역은 데이터셋 단위로 고정되므로, 처음 연결할 때 신중히 결정합니다.

### 샌드박스(BigQuery sandbox)는 어떤가요?

결제 정보 없이 시작하는 무료 모드입니다. 매월 10 GB 저장·1 TB 쿼리 한도까지는 동일하지만, **60일 후 데이터가 자동 만료**되고 일부 기능(예: Scheduled Queries, BI 도구 연동 일부)이 제한됩니다. 분석을 본격적으로 할 거면 결제 정보를 등록해 ‘유료 모드’로 전환하는 게 안전합니다 — 결제 정보가 있어도 무료 한도는 그대로 적용됩니다.

### 실제 비용 청구는 어디서 확인하나요?

Google Cloud 콘솔의 좌측 메뉴 → **결제(Billing)** → **보고서(Reports)** 에서 ‘BigQuery’ 서비스 필터로 항목별 비용을 볼 수 있습니다. 같은 결제 계정 아래 여러 프로젝트(여러 GA4 속성)가 있다면 프로젝트별로 분리해서 봅니다. 첫 한 달은 ‘무엇이 얼마였는지’를 한 번 살펴 두면 이후 추정이 훨씬 쉬워집니다.

## Navigation

- [전체 플레이북 Markdown sitemap](/wiki/playbook/sitemap.md)

### BigQuery

- [BigQuery](/wiki/playbook/bigquery-checklist)
- [BigQuery 온보딩](/wiki/playbook/bigquery-checklist/bigquery-onboarding-guide)
- [BigQuery 인증 설정](/wiki/playbook/bigquery-checklist/how-to-set-up-bigquery-authentication)
- [BigQuery 데이터셋·테이블 설계](/wiki/playbook/bigquery-checklist/bigquery-dataset-and-table-design-guide)
- [BigQuery 쿼리·비용 제어](/wiki/playbook/bigquery-checklist/bigquery-query-and-cost-control-guide)
- [BigQuery 쓰기·MERGE·CDC](/wiki/playbook/bigquery-checklist/bigquery-data-write-and-cdc-guide)
- [BigQuery 코드 예제 모음](/wiki/playbook/bigquery-checklist/bigquery-code-examples)
- [BigQuery로 들어오는 GA4 데이터](/wiki/playbook/bigquery-checklist/what-is-ga4-data-in-bigquery)
- [BigQuery Studio 인터페이스 이해하기](/wiki/playbook/bigquery-checklist/what-is-bigquery-studio-interface)
- [BigQuery 예상 비용](/wiki/playbook/bigquery-checklist/how-to-estimate-bigquery-costs) (현재 문서)
- [무료 버전(샌드박스) 해제해야 하는 이유](/wiki/playbook/bigquery-checklist/why-upgrade-from-bigquery-sandbox)
- [GA4 BigQuery 데이터를 왜 평탄화해야 하나](/wiki/playbook/bigquery-checklist/why-flatten-ga4-bigquery-data)
- [Log Router란?](/wiki/playbook/bigquery-checklist/what-is-log-router)
- [Pub/Sub이란?](/wiki/playbook/bigquery-checklist/what-is-pubsub)
- [Cloud Functions이란?](/wiki/playbook/bigquery-checklist/what-is-cloud-function-and-run)
- [GA4 export 시점에 예약 쿼리 자동 실행하기](/wiki/playbook/bigquery-checklist/how-to-trigger-scheduled-query-on-ga4-export)
- [테이블 정의서는 왜 필요한가](/wiki/playbook/bigquery-checklist/why-table-definition-doc)
- [Event_Flat 테이블 이해하기](/wiki/playbook/bigquery-checklist/what-is-event-flat-table)
- [Item_Performance 테이블 이해하기](/wiki/playbook/bigquery-checklist/what-is-item-performance-table)
