# 호스트 OS 업그레이드 시 스냅샷을 사용할 수 있나요?

**URL:** https://meta.discourse.org/t/can-snapshots-be-used-when-upgrading-the-host-os/261843
**Category:** Self-hosting
**Created:** [4월 16, 2023, 8:44오전 UTC](https://meta.discourse.org/t/can-snapshots-be-used-when-upgrading-the-host-os/261843 "2023-04-16T08:44:04Z")
**Posts on this page:** 13
**Page:** 1

<div class="post-metadata">

### Author: ![Kartoon](https://avatars.discourse-cdn.com/v4/letter/k/e36b37/32.png) [@Kartoon](https://meta.discourse.org/u/Kartoon)
#### Post date: [4월 16, 2023, 8:44오전 UTC](https://meta.discourse.org/t/can-snapshots-be-used-when-upgrading-the-host-os/261843/1 "2023-04-16T08:44:04Z")

</div>

이전에 질문이 있었는지 모르겠어서 죄송합니다. 주위를 둘러봤지만 제가 계획하고 있는 정확한 시나리오는 찾지 못했습니다(혹은 놓친 것일 수 있지만, 처음 해보는 일이므로 정확히 알고 싶습니다).

저는 아직 18을 사용 중입니다(시작할 때부터 이 버전이었으며, 보안 업데이트만 받아왔고 리눅스 OS 자체를 업그레이드한 적은 없습니다). 그래서 머지않아 22로 업그레이드할 예정입니다. 여기서 읽은 모든 내용들은 기존 설치 환경을 업그레이드하는 것보다 새 설치 환경으로 마이그레이션하는 것이 훨씬 현명하다고 조언합니다. 이는 잠재적으로 발생하거나 발생하지 않을 수 있는 수많은 예측 불가능한 문제가 있을 수 있기 때문이며, 실제로 문제가 발생하면 그건 그저 쓸데없는 골칫거리가 될 뿐이라 위험을 감수할 가치가 없다고 보기 때문입니다.

저는 이 가이드 [Move your Discourse Instance to a Different Server](https://meta.discourse.org/t/move-your-discourse-instance-to-a-different-server/15721) 를 읽었습니다만, 이 가이드는 어떤 서버에서 DigitalOcean으로(또는 그 반대) 이전하는 내용을 다루고 있어 스냅샷 사용이 적용되지 않습니다. 반면 저는 기존 DigitalOcean Droplet에서 새로운 Droplet으로 이전할 계획입니다(여러 곳에서 이 방식이 잘 작동하며 업그레이드에 이상적이라고 언급하고 있습니다).

따라서 제 질문은 DO(디지털오션)에서 DO로 이전하는 경우, Droplet을 종료하고 스냅샷을 찍은 뒤, 원하는 업데이트된 Ubuntu 버전으로 새 Droplet을 생성하고, 스냅샷을 로드한 후, 도메인의 DNS 레코드 등을 조정하면 되는지(그리고 바로 완료되는지)입니다. 즉, 가이드에서 상세히 설명하는 “Discourse를 완전히 재설치하는” 과정을 우회할 수 있는지 묻는 것입니다. 제 이해로는 스냅샷은 Droplet에 설치된 환경의 1:1 동일한 복제본인 반면, 백업은 Discourse 설정 자체만을 대상으로 하며 이 백업을 활용하려면 전체 설치가 필요하다고 알고 있습니다. 제 이해가 맞는 건가요? 긴 다운타임 외에 이 방식의 단점은 없나요?

**요약: 스냅샷을 찍고, 업그레이드된 새 Droplet을 만든 뒤, 스냅샷을 로드하면 바로 완료되는 건가요?**

---

<div class="post-metadata">

### Author: ![Stephen](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/stephen/32/95011_2.png) [@Stephen](https://meta.discourse.org/u/Stephen)
#### Post date: [4월 16, 2023, 9:14오전 UTC](https://meta.discourse.org/t/can-snapshots-be-used-when-upgrading-the-host-os/261843/2 "2023-04-16T09:14:20Z")

</div>

DO 스냅샷에는 OS 버전이 포함되어 있습니다. 스냅샷을 복원하면 운영 체제가 되돌려집니다.

실용적인 옵션은 백업을 이동하거나, /var/discourse를 rsync로 동기화한 후 docker를 수동으로 다시 설치하는 것입니다.

---

<div class="post-metadata">

### Author: ![Jagster](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jagster/32/192154_2.png) [@Jagster](https://meta.discourse.org/u/Jagster)
#### Post date: [4월 16, 2023, 9:15오전 UTC](https://meta.discourse.org/t/can-snapshots-be-used-when-upgrading-the-host-os/261843/3 "2023-04-16T09:15:20Z")

</div>

전혀 틀린 말이 아니길 바라지만, 22일에 18일의 스냅샷을 복원하면 18일로 되돌아갈 것입니다. 스냅샷은 드롭렛 전체의 1:1 복사본이거든요.

제게는 완전히 새로운 드롭렛을 시작하는 것이 항상 마지막 선택지입니다. 우분투(또는 다른 OS)에 필요한 모든 것, 메일 시스템 등을 설치해야 하니까요.

이것이 능한 사람들에게는 또 다른 사소한 작업일 뿐이라는 점은 확신합니다. 하지만 10년 동안에도 쉽게 새로운 기능적인 드롭렛을 시작하는 법을 배우지 못했습니다.

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [4월 16, 2023, 10:36오전 UTC](https://meta.discourse.org/t/can-snapshots-be-used-when-upgrading-the-host-os/261843/4 "2023-04-16T10:36:55Z")

</div>

Discourse 설치에 약 30분이 걸린다는 건가요?

사이트와 app.yml 파일을 백업한 후, 새 OS 버전으로 새로운 드롭렛을 생성하고, IP를 새 드롭렛에 재할당하세요(이렇게 하면 도메인이 올바른 새 위치를 가리킵니다). 그런 다음 Discourse를 설치하고(마법사를 종료한 뒤 app.yml을 업데이트하고 다시 빌드할 수 있습니다) 백업을 가져오면 됩니다.

이 전체 과정은 1시간 이내로 완료될 수 있습니다.

이 과정은 기존 드롭렛에 전혀 영향을 주지 않으므로, 모든 시도가 실패할 경우 롤백하기가 쉽나요?

---

<div class="post-metadata">

### Author: ![Ed\_S](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ed_s/32/134015_2.png) [@Ed\_S](https://meta.discourse.org/u/Ed_S)
#### Post date: [4월 16, 2023, 5:48오후 UTC](https://meta.discourse.org/t/can-snapshots-be-used-when-upgrading-the-host-os/261843/5 "2023-04-16T17:48:08Z")

</div>

OS의 한 LTS 버전에서 다음 버전으로 이동하는 경우, 비교적 원활한 과정이 될 것으로 예상합니다. 따라서 백업(물론)을 하고, 안전을 위해 다운로드(물론)한 후 OS 업데이트를 시도해 볼 것입니다. 만약 작동하지 않으면 새로 설치된 OS를 시도해 볼 수 있습니다.

하지만 이렇게 하면 포럼의 가동 중지 시간이 더 길어질 것입니다.

주요 이유는 DNS를 업데이트하고 전파가 완료될 때까지 기다려야 하기 때문에 새 인스턴스로의 마이그레이션에 약간 주저하는 마음이 있습니다. 다만, 위 게시글에서 IP 주소를 그대로 가져갈 수 있다고 해서 다행입니다. 이는 제 주저하는 마음을 없애 줍니다.

실제로 제 답변을 완전히 수정하자면, IP 주소를 새 인스턴스로 가져갈 수 있다면 그것이 더 선호됩니다. 아마 모든 제공업체가 이를 허용하지는 않을 것입니다. 또한 일부 제공업체의 경우, IP 주소가 변경되지 않았음에도 불구하고 이동했다는 이유로 무료 IP를 잃고 IP 사용료를 지불하게 될 수도 있습니다.

---

<div class="post-metadata">

### Author: ![Stephen](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/stephen/32/95011_2.png) [@Stephen](https://meta.discourse.org/u/Stephen)
#### Post date: [4월 16, 2023, 6:11오후 UTC](https://meta.discourse.org/t/can-snapshots-be-used-when-upgrading-the-host-os/261843/6 "2023-04-16T18:11:25Z")

</div>

> [@Ed\_S](#):
>
> DNS를 업데이트하고 전파가 완료될 때까지 기다려야 합니다.

이 문제를 완화하는 아주 쉬운 방법은 TTL을 매우 낮게 설정하거나(또는 이를 지원하는 네임서버로 교체하는 것)입니다. 이렇게 하면 레코드가 재빌드되는 시간보다 빠르게 만료됩니다.

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [4월 18, 2023, 7:48오전 UTC](https://meta.discourse.org/t/can-snapshots-be-used-when-upgrading-the-host-os/261843/7 "2023-04-18T07:48:37Z")

</div>

> [@Ed\_S](#):
>
> DNS를 업데이트하고 전파가 완료될 때까지 기다려야 하기 때문에 새로운 인스턴스로 마이그레이션하는 데 약간 주저하고 있습니다.

정적 IP(디지털 오션에서 현재 어떻게 부르는지 기억이 나지 않습니다)를 사용할 수 있습니다. 네트워크 설정에서 새로운 IP를 할당받은 후 이를 기존 드롭렛에 매핑하면 됩니다. 그런 다음 DNS를 변경하고 전파가 완료되도록 기다립니다. 새 서버로 이전할 준비가 되면, IP를 새 서버를 가리키도록 전환하기만 하면 됩니다. 즉시 반영되며, 문제가 발생하면 다시 원래대로 전환할 수 있습니다.

---

<div class="post-metadata">

### Author: ![Kartoon](https://avatars.discourse-cdn.com/v4/letter/k/e36b37/32.png) [@Kartoon](https://meta.discourse.org/u/Kartoon)
#### Post date: [4월 19, 2023, 11:32오전 UTC](https://meta.discourse.org/t/can-snapshots-be-used-when-upgrading-the-host-os/261843/8 "2023-04-19T11:32:26Z")

</div>

> [@Stephen](#):
>
> DO 스냅샷에는 OS 버전이 포함됩니다. 스냅샷을 복원하면 운영체제가 롤백됩니다.
> 
> 실용적인 선택지는 백업을 이동하거나, /var/discourse를 rsync하고 도커를 수동으로 다시 설치하는 것입니다.

> [@Jagster](#):
>
> 전혀 틀린 말은 아니기를 바랍니다만, 22에서 18의 스냅샷을 복원하면 드롭렛 전체의 1:1 복사본이므로 18로 되돌아갈 것입니다.
> 
> 저에게는 완전히 새로운 드롭렛을 생성하는 것이 항상 마지막 수단입니다. 우분투(또는 어떤 OS든)에 필요한 것들, 메일 시스템 등을 모두 설치해야 하기 때문입니다.
> 
> 그것은 할 줄 아는 사람들에게는 또 하나의 자명한 작업일 뿐이라고 확신하지만, 10년이 지났음에도 저는 여전히 새 기능 드롭렛을 쉽게 시작하는 법을 배우지 못했습니다.

말이 맞네요. OS를 이동하는 것에 대해서는 전혀 생각하지 못했습니다.

> [@Jagster](#):
>
> 저에게는 완전히 새로운 드롭렛을 생성하는 것이 항상 마지막 수단입니다. 우분투(또는 어떤 OS든)에 필요한 것들, 메일 시스템 등을 모두 설치해야 하기 때문입니다.
> 
> 그것은 할 줄 아는 사람들에게는 또 하나의 자명한 작업일 뿐이라고 확신하지만, 10년이 지났음에도 저는 여전히 새 기능 드롭렛을 쉽게 시작하는 법을 배우지 못했습니다.

> [@Ed\_S](#):
>
> OS의 한 LTS 버전에서 다음 버전으로 이동하는 경우, 상당히 매끄러운 과정을 예상합니다. 그래서 백업을 할 것입니다 - 물론요 - 그리고 안전을 위해 다운로드할 것입니다 - 물론요 - 그리고 OS 업데이트를 시도해 볼 것입니다. 작동하지 않으면 그때 새 OS를 시도해 볼 수 있습니다.
> 
> 그러나 이렇게 하면 포럼의 다운타임이 더 길어질 것입니다.

새 드롭렛을 시작하는 것도 제게는 마지막 선택지입니다. 이전에는 드롭렛을 이동해 본 적이 없기 때문이죠(이것이 제가 가진 첫 번째 드롭렛입니다) 또한 OS를 업그레이드해 본 적도 없습니다. 하지만 여기서 보는 모든 가이드가 대체로 드롭렛을 업그레이드하는 것보다 그렇게 하는 것을 권장하는 것 같아서, 두 방법 모두 위험이 있고 제가 두 가지를 모두 해본 적이 없다면 다수를 따르는 것이 나을 것 같았습니다.

또한 제 생각에는 업그레이드가 완전히 실패하면 시도한 것의 다운타임이 있고, 그것을 고치려고 노력하거나(또는 포기하고 새 것을 만드는) 강제로 해야 하는 동안의 다운타임이 있습니다. 반면 새 드롭렛이 작동하지 않을 수 있지만 원래 드롭렛은 계속 실행되고 온전한 상태가 유지됩니다. 왜 실패하는지 모르지만, 여기 메타를 검색해 보면 그것이 실패했다고 말하는 사람이 매우 많거나, 그렇게 하는 것을 절대 권장하지 않는다는 리더들의 의견(그리고 여기 공식 가이드와 DigitalOcean이 그것을 권장함)을 볼 수 있습니다.

이번 주말에 한번 시도해 보겠습니다.

> [@pfaffman](#):
>
> 정적 IP를 사용할 수 있습니다(디지털 오션이 지금 그것을 무엇이라고 부르는지 기억이 나지 않습니다).

예약된 IP(예전에는 플로팅 IP라고 불렀던 것 같습니다)

---

<div class="post-metadata">

### Author: ![Kartoon](https://avatars.discourse-cdn.com/v4/letter/k/e36b37/32.png) [@Kartoon](https://meta.discourse.org/u/Kartoon)
#### Post date: [4월 19, 2023, 12:07오후 UTC](https://meta.discourse.org/t/can-snapshots-be-used-when-upgrading-the-host-os/261843/9 "2023-04-19T12:07:30Z")

</div>

> [@merefield](#):
>
> 사이트와 app.yml 파일의 백업을 만들고, 새 OS 버전으로 새 드롭렛을 생성한 뒤 IP를 새 드롭렛에 재할당하세요(도메인이 올바른 새 위치를 가리키도록 하기 위함). 그 후 Discourse를 설치하고(마법사를 종료한 뒤 app.yml을 업데이트하고 다시 빌드할 수 있습니다) 백업을 가져오면 됩니다.

정확히 이해했는지 확인하고 싶습니다. [discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub](https://github.com/discourse/discourse/blob/main/docs/INSTALL-cloud.md) 가이드를 따르는 경우,

5단계인 ‘Discourse 설치’ 이후, 설정을 진행하지 않고 그 시점에서 마법사를 종료한 뒤, 제 app.yml 파일을 교체하고

```plaintext
./launcher rebuild app

```

명령을 실행하면 되는 건가요? (그리고 관리자 페이지에 들어가서 업데이트가 되었는지/백업이 복원되었는지 확인하면 되는 것인가요?)

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [4월 19, 2023, 12:10오후 UTC](https://meta.discourse.org/t/can-snapshots-be-used-when-upgrading-the-host-os/261843/10 "2023-04-19T12:10:21Z")

</div>

정답: 컨테이너 디렉터리에서 `touch app.yml`을 실행하여 빈 `app.yml` 파일을 만들고, 다른 서버의 내용을 (주의 깊게!) 붙여넣으면 `./discourse-setup`을 실행할 필요가 없습니다.

이번 주에 제가 겪은 문제 중 하나는 이메일 설정이었습니다: 이메일 서비스가 호출하는 정확한 IP 주소를 요구하지 않는지 확인하세요. 만약 요구한다면 해당 설정(서비스 제공업체에서)을 반드시 업데이트해야 합니다.

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [4월 19, 2023, 12:19오후 UTC](https://meta.discourse.org/t/can-snapshots-be-used-when-upgrading-the-host-os/261843/11 "2023-04-19T12:19:23Z")

</div>

> [@Kartoon](#):
>
> 저도 드롭릿을 이전해 본 적이 없어서, 새 드롭릿을 시작하는 것이 마지막 선택지가 될 것 같습니다.

하지만 가장 안전한 방법입니다. 만약 문제가 발생해도 기존 사이트는 계속 작동합니다. 위험이 전혀 없습니다.

이와 관련된 토픽이 있습니다. yml 파일과 Let’s Encrypt 관련 설정을 복사해 오고, 로컬 DNS를 새 서버를 가리키도록 변경하여 정상 작동하는지 확인할 수도 있습니다.

또한 백업이 S3에 저장되어 있다면, 만약 큰 문제가 생겨도 새 서버를 빠르게 설정하고 약 30분 안에 백업을 복원할 수 있다는 점을 알고 있으면 마음이 한결 놓일 것입니다.

---

<div class="post-metadata">

### Author: ![Kartoon](https://avatars.discourse-cdn.com/v4/letter/k/e36b37/32.png) [@Kartoon](https://meta.discourse.org/u/Kartoon)
#### Post date: [4월 19, 2023, 12:37오후 UTC](https://meta.discourse.org/t/can-snapshots-be-used-when-upgrading-the-host-os/261843/12 "2023-04-19T12:37:57Z")

</div>

> [@pfaffman](#):
>
> 그래도 가장 안전한 방법입니다. 문제가 생겨도 기존 사이트는 계속 작동합니다. 리스크가 전혀 없습니다.
> 
> 이에 대한 토론 주제가 있습니다. yml 파일과 Let’s Encrypt 관련 설정을 복사해 올리고, 로컬 DNS를 새 서버를 가리키도록 변경하여 그것이 정상 작동하는지 확인할 수도 있습니다.
> 
> 그리고 백업을 S3에 저장하고 있다면, 만약 큰 문제가 생겨도 새 서버를 띄우고 약 30분 내에 백업을 복원할 수 있다는 점을 알고 있으면 더 마음이 놓일 것입니다.

제 실제 우려는 단순히 이전하는 것보다는, 전체 설정 과정을 거치면서 이메일 서비스나 Let’s Encrypt 등 어떤 설정을 잘못 설정하게 될까 봐 걱정했습니다. 그리고 모든 것이 무너진 후에야 그 사실을 알게 되는 상황이 말이죠. 물론 기존 app.yml 파일을 그대로 읽을 수 있다면 그런 문제가 없으니 괜찮습니다.

> [@merefield](#):
>
> 이번 주에 제가 겪었던 문제 중 하나는 이메일 설정이었습니다: 이메일 서비스가 호출하는 정확한 IP 주소를 요구하지 않는지 확인하세요. 만약 요구한다면 해당 설정(서비스 제공업체에서)을 반드시 업데이트해야 합니다.

이것이 정확히 무엇을 의미하는지 완전히 확신은 없지만, 그렇게 생각되지는 않습니다… 저는 Mailgun을 사용하고 있으며, 거기 있는 모든 레코드와 GoDaddy의 DNS를 확인해 봤는데 특정 IP와 연결된 것이 아무것도 보이지 않습니다.

좋습니다, 충분히 쉬워 보입니다. 이번 주에 시도해 보겠습니다. 그 기회에 더 좋은 Droplet로 업그레이드도 해볼 수 있겠네요.

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [4월 19, 2023, 12:50오후 UTC](https://meta.discourse.org/t/can-snapshots-be-used-when-upgrading-the-host-os/261843/13 "2023-04-19T12:50:56Z")

</div>

> [@Kartoon](#):
>
> 그렇게 생각하지 않습니다

맞습니다!

확실히 존재한다고 느끼는 토픽을 찾을 수 없습니다. 요약하자면, env 설정에서 s3에 백업을 구성하고, `/var/discourse`를 `rsync`로 동기화하거나, ssl, letsencrypt, containers 디렉터리만 동기화한 다음 다시 빌드하면 됩니다.
