주간 자동 복구 스크립트를 작성하신 분 계신가요?

크론(cron) 스크립트를 작성해서 매주 자동으로 S3에서 백업을 복원하고 있습니다.

매주 일요일에 실행되도록 하면, UI에 들어가서 직접 복원할 필요가 없습니다. (우리 사이트의 복원에 몇 시간이 걸리거든요…)

비슷한 작업을 해 보신 분이 계신가요?

왜 이렇게 자주 복원해야 하나요?

사이트가 매주 손상되고 있다는 건가요?

이것은 테스트 사이트용입니다. 그래서 설정이나 기능들을 실험해 볼 수 있습니다.

백업이 실제로 정상적인지 확인하는 방법입니다. 대부분의 사람들이 실제로 복원 테스트를 수행하지 않는다는 사실을 알고 계셨나요?

제가 이 작업을 수행한다면, 백업을 복원하기 위해 격리된 Docker 컨테이너를 실행하겠습니다. 이 Docker 컨테이너는 복원이 성공적으로 완료된 후 폐기됩니다. 이 새로운 컨테이너는 외부 세계와 통신할 수 없도록 설정됩니다(예: 이메일 전송 금지, 새 콘텐츠 다운로드 금지 등).

백업 복원은 다음과 같은 명령어를 사용한 간단한 docker exec로 수행될 수 있습니다.

discourse enable_restore
discourse restore <backup>.tar.gz

그러나 확인을 위해 해당 사이트와 동일한 컨테이너 이미지가 필요합니다… 따라서 복원 후 이미지 재빌드를 수행하고 그 다음에 확인하는 것이 좋을 수도 있습니다.

docker exec app bash -c '$(discourse restore | grep discourse|head -1)'

을 실행하면 최신 백업이 복원됩니다. 이후 원하는 시간에 실행되도록 cron을 설정하면 됩니다.