by shigemk2

当面は技術的なことしか書かない

サーバ/インフラを支える技術1 冗長化/負荷分散2

前回
サーバ/インフラを支える技術1 冗長化/負荷分散1 - by shigemk2

DNSラウンドロビン
DNSを利用して一つのサービスに複数台のサーバを分散させる手法のこと。
リクエストがあると、DNSが異なるIPアドレスをクライアントに返す。

わりと簡単に負荷分散が可能になるが、

  • サーバの数だけグローバルアドレスが必要
  • 均等に分散されるとは限らない
  • サーバがダウンしても気づかない

VIPを複数台のサーバで保有して、サーバがダウンしたら
VIPを別のサーバに引き継がせて、生きているサーバにアクセスを
担当させる。

ただし、DNSラウンドロビンを使って負荷分散をしながら冗長化をするためには、
スクリプト類を整備したり他のソフトウェアを組み合わせたりすることでそれなりの工夫と労力が必要となり、またサーバの台数が増えてシステムが複雑になるにつれて難易度が上がっていく。

  • どのサーバが落ちたときにどのサーバがVIPを引き継ぐのか不定
  • フェイルオーバのタイミングによっては2台のサーバが同じIPアドレスを持つ可能性がある
  • 一度停止したサーバを復帰させるのが困難

DNSラウンドロビンを使うより、ロードバランサを使うほうが負荷分散を楽に出来ることがある。

[24時間365日] サーバ/インフラを支える技術 ?スケーラビリティ、ハイパフォーマンス、省力運用 (WEB+DB PRESS plusシリーズ)

[24時間365日] サーバ/インフラを支える技術 ?スケーラビリティ、ハイパフォーマンス、省力運用 (WEB+DB PRESS plusシリーズ)