Digital Ocean Spaces 가이드를 따라가다가, 내 (매우) 작은 커뮤니티를 위해 더 저렴한 프로바이더를 찾아보게 되었습니다. 그런데 이 오래된 게시물을 보고 혼란스러웠습니다. 방금 Backblaze B2를 살펴봤는데 S3와 호환되는 것을 봤기 때문입니다. 알고 보니 제가 확인하기 30분 전에 해당 기능이 출시된 것이었습니다 (운이 좋았네요!). 그래서 현재 커뮤니티에서 이를 작동시키는 방법을 간단히 정리한 가이드를 작성하기로 결정했습니다:
앱 키 생성
'App Keys’를 클릭하거나 이 페이지로 이동하세요. 'Add New Application Key’를 클릭하고 이름을 붙인 후 'Create New Key’를 클릭합니다. 페이지를 벗어나면 숨겨지므로 keyID와 applicationKey를 반드시 기록해 두세요.
업로드 및 백업 버킷 생성
버킷 페이지로 돌아가서 원하는 버킷을 생성하세요. 업로드용 버킷은 공개(public), 백업용 버킷은 비공개(private)로 설정해야 합니다. (TODO: Discourse에서 자동 생성 테스트)
2단계: Discourse 설정
이 단계는 Digital Ocean Spaces 가이드를 대부분 따르며, 다음과 같은 주요 차이점이 있습니다:
오래된 스레드이지만, 이 가이드가 제가 찾고 있던 내용과 정확히 일치했습니다. 저도 작은 커뮤니티를 운영하고 있으며, 메인 서버(DigitalOcean) 대신 이미지와 백업을 클라우드에 저장하는 방안을 검토하고 있었습니다. 이미지 파일로 인한 서버 부하를 줄여주므로, 사이트가 더 원활하게 작동하는 데 도움이 될 것입니다.
Backblaze가 Cloudflare와 파트너십을 맺어 데이터 전송을 무료로 제공한다는 점이 마음에 듭니다. 저희는 이미 DDoS 방지를 위해 Cloudflare의 무료 플랜을 사용하고 있습니다. 따라서 데이터 전송 비용이 없으므로, 저장 공간 비용만 지불하면 되어 비용을 절감할 수 있을 것입니다. 곧 Cloudflare를 추가로 포함하여 설정을 시도해 볼 예정입니다.
방금 Cloudflare로 성공적으로 설정을 마쳤기 때문에 제 경험을 공유해 보려 합니다. Cloudflare는 일반적인 CDN과는 다릅니다. 저는 DDoS 보호, SSL, 캐싱 용도로 사용하고 있습니다. 하지만 S3 스토리지를 설정하려면 다른 CDN이 필요한 것 같습니다. 저는 비교적 저렴한 BunnyCDN을 사용했습니다. 업로드 버킷 URL(Backblaze에서 생성)을 가리키는 풀 존(pull zone)을 설정하면 됩니다.