@waffleslop 의 서버를 가능한 한 빨리 정상적으로 가동하고 싶었기 때문에 문제의 원인을 파악하는 데 시간을 들이지 않았습니다. 저는 DigitalOcean에 호스팅된 Discourse 서버를 업그레이드하면서 문제가 없었습니다. 다만, 비표준 설치를 사용하고 있기 때문에 GUI 대신 커맨드 라인을 사용합니다.
긴 시간의 다운타임을 최소화하기 위해 몇 가지 사항을 권장합니다:
- 무엇이든 하기 전에 백업을 만드세요! 업데이트를 수행하기 전에 백업을 강력히 권장하는 경고가 인터페이스에 있어야 하지 않을까요? 최근 백업이 있으면 최악의 경우에도 새로운 Droplet을 구동하고 데이터를 복원할 수 있다는 안도감을 줍니다.
- 백업에 접근할 수 있는지 확인하세요! @waffleslop 과 저는
/var/discourse의 사본을 새로운 Droplet으로 가져오는 방법을 파악하는 데 상당한 시간을 보냈습니다. 원래 Droplet에서 매우 이상한 일이 발생하여 파일을 새 Droplet으로 단순히scp명령으로 전송할 수 없었습니다. 제 개인 서버의 경우 백업을 S3에 저장하고 매일 밤 로컬 머신으로 복사합니다. 지나치게 과한 조치일까요? 아마도 그렇겠죠. 하지만 어떤 이유로든 시스템이 작동하지 않을 때 다양한 선택지를 제공해 줍니다. - 가끔씩 백업을 테스트하세요. 프로덕션 서버가 다운된 상황에서는 자신이 무엇을 하고 있는지 확신을 가질 필요가 있습니다. 이상적으로는 업데이트를 수행하기 직전에 백업을 테스트하여 프로덕션에서 문제가 발생했을 경우로 돌아갈 수 있는 준비를 해두는 것이 좋습니다. 하지만 프로세스를 머릿속에 생생하게 유지하기 위해 필요한 만큼 백업을 테스트하는 것만으로도 보통 충분합니다.
- 두 사람의 머리가 한 사람보다 낫습니다. 이것이 제 이기적인 생각일 수도 있지만, 이러한 상황에 익숙한 누군가와 화면을 공유하며 통화를 할 수 있다면 비상 상황을 훨씬 쉽게 헤쳐 나갈 수 있습니다. 이상적으로는 커맨드 라인을 사용하는 방법을 아는 사람이 좋습니다.
백업만 잘 해두면 업그레이드를 꽤 안전하게 진행할 수 있습니다.