이 모든 것을 어떻게 해야 하는지 파악하는 데 정말 오랜 시간이 걸렸기 때문에, 다른 사람들에게 더 쉽게 이해할 수 있도록 이 가이드를 작성했습니다. 이미지를 이런 방식으로 서빙하면 웹사이트가 더 빠르게 로드되도록 설계되어 있습니다. 제 Discourse 설정은 DigitalOcean 드롭렛, Backblaze B2 S3, BunnyCDN, 그리고 Cloudflare의 무료 버전을 조합하여 사용하고 있습니다.
신뢰성, 가격, 벤치마크에 대해 조금 조사한 후 이 서비스들을 선택했습니다. 제 기준에서 가장 좋은 옵션들이라고 생각했습니다. Cloudflare는 보안을 도와주지만, 제 이해로는 사이트 속도를 약간 늦추기도 하므로 이 점도 확인해 보시는 것이 좋습니다. Backblaze는 Cloudflare와 Bunny 모두와 파트너십을 맺고 있어 무료 데이터 전송을 허용합니다.
Cloudflare는 CDN이라고 불리지만, 일반적인 CDN처럼 작동하지 않으며, Discourse에서 S3를 설정하는 데 단독으로 사용될 경우 제대로 작동하지 않을 가능성이 높습니다. 아마도 BunnyCDN과 같이 다른 CDN 제공사가 필요할 것입니다. Cloudflare만으로도 성공적으로 설정한 분이 있다면 방법을 알려주세요 ![]()
S3 업로드 설정 방법:
먼저 Backblaze에 가입하고, 버킷을 생성한 다음 해당 세부 정보를 Discourse 설정에 입력해야 합니다:
그 다음 BunnyCDN에 가입하고 다음 가이드를 따르세요:
bunny.net - The Global Edge Platform that truly Hops (추천 링크, 제 청구서에 20달러 크레딧이 적용됩니다)
BunnyCDN 풀 존(pull zone)을 생성한 후에는 Discourse 관리자 백엔드 설정의 "s3 cdn url"에 삽입할 올바른 URL을 가져와야 합니다. bunnycdn 대시보드 > 풀 존 > 풀 존 관리 > 해당 존 클릭 > “host name” 옆의 URL을 복사하세요.
URL은 example.b-cdn.net과 같은 형태여야 하며, 앞에 https://를 붙여 https://example.b-cdn.net과 같이 입력해야 합니다.
Discourse 관리자 설정 영역에서 변경 사항을 저장하세요.
브라우저에서 Discourse 사이트에서 Ctrl+F5를 두 번 누르세요.
Discourse 텍스트 작성기에 이미지를 업로드하여 테스트를 수행하세요. 테스트 이미지 요소를 검사하거나 이미지 소스를 확인하여 작동하는지 확인하세요. URL은 일반적인 도메인과 다르게 보이며, example.b-cdn.net / filename과 같은 형태여야 합니다.
이제 누군가 이미지를 업로드할 때마다 해당 이미지는 DigitalOcean 드롭렛의 공간을 차지하지 않고 Backblaze 버킷에 저장됩니다 ![]()
S3로 백업 업로드하기
Discourse 백업을 Backblaze 버킷으로 보내고 싶다면 다음을 수행해야 합니다:
이 스레드 위에서 제가 게시한 가이드를 참고할 때, 두 개의 별도 버킷이 필요하다는 설명에 주의하세요. 한 버킷은 공개(public) 버킷으로, 사용자가 포럼에 이미지를 업로드하는 용도로 사용됩니다. 다른 버킷은 비공개(private) 버킷으로, 백업용 버킷입니다. 무엇이든 깨질 경우에 대비해 Discourse의 자동 백업을 설정하는 것이 중요하며, 이렇게 하면 백업을 로드하여 수정할 수 있습니다.
BunnyCDN 대시보드에서 두 번째 풀 존을 생성해야 합니다. 첫 번째 풀 존은 업로드용이었지만, 이 새로운 풀 존은 백업용으로 사용됩니다.
bunnycdn 대시보드 > 풀 존 > 풀 존 추가
앞서 링크한 BunnyCDN의 “How to Speed up your Backblaze B2 file delivery with BunnyCDN” 가이드를 그대로 따르되, 이번에는 업로드 버킷 대신 백업 버킷에 새로운 풀 존을 연결해야 합니다.
BunnyCDN 풀 존 생성 페이지에서 “high volume tier 5$/TB” 사용을 권장합니다. 업로드 버킷에 사용했던 더 비싸고 빠른 "standard tier 10$/TB"는 백업에는 필요하지 않다고 생각합니다.
Discourse 관리자 설정 영역에서 백업 설정을 구성하세요. "backup location"은 S3로 설정하고, "s3 endpoint"는 Backblaze에서 확인한 값, 예를 들어 다음과 같은 값으로 설정해야 합니다:
s3.us-west-002.backblazeb2.com
캐시를 지우기 위해 웹사이트에서 Ctrl+F5를 두 번 누르세요.
백업을 시작하고 완료되도록 두세요. 그런 다음 5분 정도 기다린 후 Backblaze 백업 폴더를 확인하면 새로운 백업을 볼 수 있어야 합니다.
기존 이미지 마이그레이션:
이 단계는 선택 사항이지만 권장되며, 특히 서버 저장 공간이 부족한 경우입니다. 이제 새 이미지 업로드를 위한 모든 설정이 완료되었지만, 기존 이미지들도 버킷으로 이전할 수 있습니다. 이 프로세스가 작동하려면 다음을 따르세요:
Cloudflare CDN 설정
Backblaze가 Bunny로의 데이터 전송을 무료로 제공하는 파트너십을 맺었기 때문에 이 단계는 선택 사항입니다. 하지만 추가적인 보안 및 기타 기능을 위해 데이터를 먼저 Cloudflare를 통해 지나가게 한 다음, Bunny가 Cloudflare가 데이터를 전달하는 위치에서 데이터를 가져오도록 설정할 수 있습니다.
https://help.backblaze.com/hc/en-us/articles/217666928-Using-Backblaze-B2-with-the-Cloudflare-CDN


