そのシステムにHAクラスタとか負荷分散クラスタってほんとに必要?

システムはなるべくシンプルな方がいい。
それはアプリケーション開発でも言えることだけれど、その土台となるサーバ構成にも言えることだ。

前職では主にオープンソースを利用したLinuxクラスタを作ったり運用していた。
そういう経験の上で、冗長化や負荷分散のためのクラスタリングは本当に必要でなければできるだけやらない方がいいというのが最近の考え。
システムをサーバ一台で間に合わせることができるならば、それに越したことはない。

クラスタを組むとそれだけコストが高くなる。
クラスタの設計やサーバ調達などにかかる初期コストもそうだが、特に構築後の運用コストや変更コストがバカにならない。
ほんとうにそのシステムにクラスタが必要かどうか、そのコストの見極めをしっかりしたほうがよい。

クラスタを組むとサーバ一台で運用するのに比べて

  • ネットワーク構成の複雑化
  • クラスタリングを見越したアプリケーションの実装
  • 複数サーバのソフトウェアのバージョンアップ
  • 複数サーバへのアプリケーションのデプロイ
  • 運用の設計と組み立て
  • 構成変更時にいろいろと気を遣う

などなど面倒ごとが増える。
それだけ運用負荷があがる。
消費MPが増える。

サーバ一台の構成に比べてシステムに変更を加えるのに気を遣わねばならず、その作業の効率化や運用の組み立てにコストがかかるようになる。
まあ運用の組み立てがうまくいけばそのノウハウは財産になるかもだけど。

もちろん要件的に必要であれば、コストをかけてクラスタを組む価値がある。(コストがかけられなければ要件が無茶ってことだ)
しかしその要件が「あればいいな」くらいのレベルであるならばまずはクラスタを組まずに一台で様子を見た方がいいんじゃないだろうか。
または何らかの代替手段を検討できないだろうか。

サーバ一台でも電源冗長化やボンディング、RAIDなど、障害の発生率を抑える手段はいろいろある。
またリソースのモニタリングをしっかり行ってチューニングしていけば、一台でもパフォーマンスは上がる。
もしかするとサーバ構成以外にも問題解決のポイントはあるかもしれない。

システムはシンプルであることでより堅牢になり、変更に対するフットワークも軽くなる。
サーバ構成にもなるべくシンプルさを心がけたいものだ。


近況とかつぶやきとか

薄めたポカリがマイブーム。水3:ポカリ1。