← 전체 목록
서버백업운영

설정 변경 전 백업과 테스트로 서버 다운타임을 최소화합니다

ℹ️ 본 글은 정보 제공 목적이며, 광고·제휴 링크가 포함될 수 있습니다.
목차 보기

서버 다운타임 최소화 운영 전략이 필요하다는 걸 뼈저리게 느낀 건 Nginx 설정을 수정하다가 세미콜론 하나를 빠뜨려서 nginx -t 테스트를 건너뛰고 reload 했더니 Nginx가 완전히 다운됐을 때입니다. 그날은 오전 진료 시간에 예약 시스템이 30분 동안 멈췄습니다. 이후 설정 변경에는 반드시 따르는 체크리스트를 만들었습니다.

설정 변경 전 백업

# Nginx 설정 백업
sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak.$(date +%Y%m%d)
sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default.bak.$(date +%Y%m%d)

# PHP-FPM 설정 백업
sudo cp /etc/php/8.1/fpm/pool.d/www.conf /etc/php/8.1/fpm/pool.d/www.conf.bak.$(date +%Y%m%d)

# MySQL 설정 백업
sudo cp /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/mysql.conf.d/mysqld.cnf.bak.$(date +%Y%m%d)

설정 변경 후 반드시 테스트

# Nginx 문법 테스트 (reload 전 필수)
sudo nginx -t
# "syntax is ok" + "test is successful" 나와야 reload 가능

# PHP-FPM 설정 테스트
sudo php-fpm8.1 -t

# MySQL 설정 테스트
sudo mysqld --verbose --help 2>&1 | head -5

# 모든 테스트 통과 후에만 재시작
sudo systemctl reload nginx
sudo systemctl reload php8.1-fpm

점진적 변경과 롤백 준비

# 설정 변경 후 30초간 모니터링
sudo systemctl reload nginx && \
    sleep 5 && \
    curl -s -o /dev/null -w "%{http_code}" https://example.com

# HTTP 200이 아니면 즉시 롤백
sudo cp /etc/nginx/nginx.conf.bak.20260525 /etc/nginx/nginx.conf
sudo systemctl reload nginx

# 워드프레스 업데이트 전 DB 백업
mysqldump --defaults-file=/root/.my.cnf hospital_wp | gzip > /tmp/pre-update-backup.sql.gz

설정 변경 3원칙: 백업 → 테스트 → 반영. nginx -t를 건너뛰는 일은 없어야 합니다. 변경 후 모니터링 시간도 최소 5분은 확보하고, 롤백 명령어를 미리 준비해두는 습관이 다운타임을 극적으로 줄입니다.

편집 정책

의료기관 인프라 운영 현장 경험을 바탕으로 작성하며, WavePix 운영자 (의료기관 3곳 인프라 전담)가 최종 검수합니다.

작성·검수: WavePix 운영자 (의료기관 3곳 인프라 전담)