# Configure automatic backups for Discourse

**URL:** https://meta.discourse.org/t/configure-automatic-backups-for-discourse/14855
**Category:** Self-Hosting
**Tags:** backups, how-to
**Created:** [4월 18, 2014, 6:21오전 UTC](https://meta.discourse.org/t/configure-automatic-backups-for-discourse/14855 "2014-04-18T06:21:44Z")
**Posts on this page:** 20
**Page:** 2

<div class="post-metadata">

### Author: ![Tris20](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tris20/32/264639_2.png) [@Tris20](https://meta.discourse.org/u/Tris20)
#### Post date: [9월 19, 2021, 10:51오전 UTC](https://meta.discourse.org/t/configure-automatic-backups-for-discourse/14855/115 "2021-09-19T10:51:15Z")

</div>

힌트 감사합니다. 덕분에 명령줄 옵션으로 눈을 돌릴 수 있었고, 원하는 시점에 예약 실행할 수 있습니다. 👍

> [@Backup discourse from the command line](https://meta.discourse.org/t/backup-discourse-from-the-command-line/64364):
>
> bookmark This guide covers how to back up and restore your Discourse site using command line tools, specifically designed for self-hosted environments. person_raising_hand Required user level: Administrator information_source You can use the below placeholders to automatically fill out the command line prompts in this guide: Backing up To create a backup of your Discourse site, follow these steps: Enter the container: ./launcher enter app Run the backup: discourse backu…

---

<div class="post-metadata">

### Author: ![bksubhuti](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/bksubhuti/32/254360_2.png) [@bksubhuti](https://meta.discourse.org/u/bksubhuti)
#### Post date: [4월 24, 2022, 12:48오전 UTC](https://meta.discourse.org/t/configure-automatic-backups-for-discourse/14855/116 "2022-04-24T00:48:03Z")

</div>

작동은 시켰지만, 업로드 체크박스가 실제로는 필요 없었던 것 같고, 그 목적도 잘 모르겠습니다. **이 체크박스의 목적은 무엇인가요?** 제 서버의 경우 로컬이 아닌 s3로 백업만 하고 싶습니다. 서버에는 주간 자동 백업만 설정되어 있습니다..

Json에도 문제가 있었습니다.. 다른 웹사이트 참고 자료를 통해 작동하게 만들었습니다. 하지만, 여기에서 설명된 대로 업로드 체크박스를 체크해 두었기 때문에 아무도 이미지를 업로드할 수 없었습니다. 그 체크박스를 해제하니 사용자들의 프로필 사진 포함 이미지 업로드 문제가 해결되었습니다.

이미지 업로드의 목적은 무엇인가요? 진심으로 s3 백업에 이미지가 포함되기를 바랍니다.  
"업로드"를 이해하지 못해 버킷을 하나만 만들었고, 설명을 두 번이나 따라 해야 했습니다. 그 후 2개의 버킷으로 다시 진행해야 했고, 결국 업로드 체크박스를 해제해야 했습니다. s3 백업에 관한 더 간단하고 별도인 주제가 있으면 좋겠습니다 .. 백업만 다루는 주제요.

```plaintext
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:List*",
                "s3:Get*",
                "s3:AbortMultipartUpload",
                "s3:DeleteObject",
                "s3:PutObject",
                "s3:PutObjectAcl",
                "s3:PutObjectVersionAcl",
                "s3:PutLifecycleConfiguration",
                "s3:CreateBucket",
                "s3:PutBucketCORS"
            ],
            "Resource": [
                "arn:aws:s3:::classicaltheravadabucket",
                "arn:aws:s3:::classicaltheravadabucket/*",
                "arn:aws:s3:::classicaltheravadabackupbucket",
                "arn:aws:s3:::classicaltheravadabackupbucket/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListAllMyBuckets",
                "s3:*"
            ],
            "Resource": "*"
        }
    ]
}

```

---

<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: [6월 14, 2022, 4:04오후 UTC](https://meta.discourse.org/t/configure-automatic-backups-for-discourse/14855/117 "2022-06-14T16:04:53Z")

</div>

> [@bksubhuti](#):
>
> s3 백업에 대해 좀 더 단순한 별도의 주제가 있다면 좋을 것 같습니다 … 그리고 백업에만 집중하는 주제요.

> [@Configure automatic backups for Discourse](https://meta.discourse.org/t/configure-automatic-backups-for-discourse/14855):
>
> bookmark This guide explains how to configure automatic backups for Discourse, including storage options on local servers and S3-compatible storage. Learn how to set up automatic backups for your Discourse platform. This guide covers configuring automatic backups, storing them on local servers or S3-compatible storage, and managing storage retention options like Amazon Glacier. Configuring automatic backups Navigate to /admin settings. Select the Backup section. Set backup\_frequency to …

다만, 해당 주제는 S3 설정을 데이터베이스가 아닌 `app.yml`로 이동하도록 권장하도록 업데이트되어야 한다고 생각합니다. 그렇게 하면 사용자 및 S3 설정을 구성하지 않고 yml 파일만으로 데이터베이스를 명령줄로 복구할 수 있습니다.

---

<div class="post-metadata">

### Author: ![bksubhuti](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/bksubhuti/32/254360_2.png) [@bksubhuti](https://meta.discourse.org/u/bksubhuti)
#### Post date: [6월 17, 2022, 9:56오전 UTC](https://meta.discourse.org/t/configure-automatic-backups-for-discourse/14855/118 "2022-06-17T09:56:11Z")

</div>

> [@Configure automatic backups for Discourse](#):
>
> 경고: 백업과 정기 업로드를 동일한 버킷과 폴더에 저장하는 것은 더 이상 지원되지 않으며 작동하지 않습니다. 기본적으로 백업은 로컬 서버 디스크에 저장됩니다. 백업을 Amazon S3에 저장하려면 고유한,

무엇을 말씀하시는지 잘 모르겠습니다. 제 백업은 정상적으로 작동하고 있으며, 사진에 확인하실 수 있습니다.  
Digital Ocean의 백업은 주 1회만 이루어지기 때문에, 서버가 충돌하여 삭제되는 경우 도움이 되지 않아 S3를 사용하고 있습니다.  
반면, S3에서 복구하거나 다운로드한 S3 버킷으로 복원하는 과정은 문제가 없을 것으로 기대하고 있습니다.  
이미지를 업로드하는 것은 아니며, S3 백업에 이미지(매우 적은 수이지만)가 포함되어 백업되고 있기를 희망하고 있습니다.

 ![image](https://global.discourse-cdn.com/meta/original/4X/5/5/7/557fe4ddeb84c0f2832958f4b21270f511e926ce.png)

---

<div class="post-metadata">

### Author: ![RGJ](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/rgj/32/523185_2.png) [@RGJ](https://meta.discourse.org/u/RGJ)
#### Post date: [6월 17, 2022, 11:24오전 UTC](https://meta.discourse.org/t/configure-automatic-backups-for-discourse/14855/119 "2022-06-17T11:24:25Z")

</div>

> [@bksubhuti](#):
>
> 이미지를 포함하여 S3 백업이 백업되고 있습니다

일반적으로: 아니요.  
S3 버킷의 이미지를 다른 S3 버킷으로 백업하는 것은 큰 의미가 없지 않나요?

---

<div class="post-metadata">

### Author: ![bksubhuti](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/bksubhuti/32/254360_2.png) [@bksubhuti](https://meta.discourse.org/u/bksubhuti)
#### Post date: [6월 17, 2022, 1:30오후 UTC](https://meta.discourse.org/t/configure-automatic-backups-for-discourse/14855/120 "2022-06-17T13:30:46Z")

</div>

좀 더 명확하게 답변해 주실 수 있을까요?  
설명서에는 S3 버킷이 2개라고 되어 있었습니다. 하지만 그 방법을 적용해 보았을 때 작동하지 않았습니다.  
저는 S3 버킷이 1개만 있습니다. 다행히 사진들이 그 백업에 포함되어 있기를 바랍니다. 맞습니까?

로컬 백업도 동일한 방식으로 작동한다고 생각하는데, 맞습니까?

제 질문에 대해 완전한 문장으로 답변해 주십시오. 튜토리얼도 매우 혼란스러웠습니다.

---

<div class="post-metadata">

### Author: ![RGJ](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/rgj/32/523185_2.png) [@RGJ](https://meta.discourse.org/u/RGJ)
#### Post date: [6월 17, 2022, 1:34오후 UTC](https://meta.discourse.org/t/configure-automatic-backups-for-discourse/14855/121 "2022-06-17T13:34:53Z")

</div>

"no"라는 표현이 모호한 점은 무엇인가요? (그리고 "백업이 백업되는 것"은 모호하지 않다는 점을 알아두세요 ;))

다시 설명해 보겠습니다.

업로드를 S3에 저장하도록 구성했다면, 업로드된 파일은 백업에 포함되지 않습니다.

---

<div class="post-metadata">

### Author: ![bksubhuti](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/bksubhuti/32/254360_2.png) [@bksubhuti](https://meta.discourse.org/u/bksubhuti)
#### Post date: [6월 17, 2022, 1:54오후 UTC](https://meta.discourse.org/t/configure-automatic-backups-for-discourse/14855/122 "2022-06-17T13:54:13Z")

</div>

미디어가 다른 형식일 수도 있지만, ‘uploads’ 대신 'pictures’라는 용어를 사용하겠습니다.  
이렇게 하면 텍스트 콘텐츠를 업로드라고 오해하는 것을 방지할 수 있습니다. 저는 텍스트를 s3에 업로드하고 있기 때문입니다.

즉, 이 스레드에서 언급된 것처럼 s3에 있는 62MB의 백업 파일에는 **pictures** 가 포함되지 않는다는 뜻인가요?

그렇다면 백업에 이 pictures가 포함되도록 어떻게 해야 하나요?  
로컬 백업에도 pictures가 포함되어 있나요?

'uploads(미디어의 업로드)'로 s3를 설정했을 때, 이 용어도 모호했습니다. s3에서 거부되어 아무도 pictures를 게시할 수 없었거든요…

로컬과 s3를 모두 사용하여 매일 백업하는 방법이 있을까요?  
5일간의 pictures가 손실되어도 괜찮습니다. 우리 그룹은 대부분 텍스트 기반이니까요.  
하지만 5일간의 텍스트가 손실되면 문제가 됩니다. Digital Ocean은 돈을 지불해야만 7일치 백업을 제공합니다.  
즉, 매일 백업하더라도 드롭릿이 해킹되거나 손상되면 해당 백업도 잃게 됩니다… s3에는 큰 부가가치가 없다고 생각하기 시작합니다.

구글이나 드롭박스 계정으로 백업할 수 있는 WordPress처럼 간단한 백업 기능이 있으면 좋겠습니다.

---

<div class="post-metadata">

### Author: ![RGJ](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/rgj/32/523185_2.png) [@RGJ](https://meta.discourse.org/u/RGJ)
#### Post date: [6월 17, 2022, 2:34오후 UTC](https://meta.discourse.org/t/configure-automatic-backups-for-discourse/14855/123 "2022-06-17T14:34:22Z")

</div>

> [@bksubhuti](#):
>
> 업로드 대신 '이미지’라는 용어를 사용합시다. 다른 미디어일 수도 있지만요.  
> 이렇게 하면 텍스트 콘텐츠를 업로드라고 혼동하는 것을 막을 수 있습니다. 저는 텍스트를 s3에 업로드하는 중이거든요.

아니요, 그것은 나쁜 아이디어입니다. 텍스트 파일을 첨부파일로 업로드하면 그것도 업로드이므로 혼란을 야기합니다. 그리고 게시물 내의 텍스트는 데이터베이스에 저장됩니다. 따라서 저는 _uploads_라는 용어를 유지하겠습니다.

업로드가 S3에 있다면, 백업에 포함되지 않습니다. 그 경우 백업에는 데이터베이스 사본만 포함됩니다. 백업이 로컬에 있든 S3에 있든 관계없습니다.

업로드가 S3에 없다면, 백업에 포함됩니다. 그 경우 백업에는 데이터베이스 사본과 업로드 사본이 포함됩니다. 백업이 로컬에 있든 S3에 있든 관계없습니다.

> [@bksubhuti](#):
>
> 즉, 매일 백업을 할 수 있지만, 드롭렛이 해킹되거나 손상되면 그 백업을 잃게 됩니다.

업로드든 데이터베이스 백업이든 S3에 저장해 두면, DO 드롭렛이 해킹되거나 손상되어도 잃어버리지 않습니다. 따라서 제가 지적하려는 바를 이해하지 못하겠습니다.

귀하의 게시물이 파일 및 이미지 업로드에 관한 것이 아니라 백업에 관한 것이므로, 이 내용을 다른 주제로 이동하겠습니다.

---

<div class="post-metadata">

### Author: ![Canapin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/canapin/32/119591_2.png) [@Canapin](https://meta.discourse.org/u/Canapin)
#### Post date: [7월 2, 2022, 11:15오전 UTC](https://meta.discourse.org/t/configure-automatic-backups-for-discourse/14855/124 "2022-07-02T11:15:39Z")

</div>

S3 백업을 자동으로 Glacier로 이동하고 싶은데, 첫 번째 게시물에 링크된 [단계](http://aws.typepad.com/aws/2012/11/archive-s3-to-glacier.html)가 이해가 되지 않습니다. 해당 링크가 설명이 부족하고, 아마도 내용이 구식이어서 그런 것 같습니다.

 ![image](https://global.discourse-cdn.com/meta/original/4X/a/4/1/a41898edea55265f7d3f6d992f242cb7937b0f38.png)

여기서 어떤 옵션을 체크해야 하나요? 🤔

---

<div class="post-metadata">

### Author: ![Canapin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/canapin/32/119591_2.png) [@Canapin](https://meta.discourse.org/u/Canapin)
#### Post date: [7월 17, 2022, 9:59오전 UTC](https://meta.discourse.org/t/configure-automatic-backups-for-discourse/14855/125 "2022-07-17T09:59:16Z")

</div>

혹시 이 단계를 수행해 보신 분이 계신지 다시 한 번 여쭤봐도 될까요?

또한, S3 요금의 이러한 변동은 무엇 때문에 발생하는지 알고 계신가요?

 ![image](https://global.discourse-cdn.com/meta/original/4X/3/e/b/3eb81fa588208562817e598b499012bd97d47d5e.png)

게다가 포럼이 출시된 2020년 9월 이후 백업 크기는 약 15% 증가했지만, S3 청구액은 2.50달러에서 5달러로 두 배가 되었습니다. 그 이유가 무엇일지 혹시 아시는 분 계신가요?

그래서 저는 Glacier를 사용해보려 합니다.

* * *

수정: [여기](https://www.youtube.com/watch?v=7LIXqCnaLj0)에 설명된 단계를 따랐고, 결과를 지켜보겠습니다.

---

<div class="post-metadata">

### Author: ![Canapin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/canapin/32/119591_2.png) [@Canapin](https://meta.discourse.org/u/Canapin)
#### Post date: [7월 25, 2022, 5:28오후 UTC](https://meta.discourse.org/t/configure-automatic-backups-for-discourse/14855/126 "2022-07-25T17:28:48Z")

</div>

> [@Canapin](#):
>
> 수정: [여기](https://www.youtube.com/watch?v=7LIXqCnaLj0)에 설명된 단계를 따라 했고, 결과를 지켜보겠습니다.

글쎄요, 작동하지 않습니다. 😅

제 라이프사이클 구성:

 ![image](https://global.discourse-cdn.com/meta/original/4X/7/3/d/73d3154f336f9c83665843be904601364ab4141f.png)

제 S3 버킷:

 ![image](https://global.discourse-cdn.com/meta/original/4X/0/c/8/0c826342cf16e905653a94744fd8b623d329e3c0.png)

Glacier에 있는 백업은 없습니다.

그러면… S3에서 Glacier로의 자동 전환을 성공적으로 수행하신 분들을 위해 두 가지 질문을 드리겠습니다:

1. 제 구성에서 무엇이 잘못되었을까요?

2. Glacier의 최소 저장 기간 요금은 90일입니다. 그렇다면 하루에 백업을 1회 수행하면, 결국 매달 Glacier에서 백업 90개에 대한 요금이 부과되는 걸까요?  
이러한 경우라면, 백업 빈도를 대폭 줄이지 않는 한 이 Glacier 솔루션은 좋은 선택이 아닐 것입니다.

---

<div class="post-metadata">

### Author: ![Sectros](https://avatars.discourse-cdn.com/v4/letter/s/ecccb3/32.png) [@Sectros](https://meta.discourse.org/u/Sectros)
#### Post date: [11월 29, 2022, 6:07오전 UTC](https://meta.discourse.org/t/configure-automatic-backups-for-discourse/14855/127 "2022-11-29T06:07:05Z")

</div>

VPS에서 백업 파일은 어디에 저장되나요?

---

<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: [11월 29, 2022, 8:41오후 UTC](https://meta.discourse.org/t/configure-automatic-backups-for-discourse/14855/128 "2022-11-29T20:41:10Z")

</div>

> [@Sectros](#):
>
> vps에서 백업은 어디에 저장되나요?

OP(원문)에 이 내용을 추가했습니다:

> [@Discourse](#):
>
> 셀프 호스팅을 사용 중이라면 `/var/discourse/shared/standalone/backups/default` 경로에서 백업에 액세스할 수 있습니다.

---

<div class="post-metadata">

### Author: ![satonotdead](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/satonotdead/32/447830_2.png) [@satonotdead](https://meta.discourse.org/u/satonotdead)
#### Post date: [3월 10, 2023, 7:26오후 UTC](https://meta.discourse.org/t/configure-automatic-backups-for-discourse/14855/129 "2023-03-10T19:26:23Z")

</div>

백업 폴더를 직접 선택할 수 있나요? 아니면 코딩 없이 해결할 수 있는 우회 방법이 있나요?

호스팅 제공업체의 스토리지 데이터를 사용 중인데, 로컬 드라이브처럼 마운트하여 사용할 수 있습니다. 하지만 기본 경로에 저장되지는 않아야 합니다.

---

<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: [3월 11, 2023, 4:07오전 UTC](https://meta.discourse.org/t/configure-automatic-backups-for-discourse/14855/130 "2023-03-11T04:07:47Z")

</div>

다른 위치에 저장하려면 app.yml 파일을 수정해야 합니다.

---

<div class="post-metadata">

### Author: ![shyguy](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/shyguy/32/295079_2.png) [@shyguy](https://meta.discourse.org/u/shyguy)
#### Post date: [4월 6, 2023, 10:39오후 UTC](https://meta.discourse.org/t/configure-automatic-backups-for-discourse/14855/131 "2023-04-06T22:39:30Z")

</div>

## Backblaze B2 자동 백업

\*\*`example.com`\*\*에 호스팅된 가상의 사이트를 위해 설정한 방법을 공유합니다.

1. Backblaze 계정을 만듭니다 (현재 10GB 미만은 무료이므로 결제 정보를 입력할 필요가 없습니다)
2. **버킷을 생성** 합니다 (Backblaze \> B2 Cloud Storage)
  - 이름: `$sitename-discourse-$random`를 30자까지 채움
    - 이 예시에서는: `example-discourse-g87he56ht8vg`
    - Discourse는 버킷 이름에 소문자, 숫자, 대시만 허용합니다
    - Backblaze 웹 UI에서 줄바꿈 없이 잘 표시되도록 30자 이하로 유지하는 것을 권장합니다

  - 비공개 버킷
  - 암호화 활성화 (SSE-B2)
  - 오브젝트 락(Object Lock) 활성화

3. **애플리케이션 키를 생성** 합니다 (Backblaze \> Account \> App Keys)
  - keyName: `example-discourse`
  - bucketName (Allow access to Bucket(s)): `example-discourse-g87he56ht8vg`
  - capabilities: 읽기 및 쓰기
  - namePrefix와 validDurationSeconds는 비워 둡니다

4. **Discourse B2 설정을 구성** 합니다 (Discourse \> Admin \> Settings)
  - `backup_location`: `s3`
  - `s3_backup_bucket`: `example-discourse-g87he56ht8vg`
  - `s3_endpoint`: 버킷 페이지에 표시됩니다 – `https://`를 앞에 붙여야 합니다
  - `s3_access_key_id`: (이전 단계에서 생성한 값)
  - `s3_secret_access_key`: (이전 단계에서 생성한 값)
    - _Backblaze는 키를 한 번만 표시합니다(생성 시)!_

  - 참고: [컨테이너 yml 파일에 환경 변수로 설정하는 것도 가능합니다](https://meta.discourse.org/t/best-practices-for-backups/148630). 이렇게 하면 해당 파일만으로 복구가 가능합니다:

```yaml
env:
  ## Backblaze B2 Backups
  # DISCOURSE_BACKUP_LOCATION: 's3' # CLI에서 복구하려면 주석 해제
  DISCOURSE_S3_ENDPOINT: 'https://....backblazeb2.com'
  DISCOURSE_S3_BACKUP_BUCKET: 'example-discourse-g87he56ht8vg'
  DISCOURSE_S3_ACCESS_KEY_ID: '...'
  DISCOURSE_S3_SECRET_ACCESS_KEY: '...'
  # DISCOURSE_DISABLE_EMAILS: 'non-staff' # 테스트 복구 중 이메일 비활성화하려면 주석 해제
  ## 이 컨테이너 yml 파일 외의 데이터 없이 복구할 수 있습니다.
  ## 위의 DISCOURSE_BACKUP_LOCATION 주석을 해제하고 컨테이너를 빌드한 후 (./launcher rebuild ...),
  ## 컨테이너 내부에서 다음을 실행하세요 (B2 버킷에서 복구됩니다):
  ## discourse enable_restore
  ## discourse restore <example-com-...tar.gz> # B2 웹 UI에서 복구 파일 이름 선택
  ## 복구 후 복구 모드를 비활성화하는 것을 잊지 마세요

```

1. 백업 **보관 기간(retention)을 구성**합니다
  - Discourse:
    - `backup_frequency`: 1 (이 예시에서는 매일 백업, 주간 백업도 가능합니다)
    - `maximum_backups`: 이 설정은 무시하세요 – Backblaze가 처리하도록 둡니다 🕶
    - `s3_disable_cleanup`: **true** _(최대 허용 수를 초과할 때 S3에서 오래된 백업이 삭제되는 것을 방지합니다)_

  - Backblaze (버킷 설정으로 이동):
    - Object Lock (Default Retention Policy): 7일
    - Lifecycle Settings (custom):
      - `fileNamePrefix`: `default/example-com` (선택 사항)
      - `daysFromUploadingToHiding`: 8일
        - _이는 오브젝트 락 기간 + 1일이어야 합니다_

      - `daysFromHidingToDeleting`: 1일

**요약** 하면, 이 예시의 보관 기간은 다음과 같습니다:

- Discourse는 1일마다 백업을 생성합니다
- 각 백업 파일은 B2에 업로드된 후 7일 동안 변경 불가능(immutable)합니다 (오브젝트 락). 이는 실수, 랜섬웨어 등으로부터 보호해 줍니다.
- 업로드 후 8일이 지나면 백업의 오브젝트 락이 만료됩니다. 다시 변경 가능(mutable)해지므로 라이프사이클 규칙이 백업 파일을 숨길 수 있습니다.
- 라이프사이클 규칙의 다음 단계는 숨겨진 파일이 1일 후에 삭제되도록 합니다

따라서 매일 백업이 생성됩니다. 백업이 절대 삭제될 수 없는 1주간의 보관 기간이 있고, 그 후 2일 뒤에 백업이 삭제됩니다. 즉, 실제로 백업은 약 9일간 유지됩니다.

도움이 되길 바랍니다 🙂

* * *

다시 생각해 보니, Discourse가 보관 기간(`maximum_backups`)을 처리하는 것이 더 나을 수 있습니다. 이렇게 하면 Discourse가 다운되어도 백업이 자동으로 만료되지 않습니다. 복구 작업을 하다가 시계가 흘러가는 상황을 원하지 않을 것입니다. 이 방식을 선택한다면, 이 예시에서는 `maximum_backups=8`과 `s3_disable_cleanup=false`를 설정하고 ~~B2에서 라이프사이클 정책을 사용하지 않는~~ 것이 좋습니다. 그래도 오브젝트 락 정책(7일)은 사용해야 합니다.

수정: 실제로는 B2 라이프사이클 정책이 여전히 필요하다고 생각합니다. S3 클라이언트가 파일을 삭제할 때 파일이 삭제되지 않고 ‘숨겨지는’ 것 같기 때문입니다. 저는 “`Keep only the last version of the file`” 정책을 사용 중인데, 이는 `daysFromHidingToDeleting=1, daysFromUploadingToHiding=null`과 동등합니다.

어느 접근 방식이 자신에게 적합한지 잘 생각해 보시길 권합니다.

참고로, 이 게시물에 오가는 내용이 있다는 것을 인식하고 있습니다. 현재 상태가 정보적으로 유용하다고 생각하지만, 누군가 원한다면 제 실제 권장 사항을 담은 좀 더 단순한 게시물을 따로 만들 수 있습니다.

---

<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월 7, 2023, 12:39오전 UTC](https://meta.discourse.org/t/configure-automatic-backups-for-discourse/14855/132 "2023-04-07T00:39:30Z")

</div>

> [@shyguy](#):
>
> **discourse B2 설정** 구성하기 (discourse \> admin \> settings)

[Configure an S3 compatible object storage provider for uploads](https://meta.discourse.org/t/configure-an-s3-compatible-object-storage-provider-for-uploads/148916) 문서에 설명된 대로 이러한 설정을 환경 변수로 설정하면, yml 파일만으로 새 서버에서 명령줄을 통해 사이트를 복원할 수 있습니다.

나머지는 좋은 계획인 것 같습니다.

---

<div class="post-metadata">

### Author: ![shyguy](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/shyguy/32/295079_2.png) [@shyguy](https://meta.discourse.org/u/shyguy)
#### Post date: [4월 7, 2023, 1:16오전 UTC](https://meta.discourse.org/t/configure-automatic-backups-for-discourse/14855/133 "2023-04-07T01:16:52Z")

</div>

> [@pfaffman](#):
>
> yml 파일만으로 명령줄을 통해 사이트를 새 서버로 복원할 수 있습니다.

`discourse restore <backup.tar.gz>`

환경 변수가 설정되어 있다면 버킷을 검색하게 되나요? 그렇다면 꽤 멋진 기능입니다.

그 경우, 복구가 필요한 드문 상황이 발생했을 때 `bash`에서 `export`를 사용하여 수동으로 설정할 수도 있을 것입니다. 즉, 어떤 이유로든 컨테이너 yml 파일에 시크릿을 저장하고 싶지 않은 경우 말입니다.

---

<div class="post-metadata">

### Author: ![Crius](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/crius/32/317214_2.png) [@Crius](https://meta.discourse.org/u/Crius)
#### Post date: [5월 14, 2023, 11:04오후 UTC](https://meta.discourse.org/t/configure-automatic-backups-for-discourse/14855/136 "2023-05-14T23:04:50Z")

</div>

> [@pfaffman](#):
>
> 자체 호스팅(self-hosted)을 사용하는 경우 `/var/discourse/shared/standalone/backups/default`에서 이를 액세스할 수 있습니다.

확인차 질문드립니다. S3 백업으로 전환하여 정상 작동하는지 테스트한 후, 사용 중인 공간을 확보하기 위해 해당 폴더의 내용을 안전하게 삭제해도 될까요?

[이전 페이지](https://meta.discourse.org/t/configure-automatic-backups-for-discourse/14855.md?page=1)

[다음 페이지](https://meta.discourse.org/t/configure-automatic-backups-for-discourse/14855.md?page=3)
