DNSラウンドロビン(DNS Round Robin)

PR
PR

DNSラウンドロビン(DNS Round Robin)とは、1つのドメイン名に複数のサーバーのIPアドレスを登録しておき、問い合わせのたびに返す順番を入れ替えることで、アクセスを複数のサーバーに振り分ける仕組みのことです。特別な機器を使わずに、DNSの設定だけで手軽に負荷を分散できる方法として知られています。

現実世界に例えると、DNSラウンドロビンは案内係が、来たお客さんに「1番窓口へ」「次の方は2番窓口へ」と順番に窓口を割り振ることのようなものです。窓口の中の様子までは見ていないので、閉まっている窓口に案内してしまうこともあります。

仕組み

動きの基本です。DNSに同じ名前で複数のIPアドレスを登録しておくと、DNSサーバーは問い合わせのたびに、その並び順を少しずつずらして答えます。多くの利用者は先頭のアドレスに接続するため、結果としてアクセスが各サーバーへ順番に散らばります。「ラウンドロビン」は、順番に回していくという意味です。

専用の機器がいらない

選ばれる理由です。DNSラウンドロビンは、DNSの設定を書き足すだけで始められ、負荷分散のための専用の機器やサービスを用意する必要がありません。費用をかけずに、複数のサーバーへアクセスを分けられるため、小規模なサービスや、手軽に冗長性を持たせたい場面で使われてきました。

ロードバランサーとの比較

項目 DNSラウンドロビン ロードバランサー
導入の手軽さ DNSの設定だけで済む 機器やサービスが必要
故障したサーバー そのまま案内してしまう 自動で外せる
振り分けの正確さ 大まかで偏りやすい 負荷に応じて細かく調整
費用 ほとんどかからない 機器や利用料がかかる

故障したサーバーにも案内してしまう

最大の弱点です。DNSは、登録されたサーバーが実際に動いているかどうかを確かめずに、アドレスを答え続けます。そのため、1台が故障しても、その台のアドレスを受け取った利用者は接続できなくなります。故障のたびに、手作業でDNSから外す必要があり、すぐには反映されない点にも注意が必要です。

キャッシュで偏りが生まれる

もうひとつの弱点です。DNSの答えは、プロバイダーのDNSサーバーや利用者の端末に一定時間記憶されるため、多くの人が同じアドレスに集まってしまうことがあります。記憶しておく時間を短く設定すると偏りは減りますが、DNSへの問い合わせが増えます。均等に振り分けたい場合には向かない方法です。

同じサーバーにつなぎ続けられない

アプリケーションでの注意点です。ログインの状態などをサーバーごとに覚えている仕組みでは、利用者の接続先が途中で別のサーバーに変わると、ログインが切れるなどの問題が起きます。どのサーバーにつながっても同じように動くよう、情報を共有の場所に保存するなどの設計が求められます。

ほかの仕組みと組み合わせる

実際の使われ方です。現在の大規模なサービスでは、DNSラウンドロビンを単独で使うより、複数のロードバランサーや拠点へ振り分ける最初の段階として使われることが多くあります。死活を監視して、故障した拠点を自動でDNSから外す仕組みと組み合わせれば、弱点を補いながら手軽さを生かせます。

メールサーバーとの違い

似た仕組みとの区別です。メールの配送先を決めるMXレコードには、もともと優先順位を付けて複数のサーバーを登録できる仕組みがあり、優先度の高いサーバーが使えないときに次のサーバーへ回されます。単純に順番を回すDNSラウンドロビンとは、考え方が異なります。用途に応じた登録の方法を選ぶことが大切です。

あわせて知っておきたい用語

  • DNS:
    ドメイン名とIPアドレスを対応付ける、インターネットの住所録の仕組みです。
  • 負荷分散:
    処理を複数のサーバーに振り分けて、1台への集中を防ぐ仕組みです。
  • ロードバランサー:
    アクセスを複数のサーバーへ振り分ける専用の装置やサービスです。
  • TTL:
    DNSの答えなどを、どれだけの時間記憶してよいかを表す値です。

コメント

タイトルとURLをコピーしました