#3. DB 초기화 & 데이터 보존 트러블슈팅
⚠️ 문제
- 로컬에서 BookStack API 기반 개인 위키 프로젝트((Apache + PHP + MySQL) 진행 중 DB 초기화 발생
- 503 오류 발생으로 프로젝트 수정하던 중 기존에 업로드한 위키 문서 데이터 전부 초기화됨
🔍 원인 추정
- MySQL 데이터 저장 경로가 htdocs 외부에 없어 백업이 어려움
- 서버 재시작 혹은 캐시 삭제 과정에서 데이터 손실
- 영구 저장소 설정(volume, data 디렉토리) 미비
⚡ 해결 방법
- 해결: AWS Lightsail로 이전, Docker + Volume 구성으로 데이터 보존 확보
- 현재: docker-compose up -d로 설정 수정 가능, 데이터는 안전하게 volume: 에 보관됨
- 추가 계획:
저장 공간 60GB 초과시 블럭 스토리지 추가하거나 백업 시스템 구축 예정
향후mysqldump
또는 자동 백업 스크립트 도입 고려 - 플랫폼: AWS Lightsail $10 플랜 (2GB RAM, vCPU 1, SSD 60GB)
📂 구조 개요
📁 DainWiki/
├── 📁 bookstack/ # BookStack 앱 설정, 이미지
├── 📁 bookstack_db/ # MariaDB 데이터 (위키 포스트, 계정 등)
├── 📄 docker-compose.yml
└── 📄 .env
✅ yml. 파일 데이터 저장 위치
bookstack:
volumes:
- ./bookstack_data:/config
bookstack_db:
volumes:
- ./db_data:/var/lib/mysql
데이터는 바인드 마운트(bind mount)방식으로 저장된다.
- 로컬 경로 (./bookstack_data)를 컨테이너 안 디렉토리(/config)에 연결
- 실제 데이터는 호스트(=Lightsail 인스턴스) 디스크에 저장하는 방식이다.
- 즉, 루트 디스크(/) 안에 ~/DainWiki/bookstack_data, db_data 등(예: /home/ubuntu/DainWiki/bookstack_data)
✅ 실제 호스트 저장 경로 보기
docker inspect bookstack
- 여기서 Mounts 항목 참고
✅ 남은 공간 확인
df -h