予め確認すること
ダウンタイム(サイトが見れない時間)発生してよいか
無料独自SSL(Let’s Encrypt)をXSERVERで使うなら、https://は、どうしてもダウンタイム(サイトが見れない時間)が発生する
サーバー引っ越しするとき、ダウンタイムをなくそうと思って、
- XSERVER(旧)から外部のサーバへ移行
- 外部のサーバからXSERVER(新)へ移行
という手順を踏めば大丈夫。と思ってたが、
「2.外部のサーバからXSERVER(新)へ移行」する際に、SSL証明書の取得を実施したいが、XSERVERの場合、ドメインのNS(ネームサーバ)がXSERVERのNS(ネームサーバ)に指定されていないと無料独自SSL(https)の申し込み処理ができない。
つまり、
- 一旦、ドメインのNS(ネームサーバ)をXSERVERのNS(ネームサーバ)に指定する
- ここからhttpsは見れなくなる
- XSERVERが、ドメインのNSが切り替わったと認識するまで待つ。(DNSの伝搬待ち)
- XSERVER(新)で無料独自SSL(https)の申し込み処理を行う
- 1時間程度待つ
- ここからhttpsは見れる
という流れになり、少なくとも1時間強はhttps:// ではアクセスできない時間が発生する。
そのため、予めいずれかの選択肢を選択しておく。
- http://(非SSL)で見れるようにコンテンツを調整する(コンテンツ内リンクにhttps://自ドメイン とかあるとダメ)
- ダウンタイム発生すると関係者に通知する
- 外部サーバを使わない場合は、その分も考慮すること(後述するが、XSERVER(旧)のドメインを削除するのでサイトが見れなくなる)
- 有料のSSL証明書を用意する(すでに外部に持ち出し可能なSSL証明書を持っていればそれを利用する)
!!DNSレコードを控えておく
XSERVER から XSERVERへ引っ越すとき、一旦サーバパネルからドメイン設定を削除しなければならない。その際に、DNSレコードも消えてしまう。デフォルトで設定されているレコード以外を登録している場合、メモなどに控えておくこと。
XSERVERからXSERVERへのWeb(Mail)サーバの移行について
エックスサーバーでは仕様上、すでにいずれかのサーバーIDで運用中のドメイン名を他のサーバーIDに重複して設定することができません。
つまり、XSERVERだけを利用し、他のサーバを利用しないで移行しようとすると、
- 古い方のXSERVERでドメイン情報を削除
- 新しい方のXSERVERにドメイン情報を登録・コンテンツを移行
- DNSレコードを古い方のXSERVERから新しい方のXSERVERに切り替える
- DNSが世界中に伝搬するのに48時間程度かかる
- その間、古い方のDNSの情報を参照してしまった閲覧者は古い方のXSERVERを閲覧してしまう
- 古い方のXSERVERは削除されてるので閲覧できない = ダウンタイム
ということが起きてしまう。
サーバのダウンタイム(Webサイトが閲覧できない時間)を0(ゼロ)に(上述したが、無料独自SSL(Let’s Encrypt)を利用する場合は、XSERVER(新)に移行する際にダウンタイムは必ず発生する。)少なくなくしたければ、XSERVER以外のサーバに一旦移行するしか無い。
- XSERVER(旧)→外部サーバへの移行のダウンタイムは防げる
- 外部サーバ→XSERVER(新)への移行のダウンタイムは、(https://は)防げない
- http://でよければダウンタイム0(ゼロ)にできる
DNSサーバも一旦別のサーバを使う必要がある
上述したとおり、XSERVERですでに登録されているドメインを別のサーバIDに登録することができない。
つまり、移行したいドメインのAレコードを設定することができない。
そのため、DNSサーバもXSERVERではない別のサーバで一旦は設定する必要がある。
SSL
無料のSSL証明書Let’s Encryptを使用していることがほとんどだと思う。この場合、一旦移行する別のサーバでもLet’s Encryptを設定する必要があるが、Let’s EncryptはDNSでひけるドメインじゃないと取得できない。
他のサーバを利用しても一瞬、httpsが閲覧できない時間が発生する。
https(SSL)化については、CloudFlareを使う手もある(カンタン)
今まで使ってたほうのXSERVERのバックアップ
ドメインを削除すると、そのドメインのファイル全て削除されてしまう。
そのため、トップディレクトリから全ファイルバックアップ取って置いたほうが良い。
できれば、SSHを有効にして、rsyncで取得する。
rsyncで取得する際のコマンドは以下のようになる。
rsync -e 'ssh -i ~./ssh/xxx.key -p 10022' -avhPz xxx@xxx.xsrv.jp:/ ./.
まず、-n オプションを付けて実行し、動作を確認してから実施することを推奨する。
自己責任でお願いします。
コメント