자체 호스팅을 사용하는 경우, 서버에 치명적인 문제가 발생할 것에 대비하여 오프사이트 백업을 유지해야 합니다. 가 아무런 예고 없이 하루아침에 폐업하거나, /var/discourse 디렉터리를 실수로 삭제하여 설치된 모든 것이 사라진 상황을 상상해 보세요.
최소한의 백업
백업이 활성화되어 있는지 확인하세요.
고려해야 할 사이트 설정:
enable backups: on (기본값: on)backup frequency: 얼마만큼의 데이터 손실을 감수할 수 있나요? (기본값: 7일). @pfaffman은 1일을 권장합니다.backup time of day: 백업이 진행되는 동안 포럼이 읽기 전용으로 전환되는 시점을 언제로 하고 싶으신가요?backup with uploads: 업로드 파일을 다른 곳에 저장하거나 다른 방식으로 백업하지 않는 한 on으로 설정하세요. (기본값: on)maxiumum backups: 얼마나 조심스러우신가요? 디스크 공간이 얼마나 있나요? (기본값: 5)
이렇게 하면 데이터베이스가 손상된 경우 최근 백업으로 복원할 수 있지만, Discourse 서버 자체가 사라지는 상황에서는 보호되지 않습니다.
원격 백업
새 서버에 사이트를 복원하려면 최소한 Discourse가 생성하는 백업이 필요합니다. /var/discourse//containers에 컨테이너가 있다면 새 서버 설정이 훨씬 쉬워집니다.
오프사이트 백업을 유지하는 정확한 방법은 이 문서의 범위를 약간 벗어날 수 있지만, rsync와 같은 도구를 사용하여 데이터를 원격 서버로 복사하는 방법이 있습니다. 이를 위한 가이드가 수십 개 있습니다; 자신에게 맞는 가이드를 찾아보세요.
/var/discourse/containers 파일은 자주 변경되지 않으므로, 변경 사항을 만들 때만 수동으로 백업하는 것도 큰 부담이 되지 않습니다. 이 파일에는 일반적으로 SMTP와 플러그인이 포함되어 있으며, 기억을 통해 재구성하는 것이 비교적 쉽지만, 긴급 상황에서 이를 해야 하는 것은 피하고 싶을 것입니다. 만약 그런 일이 발생하면 몇 가지 플러그인이 누락되고 메일이 작동하지 않는 상태로라도 시스템을 다시 구동하고, 사이트가 불안정하게 돌아가는 동안 나머지 문제를 해결할 수 있습니다.
S3로 백업
오프사이트 백업을 유지하는 가장 편리한 방법은 https://meta.discourse.org/t/setting-up-file-and-image-uploads-to-s3/7229에 설명된 대로 S3로 푸시하는 것입니다. 이렇게 하고 S3 구성 설정을 나중에 찾을 수 있는 곳(또는 app.yml 파일)에 보관해 두면, 새 서버 설정이 완료되면 S3에서 사이트를 직접 복원할 수 있습니다.
app.yml 파일에 설정을 포함할 수 있습니다. app.yml의 env 섹션에 다음과 같은 내용을 포함하면, 이러한 설정이 웹 인터페이스에서 사라지며 관리 계정을 만들고 로그인할 필요 없이 https://meta.discourse.org/t/restore-a-backup-from-command-line/108034를 통해 복원할 수 있게 됩니다.
DISCOURSE_S3_ACCESS_KEY_ID: 'key'
DISCOURSE_S3_SECRET_ACCESS_KEY: 'secret'
DISCOURSE_BACKUP_LOCATION: 's3'
DISCOURSE_ENABLE_S3_UPLOADS: true
DISCOURSE_S3_BACKUP_BUCKET: 'my-backup-bucket'
DISCOURSE_S3_REGION: 'us-west-1'
S3에 업로드 파일도 있고 S3 제공업체의 안정성을 신뢰한다면, Discourse가 데이터베이스만 백업하도록 설정할 수 있습니다(위 설정 참조). 이렇게 하면 모든 업로드 파일의 여러 사본을 저장하는 것을 방지할 수 있습니다. 이 방법을 선택한다면, 실제로 모든 업로드 파일이 S3에 있는지 확인하기 위해 테스트 복원을 수행해야 합니다.
연습이 완벽을 만든다
가장 최근 백업 사본 하나만 가지고 있어도 위기 상황에서 복원하는 데 최소한의 요건을 충족하지만, 백업이 실제로 작동하는지 정말 확실하게 알고 싶다면 적어도 한 번, 가능하면 정기적으로 테스트해야 합니다. 새 서버를 구동하고 백업에서 복원할 수 있는지 확인해 보세요.