Cloudflare 부분 캐시, 대용량 파일 한도는 그대로다
Cloudflare가 대용량 파일의 필요한 구간만 원본에서 가져오는 기능을 전 요금제에 열었다. 동영상 탐색이 잦은 서비스라면 이 기능을 켜는 것만으로 원본에서 끌어오는 양이 줄어들까?

- Cloudflare는 대용량 파일의 필요한 범위를 원본에서 가져오는 기능을 전 요금제에 공개했다.
- Free·Pro·Business의 캐시 가능한 파일 한도는 512 MB이며, 부분 요청의 크기로 계산하지 않는다.
- Cache Rules에서 대상 트래픽에 기능을 켜고 원본의 부분 응답과 캐시 조건을 확인해야 한다.
파일 일부를 읽는데 원본에서 과하게 가져오는 문제
Cloudflare는 10월 23일 Origin Range Requests를 공개했다. 동영상 탐색이나 이어받기처럼 파일 일부를 요청하는 트래픽에 맞춰, 원본에서 가져올 범위와 이미 캐시된 데이터를 조합한다. 사용자가 직접 범위 크기를 조절할 필요는 없다.
Cloudflare에 따르면 새 구현을 적용한 R2의 p99 첫 바이트 응답시간은 약 절반으로 줄었다. 이 값은 회사가 발표한 R2 운영 결과다. 파일 전체 다운로드 시간이나 모든 사이트의 속도가 두 배 개선됐다는 의미가 아니다.
206 응답은 어떤 바이트를 받았는지 알려준다
HTTP Range 요청은 자원의 일부 바이트를 지정한다. 예를 들어 Range: bytes=0-1023은 처음 1,024바이트를 뜻한다. 서버가 부분 요청을 처리하면 206 Partial Content와 Content-Range로 응답 범위를 표시한다.
동영상 중간부터 재생하거나 중단된 다운로드를 이어받을 때 유용하다. 다만 요청에 Range가 있다는 사실만으로 부분 다운로드 성공을 판단할 수는 없다. Cloudflare의 응답 규칙에서도 정상 단일 범위, 처리할 수 없는 범위, 무시되는 헤더를 구분한다.
작게 나눠 요청해도 전체 파일 한도를 넘을 수 없다
설정 문서는 크기 제한이 요청 범위가 아닌 전체 객체에 적용된다고 명시한다. 전 요금제에 기능이 열렸다는 말과 모든 크기의 파일이 캐시된다는 말은 다르다.
| 요금제 | 캐시 가능한 전체 파일 크기 |
|---|---|
| Free·Pro·Business | 512 MB |
| Enterprise | 기본 5 GB, 증액은 별도 요청 |
이 표는 Cloudflare의 캐시 한도다. 업로드 용량 제한과는 별개다. 따라서 무료 요금제에서 수 GB 모델 파일을 작은 범위로 요청한다고 전체 파일의 캐시 제한을 우회하지는 못한다.
기능을 켜도 저장 조건은 별도로 충족해야 한다
대시보드의 Caching → Cache Rules에서 대상 트래픽에 Origin Range Requests를 On으로 설정한다. 현재 문서의 default 상태에서는 기본 활성화된 확장자가 없다. 기능 공개를 자동 적용으로 해석할 수 없다.
원본이 Range를 무시하고 200 OK로 전체 파일을 돌려주면 Cloudflare도 전체를 받아야 한다. 또한 이 설정은 캐시 불가능한 응답을 저장 가능하게 바꾸지 않으며 Cache Reserve는 지원하지 않는다.
GET 요청이 부분 전송 조건을 충족하더라도, 원본 응답을 확인한 결과 캐시에 저장할 수 없다면, Cloudflare는 범위 요청을 사용하면서 응답 바이트를 저장하지 않을 수 있다. 원본에서 일부만 가져오는 동작과 다음 요청을 위해 저장하는 동작을 구분해야 한다.
자주 묻는 질문
무료 요금제에서 2 GB 파일을 조각내 캐시할 수 있는가?
부분 요청 크기와 관계없이 전체 파일에 512 MB 한도가 적용된다.
원본이 200 OK를 보내면 항상 오류인가?
아니다. Range를 무시하고 전체 파일을 보낸 경우 Cloudflare는 그 응답을 사용할 수 있지만 전체 파일을 내려받아야 한다.
먼저 전체 파일 크기와 원본의 Range 응답을 확인해야 한다. 조건을 충족하면 원본에서 불필요하게 가져오는 데이터양을 줄일 수 있다.