새 서버로 옮기기 — 사양을 올리거나 운영체제·회선을 바꿀 때
사용 중인 서버의 사양, 운영체제, 회선(존)은 나중에 바꿀 수 없습니다. 더 높은 사양이 필요하거나 운영체제·회선을 바꾸고 싶다면 새 서버를 받아 데이터를 옮겨야 합니다. 순서대로 따라 하면 서비스를 거의 멈추지 않고 옮길 수 있습니다.
전체 순서
- 새 서버 주문 — 기존 서버는 옮기기가 끝날 때까지 그대로 둡니다. 만료일이 가깝다면 먼저 연장해두세요.
- 데이터 옮기기
- 새 서버에서 잘 동작하는지 확인
- 접속 주소 바꾸기 (도메인 연결 변경, 게임 서버라면 새 IP 안내)
- 기존 서버 정리
Linux → Linux: 서버끼리 바로 복사 (rsync)
내 PC를 거치지 않고 서버끼리 직접 복사하면 빠릅니다. 두 서버 모두에 rsync를 설치합니다.
sudo apt install -y rsync
새 서버에 접속해서, 기존 서버의 폴더를 가져옵니다. 계정명과 기존서버IP는 기존 서버의 접속 정보로 바꿉니다. (기존 서버 비밀번호를 물어봅니다)
rsync -avz --progress 계정명@기존서버IP:/home/계정명/내폴더/ ~/내폴더/
- 폴더 경로 끝의
/까지 그대로 적어야 폴더 "안의 내용"이 옮겨집니다. - 기존 서버를 SSH 키로만 로그인하도록 바꿔뒀다면 비밀번호로는 연결되지 않습니다. 이때는 내 PC로 내려받았다가 새 서버에 올리세요. (파일 올리고 내려받기)
- 중간에 끊겨도 같은 명령어를 다시 실행하면 이어서 복사합니다.
함께 옮겨야 하는 것들
- DB — 기존 서버에서 백업 파일을 만들고, 새 서버로 가져와 복원합니다.
# 기존 서버에서
sudo mysqldump --all-databases > ~/db-all.sql
# 새 서버에서 (DB를 먼저 설치해둡니다)
rsync -avz 계정명@기존서버IP:/home/계정명/db-all.sql ~/
sudo mysql < ~/db-all.sql
.env같은 설정 파일 — 앱 폴더째 옮겼다면 함께 옮겨집니다. 숨김 파일이라ls -a로 확인하세요.- 예약 작업 — 기존 서버에서
crontab -l로 목록을 보고, 새 서버에서crontab -e로 다시 등록합니다. - Nginx 설정 —
/etc/nginx/sites-available/의 내 설정 파일을 옮깁니다. HTTPS 인증서는 옮기지 말고, 도메인을 새 서버로 연결한 뒤 새로 발급받는 것이 간단합니다. - 실행 방법 — pm2·systemd로 돌리던 프로그램은 새 서버에서 같은 방법으로 다시 등록합니다. (내가 만든 웹 앱 서버에 올리기)
마인크래프트 서버
- 기존 서버 콘솔에서
stop으로 서버를 완전히 끈 다음 옮깁니다. 켜둔 채 복사하면 월드가 깨질 수 있습니다. - 서버 폴더를 통째로 옮깁니다. (
world,plugins,server.properties등 모두 포함)
rsync -avz --progress 계정명@기존서버IP:/home/계정명/minecraft/ ~/minecraft/
- 새 서버에 Java를 설치하고 실행합니다. (마인크래프트 서버 만들기 (Java 에디션, Paper·바닐라))
Windows 서버
- 옮길 폴더를 압축(마우스 오른쪽 → 압축)한 뒤, 내 PC로 내려받았다가 새 서버에 올리는 방법이 가장 간단합니다. (파일 올리고 내려받기)
- 게임 서버라면 기존 서버의 프로그램을 끈 뒤 압축하세요.
접속 주소 바꾸기
- 도메인을 쓴다면 도메인 관리 사이트에서 A 레코드를 새 서버 IP로 바꿉니다. 바뀐 주소가 퍼지는 데 몇 분에서 몇 시간이 걸릴 수 있습니다. 그다음 새 서버에서 HTTPS 인증서를 발급합니다. (웹사이트 띄우기)
- IP로 접속하는 게임 서버라면 친구나 이용자들에게 새 IP를 알려주세요.
기존 서버 정리 전 체크리스트
- 새 서버에서 서비스가 정상 동작하는지 확인했나요?
- 기존 서버에만 있는 파일이 남아 있지 않나요? 마지막으로 한 번 더 백업해두세요.
- 기존 서버는 연장하지 않으면 만료일 뒤에 정지·종료되고, 종료된 서버의 데이터는 되살릴 수 없습니다.