「サーバーの冗長化」と言ってもやり方はいろいろありますが、小規模のビジネスにおいての丁度良いくらいの冗長化について僕なりに考えてみました。
大きなお金が動くようなシステムでは長時間サイトが見れなくなることやデータの消滅などはご法度です。
僕はシステムもサーバーも一人で管理してるのでいかにコストや手間がかからず実用的な冗長化を考えないといけませんでした。
冗長化のために必要なものはcentosで動かされた物理的に個別であるサーバー4台です。
サーバーはvpsで良くて1台あたりのコストは月額1,480円程度のものでも良いです。
仮にww0、ww1、ww2、ww3、とホスト名をつけそれぞれ下記のような役割を持たせました。
ホスト | 目的 | 主な機能 | 冗長化のための特別なプロセス |
---|---|---|---|
ww0 | 通常運用 | データベースサーバー | mysql replication master |
ww1 | バックアップ予備 | データベースサーバー | mysql replication slave |
ww2 | 通常運用 | ウェブサーバー・メールサーバー | lsync |
ww3 | バックアップ予備 | ウェブサーバー・メールサーバー | rsync |
同期のために使われている技術のセットアップに関しては下記のページに記載してます。
冗長化システムを図にすると下記のようなものになる。
現在は例えば
http://www.systemexpress.co.jp/ は ww2 へ
http://www.systemexpress.jp/ は ww3
へDNSが向けられていて、
ww2 が落ちたときは会員に http://www.systemexpress.jp/ を伝える
といった手法をとっている。
いずれはDNSラウンドロビンやロードバランサを用いて切り替えから通常復旧まで全て自動で行われるようなシステムを作りたい。
Copyright(C) systemexpress.co.jp All Rights Reserved. Author Takayuki Yukawa