本文へスキップ
← ガイド一覧

新しいサーバーへの移行 — スペックを上げたり、OS・回線を変更したりするとき

利用中のサーバーのスペック、OS、回線(ゾーン)は後から変更できません。より高いスペックが必要な場合や、OS・回線を変更したい場合は、新しいサーバーを受け取ってデータを移す必要があります。順番どおりに進めれば、サービスをほとんど止めずに移行できます。

全体の手順

  1. 新しいサーバーを注文 — 既存のサーバーは、移行が終わるまでそのままにしておきます。 有効期限が近い場合は、先に延長しておいてください。
  2. データを移す
  3. 新しいサーバーで正しく動作するか確認
  4. 接続先アドレスを変更(ドメインの接続先の変更、ゲームサーバーなら新しいIPの案内)
  5. 既存のサーバーを整理

Linux → Linux: サーバー間で直接コピー (rsync)

自分のPCを経由せずにサーバー同士で直接コピーすると速いです。両方のサーバーにrsyncをインストールします。

sudo apt install -y rsync

新しいサーバーに接続して、既存のサーバーのフォルダーを取得します。usernameとold-server-ipは、既存のサーバーの接続情報に置き換えます。(既存のサーバーのパスワードを聞かれます)

rsync -avz --progress username@old-server-ip:/home/username/my-folder/ ~/my-folder/
  • フォルダーのパスの末尾の/までそのまま書くことで、フォルダーの「中身」が移されます。
  • 既存のサーバーをSSHキーでのみログインできるように変更している場合は、パスワードでは接続できません。その場合は、いったん自分のPCにダウンロードしてから、新しいサーバーにアップロードしてください。(ファイルのアップロードとダウンロード)
  • 途中で切れても、同じコマンドをもう一度実行すれば続きからコピーします。

一緒に移す必要があるもの

  • DB — 既存のサーバーでバックアップファイルを作成し、新しいサーバーに取り込んで復元します。
# 既存のサーバーで
sudo mysqldump --all-databases > ~/db-all.sql

# 新しいサーバーで(先にDBをインストールしておきます)
rsync -avz username@old-server-ip:/home/username/db-all.sql ~/
sudo mysql < ~/db-all.sql
  • .envのような設定ファイル — アプリのフォルダーごと移した場合は、一緒に移されます。隠しファイルなので、ls -aで確認してください。
  • 予約タスク — 既存のサーバーでcrontab -lで一覧を確認し、新しいサーバーでcrontab -eで再登録します。
  • Nginxの設定 — /etc/nginx/sites-available/にある自分の設定ファイルを移します。HTTPSの証明書は移さずに、ドメインを新しいサーバーに接続してから新たに発行するのが簡単です。
  • 実行方法 — pm2・systemdで動かしていたプログラムは、新しいサーバーで同じ方法で再登録します。(自分で作ったWebアプリをサーバーにデプロイする)

マインクラフトサーバー

  1. 既存のサーバーのコンソールでstopを実行し、サーバーを完全に停止してから移します。起動したままコピーすると、ワールドが壊れることがあります。
  2. サーバーフォルダーを丸ごと移します。(world、plugins、server.propertiesなどをすべて含む)
rsync -avz --progress username@old-server-ip:/home/username/minecraft/ ~/minecraft/
  1. 新しいサーバーにJavaをインストールして実行します。(マインクラフトサーバーを作る (Java版、Paper・バニラ))

Windowsサーバー

  • 移すフォルダーを圧縮(右クリック → 圧縮)してから、いったん自分のPCにダウンロードし、新しいサーバーにアップロードする方法が最も簡単です。(ファイルのアップロードとダウンロード)
  • ゲームサーバーなら、既存のサーバーのプログラムを停止してから圧縮してください。

接続先アドレスを変更する

  • ドメインを使っている場合は、ドメイン管理サイトでAレコードを新しいサーバーのIPに変更します。変更したアドレスが行き渡るまで、数分から数時間かかることがあります。その後、新しいサーバーでHTTPSの証明書を発行します。(Webサイトを立ち上げる)
  • IPで接続するゲームサーバーなら、友だちや利用者に新しいIPを知らせてください。

既存のサーバーを整理する前のチェックリスト

  • 新しいサーバーでサービスが正常に動作することを確認しましたか?
  • 既存のサーバーにしかないファイルが残っていませんか? 最後にもう一度バックアップしておいてください。
  • 既存のサーバーは延長しなければ有効期限の後に停止・終了し、終了したサーバーのデータは復元できません。

解決しない問題がある場合は、Discordのチケットでお問い合わせください。