요약

  • R2 저빈도 접근 예시는 100만 회 읽기와 1,000GB 데이터 검색량을 함께 제시한다. 읽기당 평균 0.001GB라는 전제가 들어간 셈이다.
  • 매번 1GB 전체를 가져오면 검색 처리 비용만 10,000달러다. 다른 세 항목을 그대로 두면 합계는 10,019.90달러가 된다.

요금표의 합계에는 소수점 둘째 자리까지 있다. 그런데 그 정밀한 숫자를 만든 읽기 한 번의 크기는 없다. Cloudflare R2의 저빈도 접근 스토리지 예시에서 가장 비싼 입력값은 그렇게 생략돼 있다.

10월28일 확인한 공식 가격 문서는 평균 1GB인 객체 1,000개를 저장하고, 닷새 뒤 삭제하는 상황을 제시한다. 그 닷새 동안 객체마다 1,000번 읽는다. 작업 횟수 행은 이를 100만 회로 계산해 0.90달러를 붙인다. 데이터 검색 처리 행은 객체 1,000개에 1GB를 곱한다. 결과는 1,000GB, 비용은 10달러다.

앞 행에 있던 반복 횟수가 다음 행에는 없다. 예시는 읽기당 반환 바이트를 밝히지 않으며, 실제 작업의 청구 대상 검색량을 확인하면 그 작업의 비용을 판별할 수 있다.

29.90달러에 들어 있는 작은 읽기

공식 예시의 검색량 1,000GB를 읽기 100만 회로 나누면 한 번에 0.001GB다. 평균 객체 크기의 1,000분의 1에 해당한다. 요청을 많이 보냈다고 해서 전체 객체를 매번 받았다고 단정할 수는 없다. 가격 문서의 Class B 목록에는 HeadObject와 GetObject가 함께 들어 있다. 메타데이터를 확인하는 작업과 내용을 가져오는 작업을 구분해야 한다.

그러나 구매자가 예시를 전체 객체 읽기로 이해한다면 계산은 크게 달라진다. 객체 1,000개 × 객체당 1,000회 × 매회 1GB는 100만GB다. 저빈도 접근의 검색 처리 요율인 GB당 0.01달러를 적용하면 10,000달러다.

항목 문서에 적힌 예시 매회 1GB 전체를 읽는 조건
저장 10달러 10달러
Class A 작업 9달러 9달러
Class B 작업 0.90달러 0.90달러
검색 처리 10달러 10,000달러
총액 29.90달러 10,019.90달러

오른쪽은 다른 세 비용을 고정한 조건부 계산이다. 실제 고객 청구서가 아니다. 9,990달러의 차이는 요율 인상에서 나오지 않는다. 요청이 몇 바이트를 반환하는지 명시했기 때문에 생긴다. 같은 100만 회라는 횟수로도 처리 비용의 규모가 완전히 달라진다.

예산 담당자에게 필요한 것은 “읽기”라는 단어의 정의다. 저장한 총량을 한 번 곱해 만든 검색량은 같은 바이트를 여러 차례 가져오는 일을 설명하지 못한다. 요청 수와 저장 용량만 받아서 총액을 만드는 견적서는 그 사이의 행동을 누군가 대신 가정하고 있다.

무료 출구 옆의 유료 작업

R2는 Standard와 저빈도 접근 모두 인터넷으로 나가는 전송에 요금을 붙이지 않는다. 저빈도 접근에는 별도로 GB당 검색 처리 요금이 있다. 출구의 통행료가 0이어도 창고에서 물건을 꺼내는 비용표는 돌아간다.

이번 조건부 계산에서 그 차이는 유난히 선명하다. 100만 번의 Class B 작업은 0.90달러다. 매번 전체 객체를 가져오면 그 작업이 유발한 검색 처리는 10,000달러다. 요청 요금만 확대해 보는 예산은 가장 작은 항목을 열심히 분석하고 있을 수 있다.

저빈도라는 상품명도 접근을 억제해 주지는 않는다. 닷새 동안 같은 객체를 1,000번 읽는 애플리케이션은 그렇게 읽는다. 상품명이 약속하는 것은 요금 구조이고, 최종 금액을 만드는 것은 실제 동작이다. 저장 단가가 낮다는 이유로 선택한 계층에 반복 처리 작업이 붙으면, 처음 선택을 정당화했던 숫자가 달라진다.

삭제 버튼으로 없앨 수 없는 30일

예시의 저장료 10달러는 닷새만 썼다고 줄어들지 않는다. 공식 스토리지 계층 안내에 따르면 저빈도 접근의 최소 저장 기간은 30일이다. 더 일찍 삭제하거나 옮기거나 교체해도 최소 기간 비용이 적용된다. 삭제 작업 자체는 무료지만, 이미 선택한 최소 저장 기간의 계산은 별개다.

쓰기 1,000회에 9달러가 붙는 이유도 같은 가격 페이지에 있다. 사용량을 다음 청구 단위까지 올림하고, 저빈도 Class A 요율은 100만 회당 9달러다. 소량의 작업이라도 청구 단위의 문턱을 넘는다. 문서는 1,000,001회를 200만 회로 올리는 사례까지 제시한다.

Standard의 월간 무료 사용량은 저빈도 계층에 적용되지 않는다. 따라서 다른 예시의 무료 요청을 가져와 이 표의 작업 비용을 지울 수 없다. 옆에 놓인 Standard 예시는 한 달 보관을 사용하고, 저빈도 예시는 닷새 뒤 삭제를 사용한다. 서로 다른 보관 조건을 가진 총액을 상품 순위표처럼 비교할 수도 없다.

이 부분들은 규칙을 읽으면 계산이 맞아떨어진다. 저장 기간과 올림에는 설명이 있다. 반환 데이터량에는 아직 입력값이 필요하다. 그래서 예시를 구매 결정에 쓰려면 그 빈칸부터 채워야 한다.

총액보다 먼저 합의할 숫자

애플리케이션 담당자는 횟수를 제시하고, 재무 담당자는 저장 용량을 검색 요율에 곱할 수 있다. 각자의 곱셈은 정확해도 두 사람이 같은 작업을 계산했다고 보장되지는 않는다. 특히 반복 접근을 수행하는 기능이 나중에 추가되면, 저장을 선택한 팀과 비용을 만든 팀이 달라질 수 있다.

견적서에는 요청 종류, 횟수, 청구 대상 검색GB가 같은 작업 구간에 묶여 있어야 한다. 이것을 갖추면 29.90달러라는 숫자를 지키기 위해 무엇이 필요한지도 보인다. 예시가 암묵적으로 사용하는 작은 읽기를 실제 작업이 하는지, 훨씬 큰 내용을 가져오는지 비교할 수 있다.

Cloudflare가 공개한 요율은 계산을 가능하게 한다. 구매자가 공급해야 하는 나머지 숫자는 읽기 한 번의 내용이다. 그 숫자가 없는 합계는 정밀하게 인쇄된 가정이다.