나는 셀프 호스팅의 자유를 좋아하지만, 문제가 생기면 책임은 나에게 있다는 의미이기도 합니다. Docker 설정이 커짐에 따라 디스크 오류나 잘못된 업데이트로 인해 문제가 얼마나 쉽게 발생할 수 있는지에 대해 더 많이 생각하기 시작했습니다. 일상적인 작업을 추가하지 않고도 원활하게 실행되는 백업을 원했습니다. 이를 위해서는 임시 복사 스크립트 접근 방식을 변경해야 합니다. 바로 그때 제가 정말 아끼는 데이터를 보호하기 위해 Docker 서비스에 대한 백업 전략을 설정했습니다. 또한 백업 프로세스를 자동화하기 위해 작업 흐름에 셀프 서비스 백업 도구를 도입했습니다.
내 셀프 케어 서비스는 무시하기에는 너무 중요해졌습니다.
컨테이너가 교체되었습니다. 정보가 없었습니다.
처음 셀프호스팅을 시작했을 때는 걱정할 데이터가 많지 않았습니다. 내가 운영한 서비스의 대부분은 쉽게 다시 설치할 수 있는 실험이나 도구였습니다. 문제가 발생하면 컨테이너를 다시 빌드하고 계속할 수 있습니다.
내 설정이 커지면서 이것이 변경되었습니다. 저는 매일 의존하던 일에 셀프 서비스를 사용하기 시작했습니다. 내 문서, 사진, 메모 및 기타 개인 파일이 더 이상 내 컴퓨터의 임의 폴더에 흩어져 있지 않습니다. 그들은 내가 설정하고 정리하는 데 시간을 들인 서비스 내부에 앉아 있었습니다.
컨테이너 자체는 나를 괴롭히지 않았습니다. 나는 그 중 대부분을 재현할 수 있다는 것을 알고 있었습니다. 나를 괴롭히는 것은 그 뒤에 숨겨진 정보였습니다. 컨테이너를 잃어버리면 곤란할 것입니다. 수년간의 사진, 문서 또는 서비스 데이터를 잃는 것은 완전히 다른 문제입니다. 그 시점에서는 백업을 나중에 걱정할 일로 취급하는 것이 더 이상 의미가 없었습니다.
백업 모드가 작동하지 않았습니다.
알고는 있었지만 늘 미루었지
이전 백업 루틴은 간단했습니다. 생각날 때마다 중요한 Docker 폴더를 다른 드라이브에 복사했습니다. 그것은 한동안 효과가 있었지만 나는 그것에 의존할 수 없었습니다. 업무로 바쁘거나 다른 서비스를 설정하는 경우 백업을 잊어버리기 쉬웠고 때로는 다른 백업을 생성하기까지 몇 주가 소요되기도 했습니다.
다양한 볼륨과 디렉터리를 사용하는 여러 Docker 서비스로 인해 내가 백업한 내용과 시기를 추적하는 것도 어려워졌습니다. 나는 결국 이 프로세스를 부분적으로 자동화하는 스크립트를 작성했지만 스택이 커짐에 따라 접근 방식이 내가 유지해야 할 다른 것처럼 느껴졌습니다. 그때 나는 Kopia로 이사했습니다.
전체 복사 과정을 자동화했습니다
자동 조종 장치의 백업
복잡한 설정을 직접 하는 대신 Kopia를 백업용으로 사용하기로 결정했습니다. Docker 서비스와 함께 설치하고 실제로 중요한 데이터가 포함된 폴더를 가리켰습니다. 설정은 매우 간단했습니다. 백업 저장소를 생성하고 선택한 폴더의 스냅샷을 찍도록 Kopia를 구성했습니다. 이 스냅샷은 하나의 사본을 보관하는 대신 다양한 버전의 정보를 제공했습니다.
또한 백업이 자동으로 실행되도록 일정을 설정했습니다. 백업 도구를 열거나 수동으로 아무것도 시작할 필요가 없었습니다. 모든 것이 구성되면 서비스를 정상적으로 계속 사용하는 동안 백그라운드에서 실행할 수 있습니다. 또 마음에 들었던 점은 코피아가 중요한 데이터만 다루면 된다는 점이었습니다. Docker 컨테이너 자체를 복사하거나 쉽게 다시 빌드할 수 있는 파일에 스토리지를 덤프할 필요가 없었습니다.
백업 스토리지에 대한 암호화도 활성화했습니다. 이를 통해 일상적인 작업 흐름에 추가 단계를 추가하지 않고도 또 다른 보호 계층을 확보할 수 있었습니다. 가장 큰 변화는 간단했습니다. 백업 프로세스가 마침내 할 일 목록의 또 다른 작업이 아니라 설정의 일부가 되었다는 것입니다.
사본은 더 이상 골칫거리가 아닙니다.
서비스를 추가해도 더 이상 귀찮게 하지 않습니다
이로 인해 새로운 서비스를 추가하는 것이 매우 쉬워졌습니다. 이전에는 모든 새로운 Docker 컨테이너에는 또 다른 작은 문제가 있었습니다. 데이터가 어디에 있고 어떻게 보호합니까? 이제 구축할 수 있는 백업 설정이 생겼습니다. 새 서비스를 배포할 때 중요한 데이터가 백업 설치 대상 위치에 저장되어 있는지 확인하기만 하면 됩니다. 그 후에는 이 서비스에 대해 별도의 백업 루틴을 만들 필요가 없습니다.
또한 자체 관리 스택을 관리하는 방법도 변경되었습니다. 한 번의 실수로 되돌릴 수 없다는 걱정 없이 새로운 서비스를 실험할 수 있습니다. 나는 아직도 백업을 보관하고 있지만 항상 그것에 대해 생각하지는 않습니다. 이것은 아마도 나에게 가장 큰 개선일 것이다. 백업은 기억해야 하는 것에서 설정의 일부로 간단히 신뢰할 수 있는 것으로 바뀌었습니다.
이걸 더 일찍 했으면 좋았을 텐데
제가 배운 가장 큰 교훈은 간단합니다. 데이터 손실을 복구하는 것보다 백업을 설정하는 것이 훨씬 쉽다는 것입니다. Kopia는 또 다른 복잡한 관리 시스템을 추가하지 않고도 Docker 서비스 뒤에 있는 데이터를 보호할 수 있는 간단한 방법을 제공했습니다.
백업이 처음부터 완벽할 필요는 없다고 생각합니다. 문제가 발생했을 때 도움을 줄 수 있을 만큼 신뢰할 수 있으면 됩니다. 자체 호스팅 서비스에 중요한 데이터가 저장되어 있는 경우 백업 설정은 실제로 필요하기 전에 수행해야 하는 작업입니다.