본문으로 건너뛰기

백업/복구

데이터 손실은 예고 없이 발생합니다. 정기적인 백업만이 시스템 장애, 인적 오류, 보안 사고로부터 비즈니스를 보호할 수 있습니다. KIWI를 사용하면 복잡한 백업 스크립트 없이 웹 UI에서 손쉽게 백업을 관리할 수 있습니다.


백업 관리 페이지

왜 백업이 중요한가요?

백업이 없으면 다음과 같은 상황에서 큰 피해를 입을 수 있습니다:

  • 서버 하드웨어 장애: 백업 없이는 전체 데이터 손실이 발생하지만, 백업이 있으면 몇 시간 내에 복구할 수 있습니다.
  • 실수로 데이터 삭제: 백업 없이는 복구가 불가능하지만, 백업이 있으면 이전 시점으로 복원할 수 있습니다.
  • 랜섬웨어 감염: 백업 없이는 몸값을 지불하거나 포기해야 하지만, 백업이 있으면 깨끗한 백업으로 복구할 수 있습니다.
백업의 3-2-1 규칙
  • 3개의 데이터 복사본 유지
  • 2개의 다른 저장 매체에 보관
  • 1개는 오프사이트(외부 스토리지)에 보관

백업 유형

KIWI에서 지원하는 백업 유형입니다:

  • etcd 백업: Kubernetes 클러스터 상태를 백업합니다. 매일 백업하며, 클러스터 장애 복구에 사용합니다.
  • Docker 백업: 컨테이너, 볼륨, 이미지를 백업합니다. 매일 백업하며, Docker/Podman 환경 복구에 사용합니다.
  • 외부 스토리지: 백업 파일을 장기 보관합니다. 주간으로 MinIO, S3에 안전하게 보관합니다.
etcd란?

etcd는 Kubernetes의 모든 클러스터 상태(Pod, Service, ConfigMap 등)를 저장하는 분산 키-값 저장소입니다. etcd가 손상되면 전체 클러스터를 재구성해야 할 수 있습니다.


etcd 백업 설정하기

Kubernetes 클러스터의 etcd를 백업하는 방법입니다.

사전 조건: Kubernetes 클러스터가 **[런타임 환경]**에 등록되어 있어야 합니다.

Step 1: 백업 관리 페이지 이동

좌측 메뉴에서 **[백업 관리]**를 클릭합니다.

Step 2: etcd 백업 탭 선택

상단 탭에서 etcd 백업을 클릭합니다.

Step 3: 백업 대상 클러스터 선택

클러스터 선택 드롭다운에서 백업할 Kubernetes 클러스터를 선택합니다. 클러스터 연결 상태가 "연결됨"인지 확인하세요.

Step 4: 백업 설정 구성

백업 설정 정보를 입력합니다:

  • 백업 이름: 백업을 식별할 수 있는 이름입니다. (예: etcd-daily-backup)
  • 저장 위치: 백업 파일이 저장될 경로입니다. (예: /backup/etcd/)
  • 보관 기간: 백업 파일을 보관할 일수입니다. (예: 30일)
  • 스케줄: cron 표현식으로 백업 주기를 설정합니다. (예: 0 2 * * *는 매일 새벽 2시)

Step 5: 즉시 백업 실행 (선택사항)

지금 백업 버튼을 클릭하면 즉시 백업을 실행할 수 있습니다. 백업 진행 상태를 실시간으로 확인할 수 있습니다.

Step 6: 백업 완료 확인

백업 이력 테이블에서 백업 결과를 확인합니다:

  • 백업 시간
  • 백업 크기
  • 상태 (성공/실패)

Docker 컨테이너 백업하기

Docker 컨테이너와 볼륨을 백업하는 방법입니다.

사전 조건: Docker 런타임이 **[런타임 환경]**에 등록되어 있어야 합니다.

Step 1: 백업 관리 페이지 이동

좌측 메뉴에서 **[백업 관리]**를 클릭합니다.

Step 2: Docker 백업 탭 선택

상단 탭에서 Docker 백업을 클릭합니다.

Step 3: 백업 대상 선택

백업할 대상을 선택합니다:

  • 컨테이너: 실행 중인 컨테이너의 상태를 백업합니다.
  • 볼륨: 데이터 볼륨을 백업합니다.
  • 이미지: 컨테이너 이미지를 백업합니다.

Step 4: 백업 옵션 설정

백업 옵션을 설정합니다:

  • 압축 방식: gzip, tar 등 압축 방식을 선택합니다.
  • 저장 위치: 로컬 또는 원격 경로를 지정합니다.
  • 제외 패턴: 백업에서 제외할 항목을 지정합니다.

Step 5: 백업 실행

백업 시작 버튼을 클릭합니다. 백업 진행률을 모니터링할 수 있습니다.


외부 스토리지 백업 설정하기

MinIO나 S3에 백업을 저장하도록 설정하는 방법입니다.

Step 1: 스토리지 설정 탭 이동

[백업 관리] 페이지에서 스토리지 설정 탭을 클릭합니다.

Step 2: 외부 스토리지 추가

스토리지 추가 버튼을 클릭합니다. 지원되는 스토리지 유형:

  • MinIO: 온프레미스 오브젝트 스토리지입니다. 자체 인프라에 백업을 저장할 때 사용합니다.
  • AWS S3: Amazon S3 호환 스토리지입니다. 클라우드 백업에 적합합니다.
  • NFS: 네트워크 파일 시스템입니다. 기존 NFS 인프라가 있는 경우 사용합니다.

Step 3: 스토리지 연결 정보 입력

MinIO 연결 예시:

  • 엔드포인트: MinIO 서버 주소입니다. (예: minio.company.com:9000)
  • Access Key: MinIO 접근 키입니다.
  • Secret Key: MinIO 비밀 키입니다.
  • 버킷 이름: 백업을 저장할 버킷입니다. (예: kiwi-backup)

Step 4: 연결 테스트 및 저장

연결 테스트 버튼을 클릭하여 연결이 정상인지 확인합니다. 연결 성공 메시지가 나타나면 저장 버튼을 클릭합니다.


백업에서 복구하기

이전 백업에서 시스템을 복구하는 방법입니다.

주의: 복구 작업은 기존 데이터를 덮어씁니다. 신중히 진행하세요.

Step 1: 복구 이력 탭 이동

[백업 관리] 페이지에서 복구 이력 탭을 클릭합니다.

Step 2: 복구할 백업 선택

백업 목록에서 복구할 백업을 선택합니다. 다음 정보를 확인하세요:

  • 백업 날짜/시간
  • 백업 크기
  • 백업 유형 (etcd/Docker/스토리지)

Step 3: 복구 대상 확인

복구 미리보기에서 복구될 항목을 확인합니다. 현재 데이터가 백업 시점으로 덮어써진다는 경고를 확인하세요.

Step 4: 복구 실행

복구 시작 버튼을 클릭합니다. 보안 확인을 위해 관리자 비밀번호를 입력합니다.

Step 5: 복구 완료 확인

복구 결과를 확인합니다:

  • 복구 상태 (성공/실패)
  • 복구 소요 시간
  • 복구된 항목 목록

자동 백업 스케줄 설정하기

매일 자동으로 백업되도록 설정하는 방법입니다.

Step 1: 스케줄 설정 탭 이동

[백업 관리] 페이지에서 스케줄 설정 탭을 클릭합니다.

Step 2: 새 스케줄 생성

스케줄 추가 버튼을 클릭합니다.

Step 3: 스케줄 설정

스케줄 정보를 입력합니다:

  • 스케줄 이름: 스케줄을 식별할 수 있는 이름입니다. (예: daily-full-backup)
  • 실행 주기: 매일, 매주, 매월 중 선택합니다.
  • 실행 시간: 백업을 실행할 시각입니다. (예: 02:00)
  • 백업 대상: etcd, Docker, 또는 전체를 선택합니다.
  • 보관 정책: 보관할 백업 개수 또는 기간입니다. (예: 최근 30개)

Step 4: 알림 설정 (선택사항)

백업 완료 시 알림을 받도록 설정합니다:

  • 성공 알림: 백업 성공 시 알림을 받습니다.
  • 실패 알림: 백업 실패 시 알림을 받습니다.
  • 이메일: 알림을 받을 이메일 주소를 입력합니다.

Step 5: 스케줄 활성화

저장 및 활성화 버튼을 클릭합니다. 스케줄 목록에서 활성 상태를 확인합니다.


자주 묻는 질문

백업이 실패합니다

오류별 해결 방법:

  • "No space left on device": 저장 공간이 부족합니다. 저장 경로의 디스크 공간을 확보하세요.
  • "Permission denied": 쓰기 권한이 없습니다. 저장 경로의 권한을 확인하세요.
  • "Connection timeout": 네트워크 문제입니다. 대상 서버 연결 상태를 확인하세요.

복구 후 서비스가 정상 작동하지 않습니다

확인 사항:

  1. 버전 호환성: 백업 시점과 현재 Kubernetes/Docker 버전 차이 확인
  2. 설정 변경: 백업 이후 변경된 설정이 있는지 확인
  3. 외부 의존성: 데이터베이스, 외부 API 연결 상태 확인
복구 후 체크리스트
  • 모든 Pod가 Running 상태인지 확인
  • 서비스 엔드포인트 접근 가능 여부 확인
  • 로그에 오류가 없는지 확인

백업 용량이 너무 큽니다

용량 절약 방법:

  1. 압축 활성화: gzip 압축으로 50~70% 용량 절약
  2. 제외 패턴 설정: 로그, 캐시 파일 제외
  3. 증분 백업: 변경된 부분만 백업 (지원되는 경우)

외부 스토리지 연결이 안 됩니다

  • Access Key와 Secret Key가 올바른지 확인
  • 버킷이 존재하고 쓰기 권한이 있는지 확인
  • 방화벽에서 해당 포트(MinIO: 9000, S3: 443)가 열려 있는지 확인

관련 가이드

추천 다음 단계