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

이 페이지에 접근할 수 없다면 기관 관리자에게 권한을 요청하세요.
왜 백업이 필요한가요?
백업은 다음과 같은 상황에서 여러분의 서비스를 보호합니다:
- 시스템 장애 복구: 서버 장애, 디스크 손상 등의 상황에서 이전 상태로 빠르게 복원
- 잘못된 변경 되돌리기: 실수로 삭제한 설정이나 데이터를 복구
- 마이그레이션 지원: 새로운 환경으로 시스템을 이전할 때 데이터 이동
- 감사 및 규정 준수: 특정 시점의 시스템 상태를 보존하여 감사 요건 충족
3-2-1 규칙을 따르세요: 최소 3개의 백업 사본을 2가지 다른 유형의 미디어에 저장하고, 그 중 1개는 반드시 원격 위치에 보관하세요. KIWI의 외부 스토리지 연동 기능이 이를 쉽게 만들어줍니다.
지원하는 백업 유형
KIWI는 다양한 런타임 환경에 맞는 백업을 지원합니다:
- etcd 백업: Kubernetes 클러스터를 대상으로 합니다. 모든 클러스터 상태(Pod, Service, ConfigMap, Secret 등)를 백업하며, K8s 환경의 전체 상태 보존에 사용합니다.
- Docker 백업: Docker 호스트를 대상으로 합니다. 컨테이너, 볼륨, 이미지를 백업하며, Docker 기반 서비스 보호에 사용합니다.
- Podman 백업: Podman 호스트를 대상으로 합니다. 컨테이너, 볼륨, 이미지를 백업하며, Podman 기반 서비스 보호에 사용합니다.
etcd는 Kubernetes의 "두뇌"라고 할 수 있습니다. 클러스터의 모든 설정과 상태 정보를 저장하는 분산 키-값 저장소로, Pod 배치 정보부터 Secret까지 모든 것이 여기에 저장됩니다. etcd를 백업하면 클러스터 전체를 복원할 수 있습니다.
UI 구성 살펴보기
백업 관리 페이지는 다섯 개의 탭으로 구성되어 있습니다:
- 백업 상태: 전체 현황을 파악합니다. 설치 상태 확인, 스케줄 설정, 설정 마법사 실행 작업을 수행합니다.
- 백업 목록: 백업을 관리합니다. 백업 생성, 조회, 삭제, 복원 실행 작업을 수행합니다.
- 복원 이력: 복구 기록을 확인합니다. 과거 복원 작업 결과를 조회합니다.
- 스토리지 설정: 저장소를 관리합니다. 외부 스토리지(S3, MinIO) 연동 작업을 수행합니다.
- 백업 브라우저: 파일을 탐색합니다. 백업 파일을 직접 탐색하고 다운로드합니다.
백업 목록에서 확인할 수 있는 정보
각 백업 항목에서는 다음 정보를 확인할 수 있습니다:
- 이름: 백업을 식별하는 고유 이름입니다.
- 유형: etcd, Docker, Podman 중 하나입니다.
- 파일 크기: 백업 파일의 용량입니다.
- 생성 시간: 백업이 만들어진 날짜와 시간입니다.
- 상태: 성공, 실패, 진행중 중 하나입니다.
각 백업에 대해 복원, 삭제, 다운로드 작업을 수행할 수 있습니다.
처음 시작하기: 백업 설정 마법사
처음 백업 기능을 사용한다면 설정 마법사가 단계별로 안내해드립니다.
설정 마법사 실행 방법
- 좌측 메뉴에서 [백업 관리] 페이지로 이동합니다.
- 처음 접속 시 자동으로 설정 마법사가 나타납니다.
- 이미 설정을 완료한 경우, 백업 상태 탭에서 설정 마법사 시작 버튼을 클릭하세요.
- 백업 대상 선택: 백업할 환경을 선택합니다.
- Kubernetes 환경이라면 etcd를 선택
- Docker/Podman 환경이라면 해당 옵션을 선택
- 스토리지 설정: 백업 파일을 저장할 위치를 선택합니다.
- 로컬: 서버 내 디스크에 저장합니다. 빠른 백업/복구 속도가 장점이지만, 서버 장애 시 백업도 손실될 위험이 있습니다.
- MinIO: 온프레미스 오브젝트 스토리지입니다. 로컬 네트워크에서 S3 호환 기능을 사용할 수 있지만, 별도 MinIO 서버가 필요합니다.
- S3: AWS S3 또는 호환 스토리지입니다. 높은 내구성과 원격 보관이 장점이지만, 안정적인 네트워크 연결이 필요합니다.
- 스케줄 설정 (선택): 자동 백업 주기를 설정합니다.
- 완료 버튼을 클릭하여 설정을 마칩니다.
프로덕션 환경에서는 외부 스토리지 + 자동 스케줄을 함께 설정하는 것을 권장합니다. 로컬 서버에 문제가 생겨도 원격 저장소에서 백업을 복구할 수 있습니다.
Kubernetes etcd 백업 생성하기
etcd 백업은 Kubernetes 클러스터의 전체 상태를 스냅샷으로 저장합니다. 클러스터가 운영 중인 상태에서도 안전하게 백업할 수 있습니다.
단계별 가이드
- 백업 관리 페이지에서 백업 목록 탭을 선택합니다.
- 우측 상단의 백업 생성 버튼을 클릭합니다.
- 백업 생성 모달이 나타나면 다음 정보를 입력합니다:

- 유형: etcd를 선택합니다.
- 대상 클러스터: 백업할 K8s 클러스터를 선택합니다. 예: production-cluster
- 백업 이름: 식별하기 쉬운 이름을 입력합니다. 예: etcd-backup-20240315
- 백업 시작 버튼을 클릭합니다.
- 백업 목록에서 상태가 성공으로 변경되면 완료입니다.
etcd 백업은 온라인 상태에서 수행되므로 클러스터 서비스가 중단되지 않습니다. 운영 중에도 안심하고 백업하세요.
Docker/Podman 백업 생성하기
Docker 또는 Podman 환경에서는 컨테이너, 볼륨, 이미지를 선택적으로 백업할 수 있습니다.
단계별 가이드 (Docker)
- 백업 관리 페이지에서 백업 목록 탭을 선택합니다.
- 백업 생성 버튼을 클릭합니다.
- 백업 생성 모달에서 다음을 설정합니다:

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

Docker/Podman 복구 화면:

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