현재 서버 분석
| 항목체크비고 | ||
| 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 또는 별도 버전 관리로 관리하면 마이그레이션 중 변경 내역 추적 가능
- 테스트 서버를 먼저 구축 후 실제 전환 → 다운타임 최소화

반응형
'꼰대개발자 > OS' 카테고리의 다른 글
| Ubuntu 24.04.4 LTS에 ElasticSearch 9 설치 (0) | 2026.06.10 |
|---|---|
| git 기초 사용법 (1) | 2026.04.15 |
| 크롬 브라우저의 로컬 네트워크 액세스(Private Network Access) 차단 (0) | 2026.03.19 |
| CPU는 어떻게 일할까? 운영체제 스케줄링의 비밀 (0) | 2026.01.23 |