BackBlaze B2에서 Digital Ocean Spaces로 이전

안녕하세요,

현재 이 상황에 대해 꽤 혼란스럽습니다. 업로드를 위해 BackBlaze B2 버킷을 사용 중입니다. (이미지 + 에셋) BunnyCDN을 함께 사용하고 있습니다. B2 Cloud Storage는 톰스톤(tombstone)을 지원하지 않습니다. 그래서 사용하지 않는 이미지와 스크립트가 많이 남아 있습니다. 이제 이 업로드된 파일들을 동일한 BunnyCDN 설정을 유지하면서 Digital Ocean Spaces로 마이그레이션하고, 오리지널 URL만 DO로 변경하려 합니다.

B2 Cloud Storage를 설정할 때 이 훌륭한 가이드를 참고했습니다. 이제 DO 버전을 적용하려고 합니다.


마이그레이션을 수행하는 가장 좋은 방법은 무엇인가요? 업로드된 파일이 약 10GB 정도 됩니다. B2에는 스냅샷 기능이 있지만 너무 느립니다. 콘솔 명령어 rake uploads:migrate_from_s3는 먼저 S3에서 모든 것을 다운로드한 후, 이미지 때문에 매우 느린 과정인 포스트 리베이킹(rebake)이 필요합니다. 이 과정을 거친 후에야 모든 것을 DO Spaces에 업로드할 수 있습니다. 맞습니까?

B2 Cloud Storage에서 스냅샷을 만든 후, 이를 수동으로 컴퓨터로 다운로드하여 모든 것을 DO Spaces에 업로드하면 어떻게 되나요? 이 과정 이후에 BunnyCDN 풀 존의 오리지널 URL을 DO Spaces로 변경하고 app.yml 파일을 수정한 후 재빌드(rebuild)합니다. 이렇게 하면 포스트 리베이킹이 필요하지 않은가요?

한 가지 더 질문이 있습니다… DO Spaces에 있는 사용하지 않는 파일이나 이미지는 어떻게 되나요? 시스템이 이 파일들을 인식하고 삭제할까요?

도와주셔서 감사합니다 :slight_smile:

가장 쉬운 방법은 콘솔에서 모든 S3 파일을 백업으로 다운로드하는 숨겨진 설정을 활성화하는 것입니다(여기서 검색하거나 소스에서 찾을 수 있습니다). 그 후 공백으로 변경하고, 백업을 복원한 뒤, 컨테이너를 다시 빌드하세요.

이미지를 다운로드하는 설정을 꺼두지 않으면 모든 업로드된 파일이 백업될 때마다 다운로드 및 업로드됩니다!

수년 동안 이 문제를 해결하려고 노력해 왔지만, 테스트가 계속 실패하고 있으며 이는 엣지 케이스 때문인 것 같습니다. 해당 방법이 작동하는지 알려주세요. 테스트 사이트로 복원하여 테스트해 볼 수 있습니다.

감사합니다! :slightly_smiling_face: 그러면 이 프로세스는 S3의 모든 내용도 백업하나요? 컴퓨터로 다운로드한 후 B2 클라우드 스토리지에 거대한 백업 파일이 생성되는 건가요? 그리고 복원하기 전에 app.yml 파일과 CDN을 DO Spaces를 가리키도록 변경하면, 파일이 DO Spaces로 복원되는 건가요?

하지만 백업 파일을 만들 때 app.yml 파일에는 올바른 위치로 복원할 수 있도록 DO Spaces 정보가 포함되어 있어야 하지 않나요? 아니면 백업 파일을 만든 후 백업 내부의 app.yml 파일을 수정할 수 있나요? :slightly_smiling_face:

아 맞다, 백업도 B2 클라우드 스토리지에 있다는 걸 깜빡했네요. 그냥 또 다른 버킷이니까요.

좋은 지적입니다. 로컬 백업을 수행하도록 변경해야 합니다.

이걸 발견해서, 클라우드에서 클라우드로 마이그레이션한 뒤 CDN과 app.yml 파일만 변경하면 어떻게 될지 궁금했어요. 이게 가능할까요? :slight_smile: 가능하다면, 이 과정에 대해 가장 단순하고 빠른 해결책이 될 것 같아요. BackBlaze도 지원한다고 하네요.

그렇게 하면 작동할 것 같고, CDN이 동일하다면 데이터베이스를 건드릴 필요가 없을 것 같습니다.

네, 같은 CDN을 사용하되 풀 존 원본 URL을 DO Spaces로 변경하면 됩니다. :slight_smile:

내일 먼저 시도해 볼 다른 방법을 하나 더 찾았습니다.

  1. 새 매개변수를 사용하여 사이트를 다시 구축하세요.
  2. aws s3 CLI를 사용하여 파일을 기존 저장소에서 새 저장소로 이동하세요.
  3. DbHelper.remap을 사용하여 기존 저장소 경로를 새 저장소 경로로 다시 매핑하세요.

Falco 씨, 감사합니다! 이걸 시도해 보겠습니다! :heart::slightly_smiling_face:

howto 채널에서 리맵(remap) 과정에 대한 정보를 찾았습니다.

이제 AWS S3 CLI 사용법을 구글링해 보겠습니다. 단계별 가이드를 찾을 수 있기를 바랍니다. 감사합니다. :slightly_smiling_face:

어젯밤에 마이그레이션을 아무 문제 없이 완료했습니다! :slight_smile: Falco에게 감사드립니다! :heart: DO Spaces는 이전 B2 Cloud Storage에서 발생했던 많은 오류를 수정했을 뿐만 아니라 속도도 훨씬 빠릅니다. 도와주신 여러분 모두 감사합니다! :slight_smile:

Backblaze 오류에 대해 더 자세히 말씀해 주실 수 있나요? 저는 이 서비스를 추천해 왔습니다(대부분 백업 용도로).

로그에서 JS 파일 관련 “url forbidden” 경고가 많이 발생했었습니다. 지금은 로그가 깨끗해졌습니다. 때로는 컴포저가 멈추거나 이와 유사한 버그가 발생하기도 했었는데, 지금은 매끄럽고 빠릅니다.

API 키가 만료되었을 때 우리에게 통지를 하지 않는 점이 가장 큰 문제 중 하나입니다. B2 패널에는 만료되지 않는다고 표시되어 있지만, 실제로는 몇 달마다 만료되어 사이트가 깨지는 일이 반복되었습니다. B2에 가용성 문제나 불안정한 요인이 있는 것 같습니다. 때로는 이미지 업로드가 깨지는 현상도 발생했기 때문입니다.

푸시 알림 문제도 있었던 것 같고, 이것이 원인 중 하나일 수도 있지만, 아직 확신은 없습니다. 현재 테스트를 진행 중입니다. :slightly_smiling_face:

우리에게는 프랑크푸르트에 있는 DigitalOcean Spaces로 이전하는 것이 좋은 선택이었습니다. 포럼도 그곳에 있기 때문입니다. 지금까지 더 빠르고 안정적이었습니다. 앞으로도 좋기를 바랍니다. :slightly_smiling_face:

좋습니다! 마이그레이션을 수행하기 위해 어떤 단계를 거쳤는지 공유해 주시겠어요?