Claude Code が約 0.01 ドルと説明した Cloudflare R2 に 10 ドル以上かかった
ある日、Cloudflare から一通のメールが届きました。R2(Cloudflare のオブジェクトストレージ)の料金のアラートです。無料で使える範囲に収まっているつもりだったのでかなり焦りましたが、同時に見当もすぐにつきました。筋トレ動画の編集のために、1本 5〜8GB の素材を R2 に置き始めたばかりだったからです。
請求画面を開くと、R2 の欄は 10 ドル以上になっていました。編集は Claude Code(Anthropic のコーディング用 AI エージェント)に任せています。その Claude Code は「6GB を 3日置いて約 0.01 ドル」と説明していました。
原因は、バケットの既定が低頻度アクセスのままだったことです。低頻度アクセスは R2 の保存の種類(ストレージクラス)の 1つで、読むたびに読み出し料金がかかります。Standard を指定せずに上げた素材が低頻度アクセスで入り、SHA-256 の確認などの読み直しがすべて読み出し料金の対象になりました。直したのは、アップロードする側ではなくバケットの既定です。
管理画面が Standard で送るので、約 0.01 ドルで済むはずだった
素材は自宅で撮った筋トレ動画で、編集の仕組みは Claude Code に YouTube 動画編集を任せた に書きました。素材はふだん自作の管理画面から R2 に上げ、編集が終わったら Google Drive に写して R2 から消します。Claude Code は「管理画面は Standard で送る。最低保存期間なし、10GB まで無料」と説明していました。
Standard の指定は、管理画面がアップロードに付けるヘッダー x-amz-storage-class: STANDARD にしかありませんでした。バケットは低頻度アクセスを既定として作ってあり、作った理由の記録は無いものの、当時の「R2 にずっと置く」案に合わせたのだと思います。方針を「R2 は作業用、ずっと残すのは Drive」に変えたあとも、直したのは管理画面の指定だけで、バケットの既定は低頻度アクセスのままでした。R2 では、バケットの既定の保存の種類を設定すると、指定の無いアップロードはその種類で入ります。
R2 の分析 API(GraphQL の r2StorageAdaptiveGroups と r2OperationsAdaptiveGroups)で保存の種類別に見ると、素材がどちらの種類で入ったかは上げ方で分かれていました。
- 最初のテストで上げた 1本(6.1GB): 指定なし → 低頻度アクセス
- Mac から手作業で移した 5本(23.6GB): 指定なし → 低頻度アクセス
- 管理画面から送った本番の素材:
STANDARDを指定 → Standard
SHA-256 の確認などの読み直しが、8.1TB 分の読み出しとして数えられた
Claude Code が Standard について書いた「最低保存期間なし、10GB まで無料」は低頻度アクセスには当てはまらず、料金は次のとおりです(Cloudflare R2 の料金ページ、2026-10-07 時点)。
- 無料で使える量: 対象外
- 最低保存期間: 30日(早く消しても 30日分の保存料)
- 読み出し: 0.01 ドル/GB
低頻度アクセスで入った素材は、SHA-256 の確認などで 1つのファイルを何回かに分けて読み直していて、GetObject は最初のテストの日が 96回、Mac から移した日が 1,458回に上りました。分析では、その 1回の読み出しごとにファイル全体の大きさが読み出し量として数えられていて、合計は約 8.1TB(0.56TB と 7.5TB)でした。
分析と同じくファイル全体の大きさで数えて請求されていれば最大約 80 ドル、実際に転送した量なら 1 ドル未満の見込みです。請求の 10 ドル以上はその間に収まり、どちらの数え方で請求されたかはまだ確かめられていません。
直す先はバケットの既定、料金の説明は実際に入った種類を確かめるまで信じない
そこで、バケットの既定を Standard に変えました。私が OK を出し、Claude Code が Cloudflare API の Update Bucket を次のヘッダー付きで呼びました。
PATCH /r2/buckets/<名前>
cf-r2-storage-class: Standardこれで上げる側が指定を忘れても Standard で入ります。管理画面の指定だけに頼ったままだと、手作業で指定せずに上げた素材はまた低頻度アクセスで入ります。
Claude Code の料金の説明は、それらしく書かれていても信じすぎないほうがいいです。いまは、実際にその設定で入ったかを保存の種類別の分析の数字で確かめるまで信じないことにしています。
それでも確かめ漏れは起きるので、料金のアラートは設定しておいたほうがいいです。今回気づけたのも、Cloudflare の料金のアラートのメールが届いたからでした。