안녕하세요 여러분.
Digital Ocean Droplet에 Discourse 보드를 운영하고 있습니다.
디스크 크기는 160GB이며 (현재 45GB 여유 공간이 있습니다). 제 사이트는 업로드에 상당한 용량(40GB)을 차지하고 있습니다. 업로드 파일을 이동하는 가장 좋은 방법은 무엇일까요? 추천 사항이 있을까요? S3, Digital Ocean의 Spaces? 아니면 다른 방법이 있을까요?
감사합니다.
안녕하세요 @Saiano,
제 생각에는 그냥 개인 취향 차이인 것 같습니다.
마지막으로 ./launcher cleanup를 실행한 게 언제였나요? 그 명령어로 일부 공간을 정리할 수 있을 겁니다.
오브젝트 스토리지를 업로드에 사용하는 방법 (S3 & Clones)을 확인해 보세요. AWS를 사용하는 방법을 알고 있다면, 가장 잘 지원되고 가장 안정적인 방법입니다. Spaces는 몇 번 기술적인 문제를 겪었지만, 이제는 해결했을지도 모릅니다.
지난주 한 사용자를 Spaces와 bunny.net으로 이전했는데, 순조롭게 진행되었습니다.
업로드와 백업을 위해 S3 버킷을 설정했는데, 정상적으로 작동하고 있습니다. CDN은 아직 생성하지 않았습니다. 이것이 문제가 될 수 있을까요? 어떤 제안이 있을까요? rake를 사용하여 오래된 업로드 파일을 S3로 이동해야 할까요?
AWS에서 CloudFront를 설정했습니다. 잘 작동하는 것 같습니다.
앞으로 며칠 동안 확인해 보겠습니다.
마지막으로 해야 할 일:
Discourse 게시판 중지 - DO에서 스냅샷 생성
yml 파일 편집
재구축 및 테스트
그 다음
./launcher enter app
rake uploads:migrate_to_s3
rake posts:rebake
37GB를 업로드하고 모든 게시물을 다시 생성하는 데 얼마나 걸릴까요?
소요 시간은 여러 요인에 따라 달라집니다. S3는 서버가 전송할 수 있는 속도에서 오버헤드를 제외한 속도로 업로드를 문제없이 받아들이는 경우가 대부분입니다. 1Gbps 링크의 경우 약 5분 정도가 걸릴 것으로 예상됩니다.
재구축 및 이로 인해 발생하는 작업(job)들이 대부분의 시간을 차지할 가능성이 높습니다. 이 과정에 걸리는 시간은 인스턴스에 있는 게시물의 수, 게시물의 일반적인 콘텐츠 양과 종류, 그리고 서버 CPU의 클럭 속도에 따라 크게 달라질 수 있습니다. 결과적으로 생성되는 작업들의 소요 시간도 이와 유사한 요인들 및 사용 가능한 CPU 코어 수에 따라 어느 정도 영향을 받습니다.
제 이해(틀렸다면 정정해 주세요)에 따르면, S3 마이그레이션 및 재구축 과정에서 기존 업로드 파일은 게시물이 재구축된 후 게시물과 연결이 해제된 시점 이후에야 삭제됩니다. 이를 통해 마이그레이션과 재구축이 진행되는 동안에도 업로드 누락 없이 인스턴스를 계속 사용할 수 있습니다.
가상 서버를 사용 중이고 사용 가능한 코어가 하나뿐이라면, 재구축을 위해 코어를 더 늘린 후 완료 후 다시 원래대로 낮추는 것을 고려해 볼 만합니다. 단일 코어에서는 처리 시간이 훨씬 길어지며, 해당 과정 동안 Discourse의 성능이 심각하게 저하될 수 있습니다.
S3에 데이터를 업로드하는 동안 보드를 읽기 전용 모드로 전환할 예정입니다.