サーバ冗長化の方法

未分類

冗長化とは・・・

webサービスのネットワークやサーバシステムは,継続して稼働させつづけなければいけません.
冗長化とは,障害が発生しても呼びの機材でシステムの機能を継続できるようにすることです.

冗長化の3STEP

障害を想定して,予備の機材を準備する

例えば,基本的なサーバシステムを考える場合,まず,発生しうる障害を想定します.

  • ルーターが故障
  • サーバが故障

上記の障害に備えるために,ルータとサーバを用意します

障害が発生した際に,予備の機材に切り替える運用体制を整備する

ルータが故障した場合

コールドスタンバイ・・・
現用機が故障した時に,予備機を接続する運用体制

注意点
現用機と予備機の設定は同じにしておかなければいけません.
ルータなどのネットワーク機器は,運用中に頻繁に設定を変えることもないし
蓄積するデータもほとんどありません.

webサーバが故障した場合

ルータの場合と同様に,予備機に切り替える方法が考えられるが,これでは問題があります.

ホットスタンバイ・・・
両方のサーバを常に稼働させておいて,常に同じ状態に保っておく運用形態

冗長化の定石は,「現用機と予備機の構成を常に同じ状態にしておくこと」です.
しかし,webサーバの場合,サイトの内容やアプリケーション
オペレーティングシステムのバージョンアップが起こります.
これらの更新作業を予備機に対して行うのは非常に困難です.

注意点
ただし,いざとなったときに,コンテンツやバージョンが古いと大変です.
そのために,webサーバの予備機は,常に電源を入れておいて,ネットワークに接続しておくのがよいです.そして,現用機の内容を更新する際には,予備機にも同じ更新が行われるように,運用していきます.

コールドスタンバイの場合は,
物理的に線を繋ぎ変えたり,電源を投入しなければいけないため
障害時のダウンタイムが長くなりがちです.
これに対して,ホットスタンバイだと,すぐ切り替えられます.

フェイルオーバ

現用機に障害が発生した際に,自動的に処理を予備機に引き継ぐことをフェイルオーバといいます.
サーバをフェイルオーバするには,仮想IPアドレスとIPアドレスの引き継ぎを行います.

ヘルスチェック

ヘルスチェック・・・
障害を検出する

正常にフェイルオーバするためには,現用機の障害発生を検出することが必要です
これをヘルスチェックといいます
これには,様々な種類があり,それぞれの場面で適切なものを利用する

ヘルスチェックの種類

  • ICMP監視(レイヤ3)
    ICMPは,インターネットがつながっているかの通信をやり取りするためのお約束事です.
    最も簡単にできるヘルスチェックですが,サービスがダウンした場合は,検知できません.
  • ポート監視(レイヤ4)
    TCPで接続を試み,接続できるかどうかをチェックします.
  • サービス監視(レイヤ7)
    HTTPリクエストを発行して,正常に応答が返ってくるかチェックします.

落とさないシステムを作るために

冗長化は,システムを継続して稼働させ続けるために必要です.冗長化の意味や,プロセスを理解することで,開発時に取り入れていきましょう.