Backblaze B2에 백업 및 이미지 업로드 설정하기

Digital Ocean Spaces 가이드를 따라가다가, 내 (매우) 작은 커뮤니티를 위해 더 저렴한 프로바이더를 찾아보게 되었습니다. 그런데 이 오래된 게시물을 보고 혼란스러웠습니다. 방금 Backblaze B2를 살펴봤는데 S3와 호환되는 것을 봤기 때문입니다. 알고 보니 제가 확인하기 30분 전에 해당 기능이 출시된 것이었습니다 (운이 좋았네요!). 그래서 현재 커뮤니티에서 이를 작동시키는 방법을 간단히 정리한 가이드를 작성하기로 결정했습니다:

1단계: Backblaze B2 클라우드 스토리지 설정

계정 생성
B2 Cloud Storage로 이동하여 '오늘 가입하기(Sign Up Today)'를 클릭하세요.

앱 키 생성
'App Keys’를 클릭하거나 이 페이지로 이동하세요. 'Add New Application Key’를 클릭하고 이름을 붙인 후 'Create New Key’를 클릭합니다. 페이지를 벗어나면 숨겨지므로 keyID와 applicationKey를 반드시 기록해 두세요.

업로드 및 백업 버킷 생성
버킷 페이지로 돌아가서 원하는 버킷을 생성하세요. 업로드용 버킷은 공개(public), 백업용 버킷은 비공개(private)로 설정해야 합니다. (TODO: Discourse에서 자동 생성 테스트)

2단계: Discourse 설정

이 단계는 Digital Ocean Spaces 가이드를 대부분 따르며, 다음과 같은 주요 차이점이 있습니다:

  • s3 keyID 필드에 앱 키의 keyID를 사용하세요.
  • s3 secret access key 필드에 앱 키의 applicationKey를 사용하세요.
  • 앱 키에서 제공되는 s3 엔드포인트를 사용하세요.
  • 자체 CDN을 제공하지 않는 한 CDN 필드는 비워 두세요.

Backblaze B2의 S3 호환성에 대한 자세한 내용은 이 블로그 게시물을 참고하세요.

Backblaze 대체가 무리 없이 잘 작동하고 있나요? 오류 같은 건 없었나요?

10GB의 무료 공간을 제공해서 호스팅 비용을 줄일 수 있을 것 같아 정보를 찾아왔어요. 다만 기존 S3에 있는 콘텐츠를 먼저 이관해야 할 것 같습니다. 또한, S3에서 Backblaze로 운영 중인 Discourse 인스턴스를 이관해 본 분이 계신지 궁금합니다.

이 주제를 계속 끌고 가기보다는, s3 클론 목록에 추가합시다:

오래된 스레드이지만, 이 가이드가 제가 찾고 있던 내용과 정확히 일치했습니다. 저도 작은 커뮤니티를 운영하고 있으며, 메인 서버(DigitalOcean) 대신 이미지와 백업을 클라우드에 저장하는 방안을 검토하고 있었습니다. 이미지 파일로 인한 서버 부하를 줄여주므로, 사이트가 더 원활하게 작동하는 데 도움이 될 것입니다.

Backblaze가 Cloudflare와 파트너십을 맺어 데이터 전송을 무료로 제공한다는 점이 마음에 듭니다. 저희는 이미 DDoS 방지를 위해 Cloudflare의 무료 플랜을 사용하고 있습니다. 따라서 데이터 전송 비용이 없으므로, 저장 공간 비용만 지불하면 되어 비용을 절감할 수 있을 것입니다. 곧 Cloudflare를 추가로 포함하여 설정을 시도해 볼 예정입니다.

드디어 백업이 정상적으로 작동하게 되었습니다. Discourse의 백업 기능은 Backblaze의 백업 버킷으로 데이터를 전송합니다.

하지만 Discourse에서 업로드한 이미지는 Backblaze의 업로드 버킷에 나타나지 않습니다. 해당 버킷이 공개(public)로 설정되어 있는지 확인했습니다.

혹시 원인을 아시는 분 있으신가요?

@Bill Configure an S3 compatible object storage provider for uploads 에서 지원을 요청하는 것을 권장합니다.

방금 Cloudflare로 성공적으로 설정을 마쳤기 때문에 제 경험을 공유해 보려 합니다. Cloudflare는 일반적인 CDN과는 다릅니다. 저는 DDoS 보호, SSL, 캐싱 용도로 사용하고 있습니다. 하지만 S3 스토리지를 설정하려면 다른 CDN이 필요한 것 같습니다. 저는 비교적 저렴한 BunnyCDN을 사용했습니다. 업로드 버킷 URL(Backblaze에서 생성)을 가리키는 풀 존(pull zone)을 설정하면 됩니다.

그 다음에는 아래 설명을 따라 진행하시면 됩니다: Configure an S3 compatible object storage provider for uploads - #106

참고로 이 방법은 앞으로 업로드할 파일과 이미지에만 적용됩니다. 기존 파일은 이전되지 않습니다.