strong-consistency

1 개의 포스트

R2 로컬 업로드로 글로벌 (새 탭에서 열림)

Cloudflare는 전 세계 어디에서나 R2 객체 스토리지의 업로드 성능을 극대화할 수 있는 'Local Uploads' 기능을 오픈 베타로 출시했습니다. 이 기능은 클라이언트와 가장 가까운 위치에 데이터를 먼저 기록한 뒤 버킷이 위치한 지역으로 비동기 복제하는 방식을 통해, 지리적 거리로 인한 업로드 지연 시간을 최대 75%까지 단축합니다. 특히 데이터의 즉각적인 접근성과 강력한 일관성을 유지하면서도 글로벌 서비스의 쓰기 성능을 획기적으로 개선한 것이 핵심입니다. ### 전 세계 업로드 성능의 비약적 향상 * **TTLB(Time to Last Byte) 감축**: 내부 테스트 결과, 클라이언트와 버킷의 지역이 다를 때 업로드 완료까지 걸리는 시간이 최대 75% 감소했습니다. * **성능 벤치마크**: 북미 서부에서 아시아 태평양 지역 버킷으로 5MB 크기의 객체를 업로드할 때, 기존 약 2초 소요되던 시간이 Local Uploads 적용 후 약 500ms 수준으로 단축되었습니다. * **글로벌 사용자 경험 최적화**: 전 세계에 분산된 사용자로부터 미디어 콘텐츠를 수집하거나 IoT 장치의 로그 및 텔레메트리 데이터를 전송받는 애플리케이션에 이상적입니다. ### 데이터 처리 메커니즘과 거리 문제 해결 * **기존 방식의 한계**: 기존에는 사용자가 어디에 있든 데이터가 버킷이 지정된 지역의 스토리지까지 물리적으로 이동해야 했으므로, 거리가 멀수록 대기 시간과 불안정성이 증가했습니다. * **로컬 우선 쓰기**: 클라이언트가 버킷과 다른 지역에 있을 경우, R2 게이트웨이는 데이터를 클라이언트 인근 스토리지 인프라에 즉시 기록하고 메타데이터만 버킷 지역에 게시합니다. * **즉각적인 가용성**: 로컬에 쓰기가 완료되는 즉시 객체에 접근할 수 있으며, 배경에서 복제 작업이 진행되는 중에도 데이터 읽기가 가능해 대기 시간이 전혀 없습니다. ### 아키텍처 및 내부 구현 기술 * **Cloudflare Queues 활용**: 복제 작업(Replication Task)을 비동기적으로 처리하기 위해 Cloudflare Queues를 도입했습니다. 이를 통해 실패 시 재시도 처리와 부하 조절(Rate limiting)을 효율적으로 관리합니다. * **원자적 작업 처리**: 메타데이터 저장 시 객체 메타데이터 저장, 보류 중인 복제 키 생성, 복제 작업 마커 생성을 원자적(Atomic)으로 수행하여 데이터 무결성을 보장합니다. * **구성 요소**: 인증과 라우팅을 담당하는 'R2 Gateway Worker', 메타데이터를 관리하는 'Durable Object Metadata Service', 그리고 실제 암호화된 데이터를 저장하는 분산 스토리지 인프라가 협업합니다. ### 사용 환경 및 권장 사항 * **적용 방법**: Cloudflare 대시보드 설정이나 Wrangler 명령(`npx wrangler r2 bucket local-uploads enable [BUCKET]`)을 통해 기존 버킷에서 즉시 활성화할 수 있습니다. * **제한 사항**: 데이터 주권 준수가 필요한 지역 제한(Jurisdiction restriction, 예: EU 전용) 버킷에서는 이 기능을 사용할 수 없습니다. * **활용 팁**: 대시보드의 R2 버킷 메트릭 페이지에서 '지역별 요청 분포'를 확인하여, 읽기/쓰기 요청이 전 세계적으로 분산되어 있다면 Local Uploads를 활성화하는 것이 성능 최적화에 큰 도움이 됩니다.