본문으로 바로가기 본문 바로가기
WIKI 기술 지식 베이스

Cloudflare R2 마이그레이션 전략 (Migration Strategies)

원문 보기 위키 갱신

Super Slurper와 Sippy를 조합하면 최소한의 다운타임으로 모든 객체를 효과적으로 마이그레이션할 수 있어요.

출처: 문서

본문

소스 버킷이 활발하게 읽히거나 쓰일 때

  1. Sippy를 활성화하고 애플리케이션에서 R2 버킷을 사용하기 시작해요.
    • 애플리케이션이 객체를 요청할 때 이전 버킷에서 R2 버킷으로 객체를 온디맨드로 복사해요.
    • 새 업로드는 R2 버킷으로 가요.
  2. Super Slurper로 일회성 마이그레이션을 실행해 나머지 객체를 R2 버킷으로 복사해요.
    • Destination R2 bucket > **Overwrite files?**에서 "Skip existing"을 선택해요.

소스 버킷이 자주 읽히지 않을 때

  1. Super Slurper로 모든 객체를 R2 버킷으로 복사해요.
    • Super Slurper가 복사할 객체 목록을 만든 뒤 업로드된 객체는 건너뛸 수 있다는 점에 유의해요.
  2. R2 버킷에서 Sippy를 활성화한 뒤 애플리케이션에서 R2 버킷을 사용하기 시작해요.
    • 새 업로드는 R2 버킷으로 가요.
    • Super Slurper가 객체를 복사하는 동안 업로드된 객체는 애플리케이션이 요청할 때 Sippy가 온디맨드로 복사해요.

Slurper 데이터 마이그레이션 성능 최적화하기

계정마다 언제든지 최대 3개의 Slurper 마이그레이션 작업을 동시에 실행할 수 있고, 각 작업은 초당 일정 수의 요청을 처리할 수 있어요.

전체 처리량과 안정성을 높이려면 prefix(또는 bucket subpath) 옵션을 사용해 마이그레이션을 더 작은 동시 작업으로 나누는 것을 권장해요.

마이그레이션 작업을 만들 때:

  1. Source bucket 단계로 이동해요.
  2. Define rules의 Bucket subpath에서 prefix로 데이터를 나눌 하위 경로를 지정해요.
  3. 데이터 마이그레이션 설정을 완료해요.

예를 들어 소스 버킷에 다음과 같은 객체가 있다고 해볼게요:

  • photos
    • 2024
      • file1.jpg
      • file2.jpg
    • 2023
      • file3.jpg
    • 2019
      • file4.jpg

다음과 같은 prefix로 별도의 작업을 만들 수 있어요:

  • /photos/2024 — 2024년 파일을 모두 마이그레이션
  • /photos/202 — 2023년과 2024년 파일을 모두 마이그레이션

각 prefix는 독립적인 마이그레이션 작업으로 실행되어 Slurper가 데이터를 병렬로 전송할 수 있어요. 이렇게 하면 전체 전송 속도가 빨라지고, 한 작업에서 오류가 나도 다른 작업이 중단되지 않아요.

더 알아보기 (Learn more)

  • Super Slurper — 대량 데이터를 한 번에 옮기는 마이그레이션 도구
  • Sippy — 요청 시점에 객체를 채우는 증분 마이그레이션