サーバー移行時に、DNSの反映待ちをしないで済む方法
この記事は、経験則的に書いているので、時と場合によっては異なるかも知れません。
サーバー移行時に、よく制作会社に言われるのが、DNSの浸透までに1〜3日かかるので、その間、旧サーバーを閲覧される事があるかも知れません、的な事です。
それで、実際のところ、DNSを変更してから反映されるまでの期間は、経験的には3〜6時間くらいが平均かな〜?といった具合でしょうか。
ただし、DNSが完全に浸透しきるまでにはもっと時間がかかり、3日後くらいにも、依然として旧サーバーと新サーバーを行ったり来たりしてしまう、というケースも、無きにしもあらずです。
ここから、本題に入りましょう。
一体何がいけないのか。
それは、「DNSレコードの書き換え」です。
え・・・?当たり前じゃん。って声が聞こえてきそうですが、要するに、DNSレコードの書き換えに、時間を食うんですよ。DNSサーバーのキャッシュが更新されるのに時間がかかりますからね。
そこで、DNSレコードを事前に書き換えておけば良いのでは??という発想が浮かびます。
上記の方法をストレートに説明すると、要するに、サーバー移行時のドメイン切り替えの対応を、DNSの書き換えではなく、「ネームサーバー」の書き換えで対応すれば、DNSの反映待ちをしないで済むのです。
当たり前のような気がしますが、移行後のネームサーバーで、すでにDNSが浸透しきった状態で、ネームサーバーを切り替えるので、反映待ちは発生しない!ということですな。
実は、Value Domainで管理しているドメインをさくらのVPSで運用していて、それをXServerに移行する際に、DNSの書き換えではなく、ネームサーバーの変更で対応したのですが、その時に、DNS浸透待ちが異常に少ないような??という気がしたのです。
その後、何件か同じ事を繰り返しましたが、今の所、やはりDNSの浸透待ちが発生しません。ネームサーバー変更の5分後には、新しいサーバーが参照されていました。
※ネットで探しても、こういう情報が出なかったので、絶対正しい!とは断言しません。
2016/2/26追記:お名前.comだと、すぐには反映されませんでした。体感で20分くらい。まあ、それでも良い方か。
参考までに、この記事で書いたサーバーの情報を記載しておきます。
エックスサーバー
https://www.xserver.ne.jp/
高速、安定性が高く、自動バックアップまで搭載されている優れもののサーバー。独自のネームサーバーを持っており、DNS切り替えを、ネームサーバー切り替えで対応することで、DNS浸透待ちを回避出来るという、裏技があります。
価格も、月額1000円程度と、かなりお手頃。
おまけの記事です。
例えば、yourname.comというドメインで運用しているサイトを、さくらのレンタルサーバーから、XServerに移行する予定だとしましょう。
この時に、あらかじめ旧サーバーから新サーバーにデータを移して、テスト用のドメインで動作確認を行ない、問題なければサーバー移行するような流れになる事が多いと思います。
しかし、そこで問題となってくるのは、テスト用のドメインで動作確認をするために、PHPのソースコードを必要に応じて編集したり、色々と面倒な編集作業をしなければならないケースがあることです。
しかも、その状態でサーバー移行して、「しまった、テスト用の設定のままだった」となってしまい、サーバー移行後にトラブルになってしまう可能性もあります。
これを解決するためには、動作テストの段階から、本番のドメイン名で動作確認を行なっておけば、全てが丸く収まります。
これを実現するためには、動作確認を行うローカルのPCにて、hostsファイルの設定を行なっておけばオッケーです。
上記の、hostsファイルの設定をしておけば、Internet Explorer、Edge、Safariなど、どんなブラウザから閲覧しても、そのPCで閲覧する限りは、新しいサーバーでサイトを閲覧する事ができます。
古いサーバーでサイトを閲覧したい場合は、先ほどのhostsファイルへの記述を削除すればオッケーです。
このようにすれば、ネームサーバーを切り替える前に、自分だけが事前に、ネームサーバー切り替え後の動作確認をすることができます。
ただし、このままでは、自分しか新しいサーバーを閲覧していないことになるので、最終的には、ネームサーバーを切り替えなければ、サーバー移行は完了した事になりませんので、ご注意を。
サーバー移行時に、よく制作会社に言われるのが、DNSの浸透までに1〜3日かかるので、その間、旧サーバーを閲覧される事があるかも知れません、的な事です。
それで、実際のところ、DNSを変更してから反映されるまでの期間は、経験的には3〜6時間くらいが平均かな〜?といった具合でしょうか。
ただし、DNSが完全に浸透しきるまでにはもっと時間がかかり、3日後くらいにも、依然として旧サーバーと新サーバーを行ったり来たりしてしまう、というケースも、無きにしもあらずです。
一体何が、DNSの浸透を遅くしているのか?
ここから、本題に入りましょう。
一体何がいけないのか。
それは、「DNSレコードの書き換え」です。
え・・・?当たり前じゃん。って声が聞こえてきそうですが、要するに、DNSレコードの書き換えに、時間を食うんですよ。DNSサーバーのキャッシュが更新されるのに時間がかかりますからね。
DNSレコードを事前に書き換えておけば、浸透待ちは発生しない!(キリッ!)
そこで、DNSレコードを事前に書き換えておけば良いのでは??という発想が浮かびます。
従来の方法(浸透待ちが発生する方法):
サーバー移行時に、DNSレコードを、移行後のサーバーのIPアドレスに書き換える
改善策(浸透待ちが発生しない方法):
サーバー移行前と、移行後のネームサーバーを別々に設定する。
簡単な例だと、移行前は、ns1.value-domain.comを使用し、移行後は、ns1.xserver.jpを使用する。
移行の前に事前に(3〜4時間程度前までに?)、ns1.xserver.jp上でDNSの設定を行って、DNSキャッシュが更新された事を確認しておく。
それで、移行する時は、DNSの更新はせずに、ネームサーバーの変更のみにとどめる。(ns1.value-domain.comを、ns1.xserver.jpに書き換える、など)
サーバー移行時に、DNSレコードを、移行後のサーバーのIPアドレスに書き換える
改善策(浸透待ちが発生しない方法):
サーバー移行前と、移行後のネームサーバーを別々に設定する。
簡単な例だと、移行前は、ns1.value-domain.comを使用し、移行後は、ns1.xserver.jpを使用する。
移行の前に事前に(3〜4時間程度前までに?)、ns1.xserver.jp上でDNSの設定を行って、DNSキャッシュが更新された事を確認しておく。
それで、移行する時は、DNSの更新はせずに、ネームサーバーの変更のみにとどめる。(ns1.value-domain.comを、ns1.xserver.jpに書き換える、など)
上記の方法をストレートに説明すると、要するに、サーバー移行時のドメイン切り替えの対応を、DNSの書き換えではなく、「ネームサーバー」の書き換えで対応すれば、DNSの反映待ちをしないで済むのです。
当たり前のような気がしますが、移行後のネームサーバーで、すでにDNSが浸透しきった状態で、ネームサーバーを切り替えるので、反映待ちは発生しない!ということですな。
実は、Value Domainで管理しているドメインをさくらのVPSで運用していて、それをXServerに移行する際に、DNSの書き換えではなく、ネームサーバーの変更で対応したのですが、その時に、DNS浸透待ちが異常に少ないような??という気がしたのです。
その後、何件か同じ事を繰り返しましたが、今の所、やはりDNSの浸透待ちが発生しません。ネームサーバー変更の5分後には、新しいサーバーが参照されていました。
というわけで、結論。
DNSの書き換え:浸透待ちに時間がかかる
ネームサーバーの書き換え:あまり時間がかからない
ネームサーバーの書き換え:あまり時間がかからない
※ネットで探しても、こういう情報が出なかったので、絶対正しい!とは断言しません。
2016/2/26追記:お名前.comだと、すぐには反映されませんでした。体感で20分くらい。まあ、それでも良い方か。
エックスサーバーの情報について
参考までに、この記事で書いたサーバーの情報を記載しておきます。
エックスサーバー
https://www.xserver.ne.jp/
高速、安定性が高く、自動バックアップまで搭載されている優れもののサーバー。独自のネームサーバーを持っており、DNS切り替えを、ネームサーバー切り替えで対応することで、DNS浸透待ちを回避出来るという、裏技があります。
価格も、月額1000円程度と、かなりお手頃。
おまけ:本番移行する前に、本番のドメインで移行後の動作を確認する方法
おまけの記事です。
例えば、yourname.comというドメインで運用しているサイトを、さくらのレンタルサーバーから、XServerに移行する予定だとしましょう。
この時に、あらかじめ旧サーバーから新サーバーにデータを移して、テスト用のドメインで動作確認を行ない、問題なければサーバー移行するような流れになる事が多いと思います。
しかし、そこで問題となってくるのは、テスト用のドメインで動作確認をするために、PHPのソースコードを必要に応じて編集したり、色々と面倒な編集作業をしなければならないケースがあることです。
しかも、その状態でサーバー移行して、「しまった、テスト用の設定のままだった」となってしまい、サーバー移行後にトラブルになってしまう可能性もあります。
これを解決するためには、動作テストの段階から、本番のドメイン名で動作確認を行なっておけば、全てが丸く収まります。
これを実現するためには、動作確認を行うローカルのPCにて、hostsファイルの設定を行なっておけばオッケーです。
Windowsの場合:
メモ帳などで、「C:/Windows/system32/drivers/etc/hosts」あたりを開く
Macの場合:
ターミナルで「sudo vi /etc/hosts」
その後、hostsファイルを編集して、
111.111.111.111 yourname.com
のような感じで、新しいサーバーのIPアドレスと、本番のドメイン名を記述し、保存すれば設定完了。
メモ帳などで、「C:/Windows/system32/drivers/etc/hosts」あたりを開く
Macの場合:
ターミナルで「sudo vi /etc/hosts」
その後、hostsファイルを編集して、
111.111.111.111 yourname.com
のような感じで、新しいサーバーのIPアドレスと、本番のドメイン名を記述し、保存すれば設定完了。
上記の、hostsファイルの設定をしておけば、Internet Explorer、Edge、Safariなど、どんなブラウザから閲覧しても、そのPCで閲覧する限りは、新しいサーバーでサイトを閲覧する事ができます。
古いサーバーでサイトを閲覧したい場合は、先ほどのhostsファイルへの記述を削除すればオッケーです。
このようにすれば、ネームサーバーを切り替える前に、自分だけが事前に、ネームサーバー切り替え後の動作確認をすることができます。
ただし、このままでは、自分しか新しいサーバーを閲覧していないことになるので、最終的には、ネームサーバーを切り替えなければ、サーバー移行は完了した事になりませんので、ご注意を。
この記事の最終更新日:2017/12/09
最初に記事を書いた日:2016/02/25
この記事をシェアする
関連記事
- ・hosts.denyを使わずに、サーバーへの全てのアクセスをIPアドレス拒否する方法
- ・「.well-known」以下をwwwにリダイレクトさせない方法
- ・【格安VPN】NordVPNは本当に安全なのか?【閲覧履歴ダダ漏れw】
- ・「root@notty」って何者?
- ・アクセス解析ツール「awstats」をCentOSにyumでインストールする
- ・Kali LinuxをVagrantにインストールする
- ・【Tomcat】Apache+Tomcat連携で、特定のディレクトリのみTomcatにする方法
- ・【PHP】HTTPDの溜まりきったログを一気に削除する方法
- ・Macでトンネル接続してFTP/SFTP接続する簡単な方法
- ・【.htaccess】httpアクセスをhttpsに強制リダイレクトで、特定のファイルやディレクトリを除外する方法