こんにちは。「クロジカサーバー管理」プリセールスの高瀬です。サイトのリプレイスなどでサーバーを変更する場合、対象ドメインのDNSレコードを変更することで切り替えることが多いと思います。DNSのレコード設定についてはすぐに反映されるものではないため、反映までに「浸透時間」がかかる、といったようなお話が出ることがあります。今回はDNSの浸透時間について解説します。
その前にDNSサーバーとは
DNSサーバーはウェブサイトのリンクに含まれるドメイン名から、ウェブサーバーのIPアドレス情報を受け渡すためのサーバーです。
正確にはパソコンやスマホからの問い合わせに対してIPアドレスを問い合わせをおこなうフルサービスリゾルバと、*.jpや*.sitecloud.jp以下など特定範囲のドメインの問い合わせを受け付ける権威DNSサーバーがありますが、ウェブサーバー切り替えの時にいわゆるDNSサーバーはサイトドメインに関する権威DNSサーバーになります。
https://jprs.jp/glossary/index.php?ID=0145
ここで重要なのは1台のサーバーが全てのDNSレコードを管理しているのではなく、役割やドメインの階層ごとにDNSサーバーが分散しており、フルサービスリゾルバは近い場所から伝言ゲームのようにDNSレコードの情報を探していることです。
DNS浸透時間とは
上述のように世界中に分散されたDNSサーバを伝ってDNSレコードからIPアドレスを割り出すため、権威DNSサーバーの情報が更新されてから実際にブラウザからの接続結果が切り替わるまでには時間差があります。また、それも一律ではなくPCやスマホの場所によって差があるため、世界中のクライアントに反映されるまでの時間をDNS浸透時間と呼んでいます。
そのため、正確な時間を計測することは難しく、数時間から数週間、と言われていることが多い状況です。
DNS浸透時間に対する対策は
どちらのサーバーに接続されてもいいようにしておく
上述の通りDNSレコードを変更してから、PCやスマホなどの各端末にその結果が反映されるのには時間差があります。そのため、DNS切り替えからしばらくの間は新旧両方のサーバーどちらに接続されても大丈夫な状況にしておくことが必要です。
例えば、ウェブサーバーであれば新旧のサーバーどちらでもサイトが表示できるようにしておきます。サイトリニューアルの場合は旧サーバーに接続すると古いページが見えますが、ここで旧サーバーを止めてしまうとDNSが浸透していないユーザーからはサイトが止まっているように見えてしまいます。
また、メールサーバーであれば新・旧両方のサーバーからメールを受信することで取りこぼしをなくします。
DNSサーバーそのものを変更する場合はネームサーバーを切り替える前に新旧のネームサーバーに同じDNSレコードを登録しておくことで、ネームサーバーが切り替わる時間を意識せずにDNSサーバーを切り替えることができます。
各DNSサーバーは通信して取得した結果をキャッシュとして保持していることが多いです。この浸透時間にはキャッシュが更新されるまでの時間も含まれます。
新・旧サーバーを並行稼働させておく期間は正確には難しいですが、1ヶ月程度稼働させられれば安全に切り替えられることが多いと思われます。
TTLを調整する
フルサービスリゾルバを含めた各DNSサーバーは他のサーバーに問い合わせた結果をキャッシュとして一定期間保持しており、浸透時間にはこのキャッシュ更新時間も含まれます。そこで、DNSレコードにはTTLという設定値があり、これは「このレコード情報について何秒までキャッシュを保持していいよ」というキャッシュ保持感を設定します。
この値が大きいとその分浸透に時間がかかります。例えばTTLが3日間に設定されている場合は、本番切り替えから遡って3日以上前にTTLの値を短くしておき、キャッシュを保持されないようにしておく必要があります。
本番切り替え当日にTTLを短くしても、切り替え直前にDNSレコードを受け取ったサーバーではその後3日間キャッシュを保持してしまうため、その分浸透が遅くなります。
さいごに
クロジカサーバー管理ではお客様のサイトに応じてDNSの管理状況などヒアリングさせていただき、サイト移行のお手伝いをさせていただきます。
サイト制作のご提案にあたり、本番切り替えの際のコントロールが難しい場合はぜひご相談くださいませ。
コーポレートサイトをクラウドでセキュアに
無料ではじめるサーバー管理
クロジカガイドブック
- コーポレートサイト構築・運用の課題を解決
- クロジカサーバー管理の主な機能
- 導入事例
- 導入までの流れ