같은 문제를 겪고 계신 분들을 위해 업데이트를 공유합니다. (결국 백업에서 복원할 수 없고, 시스템 업그레이드 오류로 인해 서버가 충돌한 상태입니다.)
제 이해에 따르면, 이 문제의 근본 원인은 로컬 업로드와 S3 업로드가 모두 존재하기 때문인 것 같습니다. 복원 도구가 로컬과 S3 복원을 동시에 처리하는 방법을 알지 못해 오류가 발생하는 것 같습니다. (아마도 Discourse가 백업/복원 방식을 재검토할 때가 된 것 같습니다.)
이 팁을 알려주신 @RGJ님께 감사드립니다. 그는 복원할 때 S3 업로드를 무시하도록 Discourse를 강제하는 방법을 제안했습니다:
app.yml파일에DISCOURSE_ENABLE_S3_UPLOADS=false라는 한 줄을 추가합니다../launcher rebuild app명령어로 Discourse를 다시 빌드합니다.- 복원을 시도합니다. (GUI의 백업 페이지를 사용하거나 CLI을 사용할 수 있습니다.)
- 복원이 완료된 후,
app.yml에서 해당 줄을 삭제하고 한 번 더 다시 빌드합니다.
이 방법은 작동했지만, 포럼이 심각하게 손상되어 있다는 점을 유의해야 합니다. 카테고리, 설정 및 게시글은 복원되었으나, 모든 이미지, 링크, 내장 문서 등이 깨지고 오류가 발생했습니다.
마지막 수단으로 시도한 해결책:
기존 서버를 구해 /var/discourse 디렉터리(tar/gz)를 추출한 후, 새 서버에 복사하고 ./launcher rebuild app을 실행했습니다. 이를 통해 포럼의 기능이 완전히 복구되었지만, 근본적인 문제는 여전히 남아 있습니다. 로컬 업로드와 S3 업로드가 혼재되어 있기 때문에 백업이 작동하지 않습니다.
따라서 이 문제를 근본적으로 해결하는 최선의 방법에 대한 조언이 정말 필요합니다. 모든 업로드를 로컬에서 S3로 옮기는 것이 더 나은가, 아니면 S3에서 로컬로 옮기는 것이 더 나은가요? 그리고 어떻게 해야 하나요? 백업의 본질적인 목적은 이런 상황에서 도움을 주는 것이지만, 제 경우에는 실패했으므로 이 문제를 제대로 정리해 주시길 부탁드립니다.