DNSフェイルオーバー でぃーえぬえすふぇいるおーばー
DNSフェイルオーバー冗長化可用性ヘルスチェック障害対応
DNSフェイルオーバーについて教えて
簡単に言うとこんな感じ!
サーバーが壊れたとき、自動で「引越し先」に案内を切り替えてくれる仕組みだよ! お店が閉まったら自動で別の支店に誘導してくれるカーナビみたいなイメージで、利用者には「あれ?落ちた?」って気づかせないのが目標なんだ!
DNSフェイルオーバーとは
DNS(ドメインネームシステム) は「ウェブサイトの住所録」のような役割を果たす仕組みです。例えば example.com にアクセスすると、DNSがそのドメインに対応するサーバーのIPアドレス(203.0.113.1 など)を返し、ブラウザがそのサーバーに接続します。
DNSフェイルオーバーとは、このDNSの「住所の返し方」を自動で切り替えることで、サーバー障害が発生したときに別のサーバーへ自動的にアクセスを誘導する技術です。常にサーバーの死活確認(ヘルスチェック)を行い、障害を検知した瞬間に返すIPアドレスをバックアップ用のサーバーへ切り替えます。
システムの「止まらない」要件(高可用性)を実現する手段のひとつで、EC サイトや業務システムなど、24時間365日稼働が求められる場面で広く使われています。
DNSフェイルオーバーの仕組み
全体の流れ
| ステップ | 内容 |
|---|---|
| ① 常時監視 | DNSサービスがメインサーバーに定期的に死活確認(ヘルスチェック)を送る |
| ② 障害検知 | 一定回数応答がなければ「障害あり」と判定する |
| ③ DNS切り替え | 返すIPアドレスをバックアップサーバーのものに変更する |
| ④ 新ルートへ誘導 | 以降のアクセスはバックアップサーバーへ届く |
| ⑤ 復旧後に戻す | メインサーバーが回復したら自動または手動で元に戻す |
ヘルスチェックの種類
| 種類 | 確認内容 | 用途 |
|---|---|---|
| PINGチェック | サーバーが生きているか(ICMP応答) | シンプルな死活確認 |
| TCPチェック | ポートに接続できるか | アプリが起動しているか確認 |
| HTTPチェック | 特定URLにアクセスして正常応答(200 OK)が返るか | Webアプリの動作確認 |
| HTTPSチェック | 上記のSSL版 | 証明書の有効性も確認できる |
TTL(キャッシュ時間)が切り替え速度のカギ
TTL(Time To Live) とは、DNS の回答をキャッシュ(一時保存)しておく時間のことです。TTL が長いと切り替えても古い情報が使われ続けるため、フェイルオーバー目的では TTLを短く(60秒〜300秒程度) 設定しておくのが一般的です。
歴史と背景
- 1980年代 — インターネット黎明期はサーバーが1台で、障害=完全停止が当たり前だった
- 1990年代 — Webの商用利用が始まり、「止まると損失が出る」システムが急増。冗長化の需要が生まれる
- 2000年代初頭 — ラウンドロビンDNS(複数IPを順番に返す負荷分散)が普及。ただし障害サーバーにも誘導してしまう問題があった
- 2000年代中盤〜 — ヘルスチェックと組み合わせた「障害を検知して切り替える」フェイルオーバー機能がDNSサービスに搭載され始める
- 2010年代〜現在 — Amazon Route 53・Cloudflare・Azure DNS などクラウドDNSサービスが標準機能としてフェイルオーバーを提供。導入ハードルが大きく下がった
ラウンドロビンDNS・ロードバランサーとの違い
フェイルオーバー目的で似た技術が複数あるため、整理しておきましょう。
| 技術 | 切り替えトリガー | 障害検知 | 主な用途 |
|---|---|---|---|
| DNSフェイルオーバー | サーバー障害 | あり(ヘルスチェック) | 障害時の自動切り替え |
| ラウンドロビンDNS | 順番(ランダム) | なし | 負荷分散(障害対応は不可) |
| ロードバランサー | 負荷・障害 | あり | 負荷分散+障害対応 |
| Anycast | ネットワーク経路 | ルーティングに依存 | CDN・グローバル分散 |
関連する規格・RFC
| 規格・RFC番号 | 内容 |
|---|---|
| RFC 1034 / 1035 | DNSの基本仕様(ドメイン名の概念・クエリの仕組み) |
| RFC 2181 | DNSの仕様明確化(TTLの扱いなど) |
| RFC 6891 | EDNS(拡張DNS)— より多くの情報をDNS応答に含める仕様 |
実務でよく使われるサービス例
| サービス名 | 提供元 | 特徴 |
|---|---|---|
| Amazon Route 53 | AWS | ヘルスチェック+フェイルオーバーを標準提供。AWSと連携しやすい |
| Cloudflare DNS | Cloudflare | 高速・無料プランあり。Load Balancing機能でフェイルオーバー対応 |
| Azure Traffic Manager | Microsoft | DNSベースの負荷分散+フェイルオーバー。Azure環境向け |
| Google Cloud DNS | シンプルなDNSサービス。フェイルオーバーはLBと組み合わせる |