DNS

DNSロードバランシング でぃーえぬえすろーどばらんしんぐ

DNSロードバランシング負荷分散ラウンドロビン冗長化可用性
DNSロードバランシングについて教えて

簡単に言うとこんな感じ!

人気レストランに行列ができないよう、「Aカウンター」「Bカウンター」「Cカウンター」に順番に案内するのと同じ仕組みだよ。DNSドメイン名IPアドレスの変換係)を使って、アクセスを複数のサーバーに振り分けることで、1台に負荷が集中しないようにするってこと!


DNSロードバランシングとは

DNSロードバランシングとは、DNS(Domain Name System)の仕組みを利用して、Webサービスへのアクセスを複数のサーバーに分散させる技術です。通常、ドメイン名(例: www.example.com)に対してIPアドレスは1つですが、DNSロードバランシングでは同じドメイン名に対して複数のIPアドレスを登録し、問い合わせのたびに異なるIPアドレスを返すことで負荷を分散します。

ロードバランサー(専用の負荷分散装置)を使う方法と比べると、DNSの設定だけで実現できるためコストが低く、導入がシンプルなのが特徴です。大規模なWebサービスやグローバルに展開するサービスでは、地理的に離れたデータセンター間でアクセスを分散するためにも活用されます。一方で、DNSの応答をキャッシュする仕組み(TTL)の影響で、障害発生時の切り替えに即時性が欠けるという弱点もあります。


DNSロードバランシングの仕組みと分散方式

DNSロードバランシングの核心は「同じドメインに複数のAレコードを登録する」ことです。クライアントがDNSに問い合わせると、その都度異なるIPアドレスが返されます。

分散方式概要向いているケース
ラウンドロビン DNS複数IPを順番に返す(A→B→C→A→…)均等に負荷を分散したいとき
重み付きラウンドロビンサーバーごとに返す頻度を変える性能差があるサーバーが混在するとき
Geo DNS(地理分散)問い合わせ元の地域に近いIPを返す海外ユーザーにも低遅延で届けたいとき
ヘルスチェック付き DNS死活監視して障害サーバーを除外する高可用性が求められるサービス

ラウンドロビンの覚え方

順番こ(ラウンドロビン)で受付」と覚えましょう。Aさん・Bさん・Cさんが交代でカウンターに立つイメージです。名前の通り「丸く(ラウンド)回す(ロビン)」仕組みです。

TTL(Time To Live)と障害切り替えの関係

DNSの回答はクライアントやキャッシュサーバーに一定時間キャッシュされます。この時間を TTL(生存時間) と呼びます。

TTL設定メリットデメリット
長い(例: 3600秒=1時間)DNSへの問い合わせが減り、応答が速い障害時に古いIPを使い続けるリスク
短い(例: 60秒=1分)障害時の切り替えが速いDNSへの問い合わせが増え、負荷が高まる

歴史と背景

  • 1980年代後半 — インターネットの普及に伴い、単一サーバーへのアクセス集中が問題化し始める
  • 1990年代前半 — ラウンドロビンDNSが最もシンプルな負荷分散手段として普及。設定ファイルに複数のAレコードを書くだけで実現できた
  • 1990年代後半〜2000年代 — ECサイト・ポータルサイトの急成長で可用性要件が高まり、ハードウェアロードバランサー(F5 BIG-IPなど)との併用が進む
  • 2000年代後半 — AkamaiなどのCDN(コンテンツデリバリーネットワーク)がGeo DNSを活用した大規模な地理分散を実現
  • 2010年代〜現在 — クラウドサービス(AWS Route 53、Google Cloud DNS、Azure Traffic Managerなど)がヘルスチェック・フェイルオーバーを組み込んだ高機能なDNSロードバランシングをマネージドサービスとして提供。中小企業でも手軽に使えるようになった

DNSロードバランシングとロードバランサーの比較

DNSロードバランシングは唯一の負荷分散手段ではありません。専用のロードバランサー機器・サービスと比較すると、用途による使い分けが重要です。

DNSロードバランシング vs ロードバランサー DNS ロードバランシング DNSの応答でIPを振り分け ロードバランサー(L4/L7) 通信経路上で直接トラフィックを振り分け 🟢 導入コスト:低い(設定変更のみ) 🟡 導入コスト:中〜高(機器・SaaS費用) 🟡 障害切替:TTL依存(数十秒〜数分) 🟢 障害切替:ほぼリアルタイム(秒以下) 🟢 地理分散:得意(Geo DNS) 🟡 地理分散:別途CDNが必要なことも 🔴 セッション維持:苦手 🟢 セッション維持:スティッキーセッション対応 🟡 細かい振り分け:URLごとなどは不可 🟢 細かい振り分け:URL・ヘッダー等で可能 実務での使い分け グローバル分散・コスト重視 → DNS ロードバランシング 高可用性・細かい制御が必要 → ロードバランサーと組み合わせ

クラウドサービスでの代表的な実装例

サービス名提供元主な特徴
Route 53AWSヘルスチェック・Geo DNS・フェイルオーバー対応
Cloud DNS + Traffic DirectorGoogle Cloudグローバル負荷分散と統合
Azure Traffic ManagerMicrosoft Azure地理・優先度・パフォーマンスによるルーティング
Cloudflare Load BalancingCloudflareCDNと統合、ヘルスチェック付き

関連する規格・RFC

規格・RFC番号内容
RFC 1794DNSサポートのロードバランシング(ラウンドロビンDNSの初期仕様)
RFC 1035DNSの基本仕様(Aレコード・TTLなどの定義)
RFC 3596IPv6対応のAAAAレコード仕様

関連用語

  • [DNS](