개인 블로그 DB 날린 썰: 백업의 중요성
팀 프로젝트 진행 중 개인 블로그 서버에 CI/CD 구축 시도 중 발생
sudo 권한 부여 과정에서 실수로 운영 중이던 블로그 DB 데이터 유실 사고 발생
다행히 자동 백업 설정 덕분에 데이터 복구 성공, 큰 피해 방지
이번 사건을 통해 데이터베이스 백업, 권한 분리, 소통의 중요성을 절감함
데이터베이스 자동 백업의 필수성
개인 프로젝트라도 운영 중인 서비스의 데이터베이스는 주기적인 자동 백업이 필수적임을 이번 사건으로 체감함.
백업 파일 생성 여부 확인 및 실제 복구 절차 연습까지 준비해야 함
백업은 '혹시 모르니'가 아니라 '언젠가 반드시 필요할 것'에 대한 대비책임
운영자가 한 명인 개인 프로젝트일수록 장애 발생 시 복구할 방법이 없어 더욱 중요함
최소 권한 원칙(Principle of Least Privilege)의 중요성
단순 MySQL 설치를 위해 부여된 sudo 권한이 운영 중인 서비스의 데이터베이스 전체를 건드릴 수 있는 상황을 초래함.
프로젝트 초기부터 사용자별 필요한 최소한의 권한만 부여해야 함
운영 서버에서는 최소 권한 원칙(Principle of Least Privilege) 적용이 필수적임을 깨달음
권한 분리 없이 root 계정으로 모든 작업을 진행하는 것은 심각한 보안 위험을 내포함
프로젝트 내 소통 부재의 위험성
sudo 권한 요청 시 'MySQL 설치'라는 구체적인 목적 설명 부족과, 권한 부여 전 '왜 필요한지'에 대한 상호 확인 부족이 사고의 근본 원인임.
기술적 실수보다 소통 부족이 더 큰 문제를 야기할 수 있음
서로 당연하다고 생각했던 부분들이 겹치면서 예상치 못한 사고로 이어짐
앞으로는 작업 시작 전 명확한 목적 공유와 상호 확인을 통해 사고 예방 필요
개인 프로젝트 서버 이전 및 구성 원칙
이번 사건을 계기로 팀은 별도의 EC2 환경으로의 조속한 마이그레이션을 결정함.
리눅스 권한 관리 재학습 및 필요한 권한만 부여하는 원칙 수립 (root 무분별 사용 금지)
작업 전 상세한 공유 및 서버 구성, 운영 환경에 대한 문서화 강화
CI/CD 구축 시에도 안전한 권한 관리 및 자동 백업 체계 우선 고려