KEIS BLOGは株式会社ケイズ・ソフトウェアが運営しています。

KEIS BLOG

サーバの冗長化について①


はじめまして!今回からブログを書かせていただきます。中薗と申します_(:3」∠)_

(ケイズの社員インタビューで、
「ラーメン雑誌に載っているラーメン屋の店主のポーズ」をしてるのが私です)
https://keis-software.com/subaru-nakazono/

普段私は、常駐先の現場でサーバサイドのお仕事などをやっていたりするんですが、
意外と技術ブログなんかで、「サーバエンジニアとしての基礎的な知識」
を書いている方が少ないな、という気がしているので、
自分自身の復習、再確認がてら、私はそのへんをテーマにして書いていきたいな、と思っています。

まずは「サーバの冗長化」というテーマについて書いていきたいと思います。
例を示します。

これは、最もシンプルなサーバシステムの構成を図にしたものです。

image1

一見すると、これでシステムが動くのであればなんの問題も無さそうですが、

お客さんが実際に使用するサービスが稼働している環境(これを「本番環境」と言います)では、絶対にこのようなサーバ構成は取りません。

なぜなら、以下のような致命的な問題が発生する可能性があるからです。
① Webサーバが稼働を停止した場合に、サービスが停止してしまう。
② ルータが稼働を停止した場合に、サービスが停止してしまう。

①の「サーバが稼働を停止」というのには、
物理的にサーバが壊れてしまう場合だけではなく、
あまりに高い負荷がかかったためサーバのリソースを使いはたしてしまう場合、
運用者やプログラムが間違って重要なファイルを消してしまって
サービスが立ちいかなくなる場合など様々なケースがあります。

image2

このようなサーバ構成のままにしていると、何かのトラブルが発生した場合に
すぐサービスが停止してしまいますし、その後の復旧作業を
全て人の力で行わなければならないため、システムのダウンタイムが長くなり
オペレーションミスによる二次災害を誘発しやすくなります。

これを回避するために行われるのが「冗長化」です。

その意味は、
「万が一に備え、代替用の設備を用意しておき、
故障や障害が発生した場合でもサービスを継続的に提供できるようにすること」
です。

さきほど示した例ですと、Webサーバ、ルータのいずれかが停止してしまうと
サービスそのものが停止してしまうため、「予備のWebサーバ」、「予備のルータ」を
用意しておくことを考えます。
次回以降は、サーバ冗長化のための具体的な方法を書いていきたいと思います。