연관된 가이드
사전 준비 작업
현재 V1 API를 통해 사용량 템플릿을 생성할 수 없기 때문에 사용량 가격 플랜은 포탈에서 생성해야 합니다.
레코드와 쿼타
사용량 기록은 고객이 얼마의 유닛을 사용 했는지를 나타내는 ‘레코드’와 고객에게 할당된 최대 사용 유닛을 뜻하는 ‘쿼타’로 이루어져 있습니다. 레코드와 쿼타는 등록 시간과 증감 유닛수를 가지고 있는 시계열(Time series) 자료형입니다. 레코드와 쿼타의 변화량을 사용량 기록 API 를 통해 등록하면 스텝페이에서는 각 값의 시간에 따른 누적 합(accumulated sum)을 관리하며 요금 산정 및 사용량 제한에 사용됩니다. 아래 표는 쿼타-레코드 기록의 예시입니다.| 시간 | 쿼타 | 쿼타 누적 합 | 레코드 | 레코드 누적 합 |
|---|---|---|---|---|
| t0 | +5 | 5 | 0 | 0 |
| t1 | 0 | 5 | +2 | 2 |
| t3 | -2 | 3 | +1 | 3 |
| … | … | … | … | … |
- 레코드 누적 합은 쿼타 누적 합보다 항상 작거나 같아야합니다.
- 모든 쿼타를 다 채웠다면 추가 레코드를 기록하기 위해서는 반드시 쿼타를 증가시켜야 합니다.
- 쿼타는 선불 청구 방식에서는 필수값이지만 후불 청구 방식에서는 연동 시스템에 따라 사용하거나 기록하지 않을 수 있습니다.
- 반대로 후불 청구방식에서 레코드는 필수 요소이지만 쿼타는 선택적으로 사용 가능합니다.
- 쿼타를 지정하지 않은 후불 청구 방식의 경우 쿼타는 무한대로 간주됩니다.
계정수
사용량 기반 과금 플랜과 계정수 기반 과금 플랜은 모두 레코드와 쿼타에 기반해 결제해야 할 금액을 산정한다는 점에서 공통점이 있지만 그 동작 방식에서 몇가지 차이점이 있습니다.- 계정수 기반 과금 플랜은 스토리지 사용량, 등록된 계정수와 같이 한번 기록한 양이 삭제되기 전까지 지속되는 형태의 값에 따른 과금 모델을 만들 때 사용합니다.
- 계정수 기반 과금 플랜에서는 기록한 레코드 혹은 쿼타의 시간에 따른 증/감을 통해 구축된 그래프의 면적이 사용 유닛이 됩니다.
- 1 유닛이란 1 계정수를 한 주기의 전체 기간 동안 사용했을 때의 사용량입니다.
- 구독 주기의 중간에 쿼타-레코드의 증감이 있다면 그로 인해 생기는 직사각형의 가로 길이는 아래의 계산으로 산정됩니다.
(주기 종료까지 남은 기간) / (전체 주기) - 계정수 기반 과금 플랜의 레코드 누적 합은 시간에 따라 지속되는 양이므로 구독 갱신시에도 초기화되지 않습니다.
- 다음 주기의 레코드는 마지막으로 기록된 누적 합 부터 시작합니다.
청구 방식 (선불/후불 플랜)
사용량 기반 과금 플랜과 계정수 기반 과금 플랜 모두 선불 혹은 후불 청구 옵션을 사용할 수 있습니다. 하지만 청구 옵션에 따라 결제 금액을 산정하는 방식에 차이점이 있습니다.선불 플랜
사용량/계정수 기반 선불 과금 플랜은 구독 주기 시작 시점에서 고객이 사용할 유닛을 미리 정하고 해당 금액에 대해 선 과금하는 방식입니다. 즉, 선불 청구 방식에서는 쿼타-레코드 페어에서 쿼타 기반으로 과금되며, 레코드는 미터링을 위해 선택적으로 사용할 수 있습니다.선불 플랜에서 쿼타를 추가하면 남은 구독 기간에 따라 추가된 양에 대한 결제 금액이 등록된 결제수단으로 즉시 결제됩니다. 쿼타를 감소하는 경우에는 구독 메모란에 환불 예정 금액이 표시되며, 감소분에 대해 환불이 필요한 경우에 사용할 수 있습니다.
후불 플랜
사용량/게정수 기반 후불 과금 플랜은 구독의 주기동안 고객의 사용량을 취합하여 주기 종료 시점에 후 청구하는 방식입니다. 따라서 후불 청구 방식에서는 레코드 기반으로 과금되며 쿼타는 미터링을 위해 선택적으로 사용됩니다.
사용량/계정수 API
| 기능 | Method | Endpoint |
|---|---|---|
| 사용량/계정 기록 | POST | /api/v1/usages |
| 사용량 정산 | GET | /v1/subscriptions//calculate |