Blog ブログ

サーバ冗長化で実現する快適安眠ライフ! ~導入編~

皆様、初めまして。

CCSでプログラマをやっている武藤と申します。

この開発者ブログでは他の開発者が色々な記事を書かせてもらっておりますが、私の方ではサーバの『冗長化』について書いていきたいと思います。

◆そもそも『冗長化』ってなに?

システムの一部に何らかの障害が発生した場合に備えて、障害発生後でもシステム全体の機能を維持し続けられるように予備装置を平常時からバックアップとして配置し運用しておくこと。

・・・とWikipediaには書いてあります。
http://ja.wikipedia.org/wiki/%E5%86%97%E9%95%B7%E5%8C%96

サーバエンジニアの方であれば一度は考えた(もしくは経験した)ことがあるかと思いますが、リアルタイムに動いているサーバが、ある夜突然停止してしまったら。。。

電話で叩き起こされて、そのまま朝まで復旧対応、止まない問い合わせ。。。

なんてことにはなりたくないですよね。
そのために『冗長化』を行う必要があります。

◆具体的にはどんなことをするの?

冗長性を持たせる為には色々なアプローチがあると思います。
1. 1台のWebサーバが故障しても動作出来るように2台以上でリクエストを捌く。
2. ストレージの故障の対策として、RAID構成にする。
3. DBサーバをレプリケーションしておき、マスタDBが停止してもスレーブDBで動作出来るようにする。
などなど。

◆『冗長化』は負荷分散にも繋がる

例えば、アプリ開発を行う中でWebサーバ+DBを利用してデータをサーバ側で保存するとします。
その場合、少なからずアプリとサーバ側で通信が発生しますが、サーバへのリクエストが多すぎるとサーバで処理を捌き切れず、まともなパフォーマンスが出ない、なんてこともあり得ます。
そんな場合は上記の 1. の方法を取ることにより、冗長性を持たせるだけでなく負荷を分散させることが可能です。(所謂スケールアウトですね。)

◆というわけで

実際にどういった構成にしていくべきか、というところを次回以降考えて行きます。
私もまだまだ勉強中の身でありますので、折角頂いたこのブログ記述の機会に『冗長化』のポイントをしっかり押さえていきたいと思います。

それでは皆様、サーバ冗長化で快適な安眠ライフを!