Cloudflare R2 마이그레이션 전략 (Migration Strategies)
Super Slurper와 Sippy를 조합하면 최소한의 다운타임으로 모든 객체를 효과적으로 마이그레이션할 수 있어요.
출처: 문서
본문
소스 버킷이 활발하게 읽히거나 쓰일 때
- Sippy를 활성화하고 애플리케이션에서 R2 버킷을 사용하기 시작해요.
- 애플리케이션이 객체를 요청할 때 이전 버킷에서 R2 버킷으로 객체를 온디맨드로 복사해요.
- 새 업로드는 R2 버킷으로 가요.
- Super Slurper로 일회성 마이그레이션을 실행해 나머지 객체를 R2 버킷으로 복사해요.
- Destination R2 bucket > **Overwrite files?**에서 "Skip existing"을 선택해요.
소스 버킷이 자주 읽히지 않을 때
- Super Slurper로 모든 객체를 R2 버킷으로 복사해요.
- Super Slurper가 복사할 객체 목록을 만든 뒤 업로드된 객체는 건너뛸 수 있다는 점에 유의해요.
- R2 버킷에서 Sippy를 활성화한 뒤 애플리케이션에서 R2 버킷을 사용하기 시작해요.
- 새 업로드는 R2 버킷으로 가요.
- Super Slurper가 객체를 복사하는 동안 업로드된 객체는 애플리케이션이 요청할 때 Sippy가 온디맨드로 복사해요.
Slurper 데이터 마이그레이션 성능 최적화하기
계정마다 언제든지 최대 3개의 Slurper 마이그레이션 작업을 동시에 실행할 수 있고, 각 작업은 초당 일정 수의 요청을 처리할 수 있어요.
전체 처리량과 안정성을 높이려면 prefix(또는 bucket subpath) 옵션을 사용해 마이그레이션을 더 작은 동시 작업으로 나누는 것을 권장해요.
마이그레이션 작업을 만들 때:
- Source bucket 단계로 이동해요.
- Define rules의 Bucket subpath에서 prefix로 데이터를 나눌 하위 경로를 지정해요.
- 데이터 마이그레이션 설정을 완료해요.
예를 들어 소스 버킷에 다음과 같은 객체가 있다고 해볼게요:
- photos
- 2024
- file1.jpg
- file2.jpg
- 2023
- file3.jpg
- 2019
- file4.jpg
- 2024
다음과 같은 prefix로 별도의 작업을 만들 수 있어요:
/photos/2024— 2024년 파일을 모두 마이그레이션/photos/202— 2023년과 2024년 파일을 모두 마이그레이션
각 prefix는 독립적인 마이그레이션 작업으로 실행되어 Slurper가 데이터를 병렬로 전송할 수 있어요. 이렇게 하면 전체 전송 속도가 빨라지고, 한 작업에서 오류가 나도 다른 작업이 중단되지 않아요.
더 알아보기 (Learn more)
- Super Slurper — 대량 데이터를 한 번에 옮기는 마이그레이션 도구
- Sippy — 요청 시점에 객체를 채우는 증분 마이그레이션