생산 업그레이드 - 올바른 절차

안녕하세요,

공식 설치 지침에 따라 EC2에서 자체 호스팅 중인 프로덕션 디스코urse 서버를 업그레이드하려고 합니다. 권장되는 접근 방식에 대해 확인하고 싶습니다.

UI에서 업그레이드 버튼이 활성화되어 있지 않아 EC2 인스턴스에서 직접 작업을 수행해야 합니다. 현재 이 작업을 수행하는 주요 방식이 두 가지라고 생각합니다:

  • EC2 서버를 재구성하여 discourse_docker GitHub 저장소의 최신 복사본을 가져오고 해당 저장소의 템플릿(예: web.template.yml이 현재 참조 중인 베이스 이미지 discourse/base:2.0.20260209-1300)을 활용하는 것입니다. 이 방식은 현재 실행 중인 서버를 제거하고 새 서버를 시작하게 됩니다.
  • 기존 EC2 서버에 로그인하여 다음 명령을 실행하여 현재 이미지를 재구성하고 컨테이너를 재시작하는 것입니다:
    • ./launcher rebuild app

두 가지 질문이 있습니다:

  1. 일반적인 유지보수를 위해 어떤 방식을 사용해야 하나요?
  2. rebuild app 명령을 수행하면 discourse_docker 저장소의 main 브랜치가 여전히 가져오기 되나요?

https://releases.discourse.org 사이트를 확인해 보니 2026.3.0 버전은 아직 출시되지 않았으며, 프로덕션 환경에서는 릴리스의 최신 main 버전을 사용하지 말아야 한다는 것이 제 이해입니다. 이는 여전히 활발한 개발 단계에 있기 때문입니다.

도움 주시면 감사하겠습니다. 감사합니다.

최신 버전으로 업그레이드하려면 관리 콘솔에서 수동으로 업그레이드하면 됩니다.
esr 버전으로 업그레이드하려면 containers/app.yml 파일의 끝에 esr을 지정하기만 하면 됩니다.

params:
  version: esr

그 후 다시 빌드하면 됩니다.

네트워크가 정상적으로 작동하는지 확인하십시오.

답변해 주셔서 감사합니다.

버전을 esr으로 설정하면 템플릿에서 사용되는 기본 이미지(base image)가 덮어씌워지는 건가요?

관리자 UI에서 업그레이드가 활성화되지 않도록 해야 하므로, 인스턴스 차원에서 이를 처리하거나 단순히 인스턴스를 재빌드하여 AutoScaler가 관리하도록 해야 합니다.

esr을 사용하는 경우, 중요한 수정 사항(critical fix)이 배포되면 어떻게 업데이트되나요? 다시 말해, esr 버전의 업데이트를 반영하기 위해 매월 launcher 또는 새 EC2 인스턴스를 통해 재빌드하는 방식만 사용하는 건가요?

https://meta.discourse.org/t/understanding-discourse-release-channels/264400https://meta.discourse.org/t/configure-a-supported-tracking-branch-to-get-discourse-software-updates/17014를 읽어보셨나요? 저는 두 채널의 차이를 최신 변경 사항에 즉시 접근하는 것과, 이를 조금 늦게 받는 것의 차이로 설명하고 싶습니다. 후자의 방식은 먼저 적응 작업이 필요한 커스텀 개발에 매우 유용할 수 있습니다. 그 외의 경우라면, 최신 기능과 수정 사항에 접근할 수 있는 방식을 선호합니다. 물론 새로운 버그가 발생할 위험은 있지만, 3주 전에 동결된 버전에도 버그가 포함되어 있을 수 있으며, 이러한 버그는 최신 버전에서 이미 수정되었을 수 있습니다. 다만, 일반적으로 마지막 릴리스로 백포트할 정도로 심각한 문제는 아닙니다.

또한 다운그레이드는 지원되지 않는다는 점을 명심하세요. 따라서 현재 ESR(장기 지원 릴리스) 이후의 버전을 사용 중이라면, 다음 ESR이 게시될 때까지 기다려야 합니다.

현재 상당히 오래된 버전을 사용하고 있다면, 런처 명령어를 실행하기 전에 git pull을 실행하는 것이 도움이 될 수 있습니다.

아, Switching between Discourse release channels / versions 포스트를 놓치고 있었네요.

지금까지의 답변을 보면, 저희는 월간 업데이트를 진행하므로 release 브랜치를 사용하는 것이 좋겠다는 생각이 듭니다.

많은 도움 주셔서 감사합니다.

그러면 discourse-docker가 설치되어 있지 않은 것이군요.

저는 discourse를 개인 지식 베이스로 사용하는데, 거의 매일 rebuild를 합니다 :rofl:

새로운 주제를 만드는 대신 여기 추가해서 질문합니다.

앱/UI에서 업데이트를 하는 데 문제가 있는 사람이 저 말고도 있나요?

모바일 앱에서 docker_manager 업데이트는 가끔은 되는 것 같은데, discourse 자체는 항상 “업데이트 중” 상태로 표시되고, 업데이트를 하려면 콘솔에 접속해야 합니다.

현재는 몇 분 전 기준으로 2026 04 최신 버전을 사용하고 있습니다.

도움이 되는 정보가 있다면 알려주시면 감사하겠습니다.

감사합니다!

과거에 한 번 Discourse 관리 콘솔을 통해 업데이트를 진행했을 때, 많은 게시물 첨부파일을 잃어버린 적이 있습니다. 이후로는 그런 업데이트 방식을 사용하지 않고, 항상 rebuild 명령어로 업데이트를 수행하고 있습니다.