古いけどスタンダード。DNS ラウンドロビン(1)

負荷分散技術の一貫で DNS ラウンドロビンは使っていますか?

今回はインフラをやっていて最近あまり聞かない DNS ラウンドロビンについて説明します。

最近では負荷分散となるとほとんど Web の負荷分散に結びついてしまい、BIG-IP や UltraMonkey 等の技術に目がとらわれがちですが、DNS によるラウンドロビンも捨てたものじゃありません。

DNS ラウンドロビンは以下のようなメリットを持っています。

  • 無償
  • 既に導入済である為、手っ取り早い
  • 構成がシンプルで分かりやすい

デメリットは以下のようなものです。

  • 完全な分散は不可能
  • DNS の知識が必要
  • 冗長の仕組みは取れない

このあたりを踏まえ、仕組みの説明やデメリットを考えてみましょう。

DNS ラウンドロビンの仕組み

DNS ラウンドロビンは DNS の A レコードを利用します。DNS A レコードは複数定義されていた場合、上から順番に問い合わせに回答します。

名前解決(URL 等から IP アドレスを聞く)の問い合わせが来るたびに定義順に「この URL は A サーバ」「この URL は B サーバ」のように回答してゆく為、同じサーバへ連続してアクセスがゆくことがなくなります。

この定義は A レコードに追加するだけでよいので何かのサーバを再起動する必要もなく(Bind であっても rnd reload)、システムへの影響もほとんどありません。

同時に DNS として完全に独立しているため、構成がシンプルであり、他の Web サービスに後から実装するのも容易でしょう。

また、大抵のサービスには最初から DNS は組み込まれている為、後から実装する必要もなく大抵無償で提供されます。

このような方式で DNS ラウンドロビンは実現されますが、いくつか問題があります。

Published by in 負荷分散 using 63 words.