DNS

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 53CloudflareAzure DNS などクラウドDNSサービスが標準機能としてフェイルオーバーを提供。導入ハードルが大きく下がった

ラウンドロビンDNS・ロードバランサーとの違い

フェイルオーバー目的で似た技術が複数あるため、整理しておきましょう。

技術切り替えトリガー障害検知主な用途
DNSフェイルオーバーサーバー障害あり(ヘルスチェック)障害時の自動切り替え
ラウンドロビンDNS順番(ランダム)なし負荷分散(障害対応は不可)
ロードバランサー負荷・障害あり負荷分散+障害対応
Anycastネットワーク経路ルーティングに依存CDN・グローバル分散
DNSフェイルオーバーの動作フロー ユーザーのブラウザ example.com にアクセス DNSサービス ヘルスチェック+IP返答 メインサーバー 通常時はこちらへ バックアップサーバー 障害時はこちらへ切替 ✓ 正常稼働中 ⚠ 障害発生時に自動切替 IPアドレスを 切り替える

関連する規格・RFC

規格・RFC番号内容
RFC 1034 / 1035DNSの基本仕様(ドメイン名の概念・クエリの仕組み)
RFC 2181DNSの仕様明確化(TTLの扱いなど)
RFC 6891EDNS(拡張DNS)— より多くの情報をDNS応答に含める仕様

実務でよく使われるサービス例

サービス名提供元特徴
Amazon Route 53AWSヘルスチェック+フェイルオーバーを標準提供。AWSと連携しやすい
Cloudflare DNSCloudflare高速・無料プランあり。Load Balancing機能でフェイルオーバー対応
Azure Traffic ManagerMicrosoftDNSベースの負荷分散+フェイルオーバー。Azure環境向け
Google Cloud DNSGoogleシンプルなDNSサービス。フェイルオーバーはLBと組み合わせる

関連用語

  • DNS — ドメイン名をIPアドレスに変換するインターネットの住所録
  • TTL(Time To Live) — DNSのキャッシュが有効な時間。フェイルオーバー速度に直結する
  • ロードバランサー — サーバーへのアクセスを複数台に振り分ける装置・機能
  • 冗長化 — システムを二重・三重にしてシングルポイントオブフェイラーをなくす設計思想
  • 高可用性(HA) — システムが止まらない・すぐ復旧できる性質のこと
  • ヘルスチェック — サーバーが正常に動いているか定期的に確認する仕組み