백업 관리
경로: /backup
서비스 운영 중 예기치 않은 장애나 데이터 손실은 언제든 발생할 수 있습니다. [백업 관리] 페이지에서는 Velero, 컨트롤 플레인, Docker/Podman 컨테이너의 백업 및 복구를 손쉽게 관리할 수 있어, 만일의 상황에서도 빠르게 시스템을 복구할 수 있습니다.

이 페이지에 접근할 수 없다면 기관 관리자에게 권한을 요청하세요.
왜 백업이 필요한가요?
백업은 다음과 같은 상황에서 여러분의 서비스를 보호합니다:
- 시스템 장애 복구: 서버 장애, 디스크 손상 등의 상황에서 이전 상태로 빠르게 복원
- 잘못된 변경 되돌리기: 실수로 삭제한 설정이나 데이터를 복구
- 마이그레이션 지원: 새로운 환경으로 시스템을 이전할 때 데이터 이동
- 감사 및 규정 준수: 특정 시점의 시스템 상태를 보존하여 감사 요건 충족
3-2-1 규칙을 따르세요: 최소 3개의 백업 사본을 2가지 다른 유형의 미디어에 저장하고, 그 중 1개는 반드시 원격 위치에 보관하세요. KIOPS의 외부 스토리지 연동 기능이 이를 쉽게 만들어줍니다.
지원하는 백업 유형
KIOPS는 다양한 런타임 환경에 맞는 백업을 지원합니다:
- Velero 백업: Kubernetes 클러스터를 대상으로 합니다. 워크로드(Deployment, Service 등)와 PV 데이터를 외부 오브젝트 스토리지에 저장합니다. 세밀한 네임스페이스·리소스 단위 백업과 복원에 사용합니다.
- 컨트롤 플레인 백업: Kubernetes 마스터 노드를 대상으로 합니다. etcd 스냅샷과 PKI 인증서(
/etc/kubernetes/pki)를 단일 번들로 오브젝트 스토리지에 백업합니다. 클러스터 전체 재구성 수준의 DR(재해복구)에 사용합니다. - Docker 백업: Docker 호스트를 대상으로 합니다. 컨테이너, 볼륨, 이미지를 백업하며, Docker 기반 서비스 보호에 사용합니다.
- Podman 백업: Podman 호스트를 대상으로 합니다. 컨테이너, 볼륨, 이미지를 백업하며, Podman 기반 서비스 보호에 사용합니다.
두 가지 K8s 백업은 서로 다른 대상을 보호합니다. Velero는 애플리케이션 워크로드와 영구 볼륨 데이터를 보호하고, 컨트롤 플레인 백업은 클러스터 자체(etcd 상태 + PKI 인증서)를 보호합니다. 완전한 DR을 위해서는 두 가지를 함께 운영하는 것을 권장합니다.
UI 구성 살펴보기
백업 관리 페이지는 세 개의 탭으로 구성되어 있습니다:
- 백업 목록: 백업을 관리합니다. 백업 생성, 조회, 삭제, 복원 실행 작업을 수행합니다.
- 저장소 관리: 외부 스토리지(S3, 오브젝트 스토리지)를 연동하고 관리합니다. (저장소 조회 권한이 있을 때 표시됩니다.)
- 복구 이력: 복구 기록을 확인합니다. 과거 복원 작업 결과를 조회합니다.
설정 마법사와 통계는 별도 탭이 아니라 페이지 상단의 설치 상태 영역(설정 마법사 버튼)과 헤더 통계 카드로 제공됩니다.
백업 목록에서 확인할 수 있는 정보
각 백업 항목에서는 다음 정보를 확인할 수 있습니다:
- 이름: 백업을 식별하는 고유 이름입니다.
- 유형: Velero, 컨트롤 플레인, Docker, Podman 중 하나입니다.
- 파일 크기: 백업 파일의 용량입니다.
- 생성 시간: 백업이 만들어진 날짜와 시간입니다.
- 상태: 성공, 실패, 진행중 중 하나입니다.
- 저장소: 백업이 저장된 외부 스토리지의 이름과 엔드포인트 주소를 표시합니다. 외부 스토리지를 사용하지 않은 경우
-로 표시됩니다.
각 백업에 대해 복원, 삭제, 다운로드 작업을 수행할 수 있습니다.
처음 시작하기: 백업 설정 마법사
처음 백업 기능을 사용한다면 설정 마법사가 단계별로 안내해드립니다.
설정 마법사 실행 방법
- 좌측 메뉴에서 [백업 관리] 페이지로 이동합니다.
- 처음 접속 시 자동으로 설정 마법사가 나타납니다.
- 이미 설정을 완료한 경우, 페이지 상단의 설치 상태 영역에서 설정 마법사 시작 버튼을 클릭하세요.
- 백업 대상 선택: 백업할 환경을 선택합니다.
- Kubernetes 환경이라면 Velero 또는 컨트롤 플레인 백업을 선택
- Docker/Podman 환경이라면 해당 옵션을 선택
- 스토리지 설정: 백업 파일을 저장할 위치를 선택합니다.
- 로컬: 서버 내 디스크에 저장합니다. 빠른 백업/복구 속도가 장점이지만, 서버 장애 시 백업도 손실될 위험이 있습니다.
- 오브젝트 스토리지: 온프레미스 S3 호환 저장소입니다. KIOPS가 자동 설치를 지원하며, 로컬 네트워크에서 사용할 수 있습니다.
- S3: AWS S3 또는 호환 스토리지입니다. 높은 내구성과 원격 보관이 장점이지만, 안정적인 네트워크 연결이 필요합니다.
- 스케줄 설정 (선택): 자동 백업 주기를 설정합니다.
- 완료 버튼을 클릭하여 설정을 마칩니다.
프로덕션 환경에서는 외부 스토리지 + 자동 스케줄을 함께 설정하는 것을 권장합니다. 로컬 서버에 문제가 생겨도 원격 저장소에서 백업을 복구할 수 있습니다.
컨트롤 플레인 백업 생성하기
컨트롤 플레인 백업은 Kubernetes 마스터 노드의 etcd 스냅샷과 PKI 인증서를 하나의 번들로 오브젝트 스토리지에 저장합니다. 클러스터 전체를 재구성해야 하는 DR 상황에서 사용합니다.
단계별 가이드
- 백업 관리 페이지에서 백업 목록 탭을 선택합니다.
- 백업 생성 버튼을 클릭한 뒤, 백업 유형으로 컨트롤플레인을 선택합니다. (K8s 백업은 Velero / 컨트롤플레인 중 선택)
- 백업 생성 모달에서 다음 정보를 입력합니다:
- 인프라 선택: 백업할 Kubernetes 클러스터를 선택합니다. 마스터 노드 정보가 자동으로 로드됩니다.
- 백업 이름: 식별하기 쉬운 이름을 입력합니다. 기본값:
cp-YYYYMMDD-HHmmss - 마스터 노드 SSH 자격증명: 마스터 노드에 접근할 SSH 사용자명과 비밀번호를 입력합니다.
- sudo 비밀번호: etcd 스냅샷 생성에 필요한 sudo 비밀번호를 입력합니다.
- 백업 생성 버튼을 클릭합니다.
- 백업 완료 후 컨트롤 플레인 백업 목록에서 상태가 성공으로 변경되면 완료입니다.
컨트롤 플레인 백업 시 입력하는 SSH 자격증명은 서버에 저장되지 않습니다. 복원 시에도 다시 입력해야 하므로, 자격증명을 안전한 곳에 보관하세요.
백엔드가 마스터 노드에 SSH로 접속하여 etcd 스냅샷 저장 → PKI 인증서 압축 → 오브젝트 스토리지 업로드 순으로 자동 처리합니다.
Velero 백업 옵션
Velero 백업 생성 시 다음 옵션을 설정할 수 있습니다.
PVC 데이터 포함
- 체크박스: PVC 데이터 포함 (기본: 활성화)
- 활성화 시 PersistentVolume에 저장된 실제 데이터를 함께 백업합니다 (File System Backup 방식).
- 데이터베이스, 캐시 등 스테이트풀 워크로드의 완전한 복구에 필요합니다.
NFS 기반 스토리지 환경에서는 PVC 데이터 백업 시 성능 영향이 발생할 수 있습니다. 트래픽이 적은 시간대에 백업하거나, 필요에 따라 옵션을 비활성화하세요.
리소스 필터링
백업에 포함할 리소스 범위를 설정합니다:
- PV/PVC 제외 (권장): Deployment, Service, ConfigMap 등 애플리케이션 리소스만 포함합니다. PersistentVolume 관련 리소스는 제외됩니다.
- 앱 리소스만: Deployment, StatefulSet, Service, ConfigMap, Secret, Ingress 등 핵심 앱 리소스만 포함합니다.
- 전체 리소스: 필터 없이 모든 리소스를 백업합니다.
Docker/Podman 백업 생성하기
Docker 또는 Podman 환경에서는 컨테이너, 볼륨, 이미지를 선택적으로 백업할 수 있습니다.
단계별 가이드 (Docker)
- 백업 관리 페이지에서 백업 목록 탭을 선택합니다.
- 백업 생성 버튼을 클릭합니다.
- 백업 생성 모달에서 다음을 설정합니다:

- 유형: Docker를 선택합니다.
- 대상 호스트: 백업할 Docker 호스트를 선택합니다.
- 백업 대상: 컨테이너, 볼륨, 이미지 중 선택합니다.
- 백업 시작 버튼을 클릭합니다.
단계별 가이드 (Podman)
Podman 백업도 Docker와 동일한 방식으로 진행됩니다.
백업 대상 선택 가이드
- 컨테이너: 실행 중인 컨테이너의 상태를 포함합니다. 컨테이너 설정과 상태 복원이 필요할 때 선택합니다.
- 볼륨: 영구 데이터 볼륨을 포함합니다. 데이터베이스, 파일 등 데이터 보존이 중요할 때 선택합니다.
- 이미지: 컨테이너 이미지를 포함합니다. 특정 버전의 이미지를 보존하고 싶을 때 선택합니다.
대부분의 경우 볼륨이 가장 중요합니다. 컨테이너와 이미지는 재생성이 가능하지만, 볼륨에 저장된 데이터는 백업 없이는 복구할 수 없습니다.
외부 스토리지 연동하기
백업을 더 안전하게 보관하려면 외부 스토리지를 연동하세요. 로컬 서버에 문제가 생겨도 원격 저장소에서 복구할 수 있습니다.
지원하는 스토리지
- 오브젝트 스토리지 (SeaweedFS): S3 호환 오브젝트 스토리지입니다. 온프레미스, 프라이빗 클라우드 환경에 적합합니다.
- AWS S3: Amazon의 클라우드 스토리지입니다. 퍼블릭 클라우드, 하이브리드 환경에 적합합니다.
- S3 호환: S3 API를 지원하는 다른 스토리지입니다. 다양한 환경에 적합합니다.
연동 설정 단계
- 저장소 관리 탭을 선택합니다.
- 스토리지 추가 버튼을 클릭합니다.
- 스토리지 유형을 선택하고 연결 정보를 입력합니다:
오브젝트 스토리지 설정:
- 엔드포인트: 오브젝트 스토리지 서버 주소입니다. 예:
http://your-storage-server:8333 - Access Key: 접근 키입니다. 예: your-access-key
- Secret Key: 비밀 키입니다.
- 버킷 이름: 저장할 버킷입니다. 예: kiwi-backups
AWS S3 설정:
- 리전: AWS 리전입니다. 예: ap-northeast-2
- Access Key: AWS 접근 키입니다. 예: AKIA...
- Secret Key: AWS 비밀 키입니다.
- 버킷 이름: S3 버킷입니다. 예: my-backup-bucket
- 연결 테스트 버튼을 클릭하여 설정이 올바른지 확인합니다.
- 테스트 성공 시 저장 버튼을 클릭합니다.
S3 API와 호환되는 오브젝트 스토리지입니다. KIOPS는 SeaweedFS를 자동 설치 기본 옵션으로 지원하며, AWS S3 등 S3 호환 저장소도 직접 등록할 수 있습니다.
스토리지를 특정 Kubernetes 인프라에 연결하는 모달을 열면, 현재 선택 중인 인프라가 자동으로 선택되어 표시됩니다. 별도로 인프라를 다시 고를 필요 없이 빠르게 연결을 완료할 수 있습니다.
스토리지 자격증명(Access Key, Secret Key)은 KIOPS 내부에서 암호화되어 저장됩니다. 하지만 최소 권한 원칙에 따라, 백업 전용 사용자 계정을 생성하여 사용하는 것을 권장합니다.
백업에서 복구하기
문제가 발생했을 때 이전 백업으로 시스템을 복원할 수 있습니다.
복구 전 체크리스트
복구를 시작하기 전에 다음 사항을 확인하세요:
- 복구하려는 백업이 올바른 시점의 것인지 확인
- 현재 상태의 백업을 먼저 생성 (복구 후 되돌리기 위해)
- 복구 작업 중 서비스 중단이 필요한지 팀에 공유
- 관리자 비밀번호 준비
복구 단계
- 백업 목록 탭에서 복구할 백업을 찾습니다.
- 해당 백업의 복구 버튼을 클릭합니다.
- 복구 미리보기 화면에서 복원될 내용을 확인합니다.
K8s(컨트롤 플레인) 복구 화면:

Docker/Podman 복구 화면:

- 주의사항을 주의 깊게 읽고 확인합니다.
- 복구 시작 버튼을 클릭합니다.
- 보안 확인을 위해 관리자 비밀번호를 입력합니다.
- 복구가 완료될 때까지 기다립니다.
- 복구 완료 후 시스템이 정상 동작하는지 확인합니다.
복구 작업은 현재 데이터를 덮어씁니다. 복구 전에 반드시 현재 상태를 백업해두세요. 복구 후 문제가 발생하면 방금 만든 백업으로 다시 되돌릴 수 있습니다.
자동 백업 스케줄 설정하기
수동 백업은 잊기 쉽습니다. 자동 스케줄을 설정하여 정기적으로 백업이 생성되도록 하세요.
스케줄 설정 단계
- 페이지 상단의 설치 상태 영역을 확인합니다.
- 스케줄 설정 버튼을 클릭합니다.
- 백업 주기를 설정합니다:
- 주기: 매일, 매주, 매월 중 선택합니다. 프로덕션은 매일, 개발은 매주를 권장합니다.
- 실행 시간: 원하는 시각을 설정합니다. 트래픽이 적은 새벽 시간대를 권장합니다.
- 보관 정책: 백업 보관 개수 또는 기간을 설정합니다. 최소 7일 또는 7개 이상을 권장합니다.
- 저장 버튼을 클릭합니다.
권장 보관 정책
- 프로덕션: 매일 백업, 30일 보관을 권장합니다. 문제 발견까지 시간이 걸릴 수 있기 때문입니다.
- 스테이징: 매주 백업, 14일 보관을 권장합니다. 프로덕션 배포 전 테스트용으로 사용합니다.
- 개발: 매주 백업, 7일 보관을 권장합니다. 기본적인 보호만 필요합니다.
보관 정책을 설정하면 오래된 백업이 자동으로 삭제되어 스토리지 공간을 절약할 수 있습니다. 단, 너무 짧게 설정하면 필요할 때 백업이 없을 수 있으니 주의하세요.
빠른 참조: 기능별 접근 방법
- 설정 마법사 실행: 페이지 상단 설치 상태 영역 → 설정 마법사 시작
- 컨트롤플레인 백업 생성: 백업 목록 탭 → 백업 생성 → 유형: 컨트롤플레인
- Docker/Podman 백업 생성: 백업 목록 탭 → 백업 생성 → 유형: Docker/Podman
- 외부 스토리지 연동: 저장소 관리 탭 → 스토리지 추가
- 백업 복구: 백업 목록 탭 → 대상 백업의 복구 버튼
- 백업 삭제: 백업 목록 탭 → 대상 백업의 삭제 버튼 (휴지통 아이콘)
용어 설명
처음 접하는 용어가 있다면 아래 설명을 참고하세요:
- 컨트롤 플레인 백업: etcd 스냅샷과 PKI 인증서를 묶어 오브젝트 스토리지에 저장하는 K8s 클러스터 단위 백업입니다.
- etcd: Kubernetes 클러스터의 모든 상태 데이터를 저장하는 분산 키-값 저장소입니다. 클러스터의 "기억 장치" 역할을 합니다.
- 스냅샷(Snapshot): 특정 시점의 데이터 상태를 그대로 캡처한 것입니다. 사진을 찍듯이 그 순간을 보존합니다.
- 오브젝트 스토리지: 파일을 객체(Object) 단위로 저장하는 스토리지 시스템입니다. S3, SeaweedFS가 대표적입니다.
- 버킷(Bucket): 오브젝트 스토리지에서 파일들을 담는 최상위 컨테이너입니다. 폴더와 유사한 개념입니다.
- Access Key / Secret Key: 오브젝트 스토리지에 접근하기 위한 인증 정보입니다. ID/비밀번호와 유사합니다.
주의사항 및 모범 사례
백업 시 주의사항
- 정기 백업 테스트: 분기에 한 번은 실제로 복구 테스트를 수행하여 백업이 정상 작동하는지 확인하세요.
- 다중 저장소 사용: 로컬과 외부 스토리지를 함께 사용하면 더욱 안전합니다.
- 백업 알림 설정: 백업 실패 시 알림을 받을 수 있도록 설정하세요.
- 복구 전 현재 상태 백업: 복구 작업은 되돌릴 수 없으므로 현재 상태를 먼저 백업하세요.
- 대용량 백업 주의: 대용량 백업 시 네트워크 속도에 영향을 줄 수 있으므로 트래픽이 적은 시간에 수행하세요.
- 자격증명 관리: 외부 스토리지 자격증명은 암호화되어 저장되지만, 정기적인 키 로테이션을 권장합니다.