메인 콘텐츠로 건너뛰기 탐색으로 건너뛰기 푸터로 건너뛰기

백업 및 복원

실행 중인 저장소를 두 번째 머신으로 복사하고, 첫 번째 머신을 내린 다음, 데이터를 다시 가져옵니다.

백업 및 복원

앱이 프로덕션에서 실행 중입니다. 이제 백업해두세요. rdc는 앱, 데이터베이스, 파일, 구성을 포함한 전체 저장소를 두 번째 머신에 복사하고, 첫 번째 머신이 사라졌을 때 그 복사본으로 되돌립니다.

이 튜토리얼은 그것을 설명만 하지 않습니다. 실제 머신 두 대에서 그대로 실행하고, 마지막에는 데이터를 직접 읽어 확인합니다.

세 가지 단계

복사, 복원, 증명

  1. 저장소를 직접 관리하는 머신에 복사합니다.
  2. 그 복사본을 독립된 저장소로 복원합니다.
  3. 데이터를 다시 읽어 증명합니다.

1단계: 반드시 살아남아야 하는 데이터

rdc term connect my-app --command 'cat orders.txt'

먼저 운영 중인 repository에서 데이터를 읽어냅니다. 파일 하나에 줄 하나, 그래야 마지막 증명이 그냥 믿어야 하는 것이 아니라 직접 눈으로 볼 수 있는 것이 됩니다.

아래의 모든 과정은 이 한 줄을 기준으로 평가됩니다. 7단계에서 다시 확인하세요.

2단계: 저장소를 두 번째 머신으로 복사

rdc repo push my-app --to machine-12

repository를 두 번째 머신으로 복사합니다. 첫 푸시는 암호화된 이미지 전체를 전송하며, 이 환경에서는 약 2기가바이트가 30초에서 40초 정도 걸립니다. 이후의 모든 푸시는 변경된 블록만 전송합니다. 대상에 도착하는 것은 백업 아티팩트이지, 두 번째로 운영 중인 repository가 아닙니다.

델타 전송 튜토리얼에서 이 증분 전송 과정을 실시간으로 보여줍니다.

아티팩트는 실행 중인 저장소가 아닙니다. 이것이 5단계가 존재하는 이유입니다.

3단계: 백업 머신에 데이터가 도착했다

rdc repo list --machine machine-12

백업 머신에 무엇을 보관하고 있는지 확인합니다. 복사본은 config에서 해석된 자체 이름으로 나타납니다. 원시 식별자를 가진 두 번째 행은 보존된 델타 베이스이며, 이것이 이 머신으로의 다음 푸시를 증분 방식으로 만들어 줍니다.

4단계: 재해 발생

rdc repo down my-app --unmount

기본 머신을 오프라인으로 전환하세요. 서비스를 중지하고 암호화된 볼륨을 언마운트합니다. 이후부터는 모든 작업이 다른 머신에 있는 복사본을 대상으로 이루어집니다.

5단계: 아티팩트를 저장소로 되돌리기

rdc backup restore my-app@machine-12 --as my-app-restored --machine machine-12 --yes

restore는 푸시된 복사본을 repository로 바꾸는 명령입니다. 이름은 --as로, 위치는 --machine으로 지정하고, --yes로 확인합니다. 새 이름으로 복원하면 아무것도 덮어쓰지 않으므로, 운영 중인 머신에서도 안전하게 연습할 수 있습니다.

이 작업은 필요해지기 전에 머신마다 한 번씩 해두세요. 한 번도 왕복시켜보지 않은 머신은, 푸시가 아무리 순조로워 보여도 백업된 것이 아닙니다. 그리고 새 이름으로 복원하는 작업은 트래픽을 처리 중인 머신에서도 안전하게 실행할 수 있습니다.

6단계: 마운트하기

rdc repo up my-app-restored --no-start

복원된 repository를 마운트합니다. 컨테이너는 의도적으로 중지된 채로 둡니다. 여기서 증명하려는 것은 데이터이지 애플리케이션이 아닙니다.

7단계: 데이터가 살아남았다

rdc term connect my-app-restored --command 'cat orders.txt'

1단계와 같은 명령을, 두 명령 전까지 존재하지 않았던 repository를 대상으로 실행합니다. 줄은 바이트 단위로 그대로 돌아옵니다. 그것도 한 번도 원본이었던 적 없는 머신에서 말입니다.

두 결과를 나란히 놓고 비교해봅시다. 1단계, 원본 머신의 원본 저장소에서:

order-1042 paid 2026-08-16

7단계, 두 명령어 전까지는 존재하지도 않았던 저장소에서, 그것도 다른 하드웨어 위에서:

order-1042 paid 2026-08-16

이것이 이 튜토리얼입니다. 백업이 성공했다는 보고가 아니라, 그 데이터 한 줄을 다른 머신에서 그대로 읽어낸 것입니다.

8단계: 되돌릴 수 있는 백업

rdc backup snapshot my-app

머신으로 복사하면 지금 이 순간의 repository를 그대로 얻습니다. 거슬러 되돌릴 수 있는 이력을 원한다면, 스냅샷이 청크 스토리지로 전송됩니다. 첫 실행은 기록된 블록을 모두 업로드하고, 이후 실행은 변경된 부분만 업로드하며, 어떤 스냅샷이든 단독으로 복원할 수 있습니다. 이 명령은 여기서 입력만 하고 실행하지 않습니다. 업로드에는 계정 서버와 라이선스가 있는 repository가 필요한데, 녹화 환경에는 둘 다 없기 때문입니다. 계정이 있는 직접 설치 환경에서는 이 명령이 그대로 실행됩니다.

계정을 사용하는 실제 환경에서는 전체 흐름이 다음과 같습니다.

rdc backup snapshot my-app
rdc backup manifests my-app
rdc backup restore my-app --as my-app-yesterday --at <snapshot-id> --up

스냅샷, 보존 정책, 검증에 대한 자세한 내용은 백업 및 복원 가이드에서 다룹니다.


다음: 네트워킹 및 도메인.