본문 바로가기

꼰대개발자/OS

CentOS7 → Rocky Linux9 마이그레이션 체크리스트

현재 서버 분석

항목체크비고
OS 버전 확인 cat /etc/centos-release CentOS 7.x
설치 패키지 목록 rpm -qa > rpm_list.txt 필요한 패키지 확인
systemd 서비스 systemctl list-unit-files 활성화/비활성화 서비스
크론 잡 crontab -l, /etc/cron.* 스케줄링 확인
웹 서버 설정 /etc/httpd/, /etc/nginx/ Apache/Nginx 설정 백업
PHP 버전/설정 php -v, php.ini 기존 앱 호환성 확인
DB 버전/설정 mysql -V, /etc/my.cnf 백업 필요
커스텀 소프트웨어 /usr/local, /opt 직접 설치 프로그램

데이터 및 설정 백업

항목체크비고
DB 백업 mysqldump -A > all_db.sql MySQL 예시
웹 소스 /var/www/html 등 rsync/scp로 복사
설정 파일 /etc Apache, PHP, DB, 방화벽
SSL 인증서 /etc/ssl/ 필요시 백업
사용자 계정 /etc/passwd, /etc/shadow 계정 정보 확인
Cron/Jobs /etc/cron.* 재등록 필요

새 서버 준비

항목체크비고
OS 설치 Rocky Linux 9 최소/서버 설치 최소 설치 권장
업데이트 dnf update -y 최신 패치 적용
필수 패키지 dnf install vim wget curl git 등 기존 환경에 맞게
방화벽/SELinux firewall-cmd, setenforce 기존 정책과 비교
사용자 계정 기존 계정 추가 UID/GID 일치 확인
네트워크 설정 IP, hostname, DNS 기존 서버와 동일/변경 여부

서비스 설치 및 구성

항목체크비고
웹 서버 Apache/Nginx 설치 기존 vhost 복사
PHP 필요한 버전 설치 PHP 7/8 기본, 레거시는 Docker
DB MySQL/PostgreSQL 설치 DB import 준비
Cron/Jobs 크론 등록 기존과 동일하게
SSL 인증서 적용 Let’s Encrypt 또는 기존 인증서

데이터 이관

항목체크비고
DB import mysql < all_db.sql 사용자, 권한 확인
웹 소스 배포 /var/www/html 권한 확인 (www-data 또는 apache)
커스텀 프로그램 /usr/local 실행 테스트
로그 디렉토리 /var/log/ 권한 및 rotation 확인

테스트

항목체크비고
웹 사이트 접속 http://hostname 페이지 정상 표시
PHP 버전/모듈 php -m 기존 앱 호환성 확인
DB 연결 PHP → DB 테스트 쿼리 실행 확인
Cron/Jobs 테스트용 스크립트 정상 동작 확인
방화벽/SELinux 외부 접속 테스트 포트 확인

최종 전환

항목체크비고
DNS TTL 낮춤 5~10분 전환 시 다운타임 최소화
모니터링 로그 확인 CPU, 메모리, 서비스 상태
백업 유지 기존 서버 일정 기간 유지 권장
서비스 종료 이전 서버 완전히 전환 후 종료

추가 팁

  • 오래된 앱(PHP 5.2 등)은 Docker/컨테이너로 분리하여 새 OS에서 안전하게 운영
  • 중요 설정 파일은 git 또는 별도 버전 관리로 관리하면 마이그레이션 중 변경 내역 추적 가능
  • 테스트 서버를 먼저 구축 후 실제 전환 → 다운타임 최소화

반응형