이전에 질문이 있었는지 모르겠어서 죄송합니다. 주위를 둘러봤지만 제가 계획하고 있는 정확한 시나리오는 찾지 못했습니다(혹은 놓친 것일 수 있지만, 처음 해보는 일이므로 정확히 알고 싶습니다).
저는 아직 18을 사용 중입니다(시작할 때부터 이 버전이었으며, 보안 업데이트만 받아왔고 리눅스 OS 자체를 업그레이드한 적은 없습니다). 그래서 머지않아 22로 업그레이드할 예정입니다. 여기서 읽은 모든 내용들은 기존 설치 환경을 업그레이드하는 것보다 새 설치 환경으로 마이그레이션하는 것이 훨씬 현명하다고 조언합니다. 이는 잠재적으로 발생하거나 발생하지 않을 수 있는 수많은 예측 불가능한 문제가 있을 수 있기 때문이며, 실제로 문제가 발생하면 그건 그저 쓸데없는 골칫거리가 될 뿐이라 위험을 감수할 가치가 없다고 보기 때문입니다.
저는 이 가이드 Move your Discourse Instance to a Different Server 를 읽었습니다만, 이 가이드는 어떤 서버에서 DigitalOcean으로(또는 그 반대) 이전하는 내용을 다루고 있어 스냅샷 사용이 적용되지 않습니다. 반면 저는 기존 DigitalOcean Droplet에서 새로운 Droplet으로 이전할 계획입니다(여러 곳에서 이 방식이 잘 작동하며 업그레이드에 이상적이라고 언급하고 있습니다).
따라서 제 질문은 DO(디지털오션)에서 DO로 이전하는 경우, Droplet을 종료하고 스냅샷을 찍은 뒤, 원하는 업데이트된 Ubuntu 버전으로 새 Droplet을 생성하고, 스냅샷을 로드한 후, 도메인의 DNS 레코드 등을 조정하면 되는지(그리고 바로 완료되는지)입니다. 즉, 가이드에서 상세히 설명하는 “Discourse를 완전히 재설치하는” 과정을 우회할 수 있는지 묻는 것입니다. 제 이해로는 스냅샷은 Droplet에 설치된 환경의 1:1 동일한 복제본인 반면, 백업은 Discourse 설정 자체만을 대상으로 하며 이 백업을 활용하려면 전체 설치가 필요하다고 알고 있습니다. 제 이해가 맞는 건가요? 긴 다운타임 외에 이 방식의 단점은 없나요?
요약: 스냅샷을 찍고, 업그레이드된 새 Droplet을 만든 뒤, 스냅샷을 로드하면 바로 완료되는 건가요?
사이트와 app.yml 파일을 백업한 후, 새 OS 버전으로 새로운 드롭렛을 생성하고, IP를 새 드롭렛에 재할당하세요(이렇게 하면 도메인이 올바른 새 위치를 가리킵니다). 그런 다음 Discourse를 설치하고(마법사를 종료한 뒤 app.yml을 업데이트하고 다시 빌드할 수 있습니다) 백업을 가져오면 됩니다.
이 전체 과정은 1시간 이내로 완료될 수 있습니다.
이 과정은 기존 드롭렛에 전혀 영향을 주지 않으므로, 모든 시도가 실패할 경우 롤백하기가 쉽나요?
OS의 한 LTS 버전에서 다음 버전으로 이동하는 경우, 비교적 원활한 과정이 될 것으로 예상합니다. 따라서 백업(물론)을 하고, 안전을 위해 다운로드(물론)한 후 OS 업데이트를 시도해 볼 것입니다. 만약 작동하지 않으면 새로 설치된 OS를 시도해 볼 수 있습니다.
하지만 이렇게 하면 포럼의 가동 중지 시간이 더 길어질 것입니다.
주요 이유는 DNS를 업데이트하고 전파가 완료될 때까지 기다려야 하기 때문에 새 인스턴스로의 마이그레이션에 약간 주저하는 마음이 있습니다. 다만, 위 게시글에서 IP 주소를 그대로 가져갈 수 있다고 해서 다행입니다. 이는 제 주저하는 마음을 없애 줍니다.
실제로 제 답변을 완전히 수정하자면, IP 주소를 새 인스턴스로 가져갈 수 있다면 그것이 더 선호됩니다. 아마 모든 제공업체가 이를 허용하지는 않을 것입니다. 또한 일부 제공업체의 경우, IP 주소가 변경되지 않았음에도 불구하고 이동했다는 이유로 무료 IP를 잃고 IP 사용료를 지불하게 될 수도 있습니다.
정적 IP(디지털 오션에서 현재 어떻게 부르는지 기억이 나지 않습니다)를 사용할 수 있습니다. 네트워크 설정에서 새로운 IP를 할당받은 후 이를 기존 드롭렛에 매핑하면 됩니다. 그런 다음 DNS를 변경하고 전파가 완료되도록 기다립니다. 새 서버로 이전할 준비가 되면, IP를 새 서버를 가리키도록 전환하기만 하면 됩니다. 즉시 반영되며, 문제가 발생하면 다시 원래대로 전환할 수 있습니다.
새 드롭렛을 시작하는 것도 제게는 마지막 선택지입니다. 이전에는 드롭렛을 이동해 본 적이 없기 때문이죠(이것이 제가 가진 첫 번째 드롭렛입니다) 또한 OS를 업그레이드해 본 적도 없습니다. 하지만 여기서 보는 모든 가이드가 대체로 드롭렛을 업그레이드하는 것보다 그렇게 하는 것을 권장하는 것 같아서, 두 방법 모두 위험이 있고 제가 두 가지를 모두 해본 적이 없다면 다수를 따르는 것이 나을 것 같았습니다.
또한 제 생각에는 업그레이드가 완전히 실패하면 시도한 것의 다운타임이 있고, 그것을 고치려고 노력하거나(또는 포기하고 새 것을 만드는) 강제로 해야 하는 동안의 다운타임이 있습니다. 반면 새 드롭렛이 작동하지 않을 수 있지만 원래 드롭렛은 계속 실행되고 온전한 상태가 유지됩니다. 왜 실패하는지 모르지만, 여기 메타를 검색해 보면 그것이 실패했다고 말하는 사람이 매우 많거나, 그렇게 하는 것을 절대 권장하지 않는다는 리더들의 의견(그리고 여기 공식 가이드와 DigitalOcean이 그것을 권장함)을 볼 수 있습니다.
제 실제 우려는 단순히 이전하는 것보다는, 전체 설정 과정을 거치면서 이메일 서비스나 Let’s Encrypt 등 어떤 설정을 잘못 설정하게 될까 봐 걱정했습니다. 그리고 모든 것이 무너진 후에야 그 사실을 알게 되는 상황이 말이죠. 물론 기존 app.yml 파일을 그대로 읽을 수 있다면 그런 문제가 없으니 괜찮습니다.
이것이 정확히 무엇을 의미하는지 완전히 확신은 없지만, 그렇게 생각되지는 않습니다… 저는 Mailgun을 사용하고 있으며, 거기 있는 모든 레코드와 GoDaddy의 DNS를 확인해 봤는데 특정 IP와 연결된 것이 아무것도 보이지 않습니다.
좋습니다, 충분히 쉬워 보입니다. 이번 주에 시도해 보겠습니다. 그 기회에 더 좋은 Droplet로 업그레이드도 해볼 수 있겠네요.