Managed Service Column <システム運用コラム>

Category: 入門編

2021.04.02

はじめに

IT技術やインターネットの急速な発展にともない、企業では自社に適したシステムの構築が求められています。自社の目的に合わせてシステムを構築すれば、業務の自動化・効率化を図ったり、顧客や取引に関するデータを効率的に蓄積・共有したりすることが可能です。

しかし、システムには思いがけない障害が起こる可能性もあります。障害によってシステムが停止すると、取り返しのつかない事態に発展することも考えられるでしょう。そのため、システム構築の際には、万が一に備えて適切な対策を講じることが重要です。

この記事では、障害のリスク低減につながる対策「冗長化」の意味や必要性、それに関連する言葉「フェールオーバー」について解説します。

冗長化とは

システムにおける「冗長化」とは、何か障害が起こっても稼働を継続できるよう、あらかじめ予備のサーバーやネットワークを組み込んでシステムを構築・運用することです。

“冗長”は本来であれば「無駄が多い」「余分なもの」などネガティブな意味合いで使われる言葉ですが、ITの世界においては「予備を用意して万が一に備える」というポジティブな意味を持っています。

冗長化させたシステムを構築することで、もしメインの系統が障害によって停止しても、予備の系統でカバーしてシステム全体の稼働を継続できるようになります。その結果、システムに関連する業務やユーザーへの影響を最小限に抑えたり、システム復旧にかかる時間を短くしたりできるのです。

二重化との違いは?

冗長化について調べていると、似たような意味合いを持っている「二重化」という言葉を目にすることがあります。

二重化とは、同一の機器・系統から構成されたシステムを文字どおり2つ用意して、障害に強い環境を作ることです。一方、冗長化は二重化の状態からシステムの数をさらに増やして、三重化・四重化の構成にすることを指します。

つまり、冗長化の一環として二重化があるので、基本的な意味合いは同じと考えても問題ないでしょう。

システム冗長化の構成例

システムの冗長化を実施する場合、おもな構成例としては以下の2つが挙げられます。

アクティブ・スタンバイ構成

「アクティブ・スタンバイ構成」はシステムの冗長化において、最もシンプルでわかりやすい構成です。同一のシステムを2つ以上用意したうえで、1つは稼働系(アクティブ)として、それ以外は待機系(スタンバイ)として運用することで冗長性を持たせます。稼働系が障害によって停止しても、待機系に切り替えて処理を引き継げるという仕組みです。

アクティブ・スタンバイ構成には、待機系も常時稼働させて稼働系のデータを同期させる「ホットスタンバイ」と、障害発生時に初めて待機系を稼働させる「コールドスタンバイ」の2種類があります。前者に比べると後者は切り替えやデータ同期に時間がかかりますが、その代わり運用コストを安く抑えやすいことがメリットです。

なお、上記のように「異常が発生した際に処理を引き継ぐ仕組み」をフェールオーバーといいます。ハートビートなどで常にシステムを監視することで、異常を検知した際に自動で切り替えることもできます。また自動ではなく手動で切り替える仕組みもあり、そちらはスイッチオーバーと呼ばれています。

アクティブ・アクティブ構成

「アクティブ・スタンバイ構成」に対して「アクティブ・アクティブ構成」は、用意した同一のシステムを常時稼働させる構成です。すべてのシステムを常に稼働させることで、トラブルがない平常時は処理にかかる負荷が分散されます。どのシステムで処理を実施するかといった定義はなく、処理を行うタイミングで利用するシステムが決定されます。いずれかのシステムに異常が発生した場合には稼働している残りのシステムにて処理を継続することができます。

障害が発生した場合や障害から復旧した場合には、全システムのトータルのサーバー台数が増減しますが、処理は常に稼働しているシステムの中で分散される仕組みです。

システム冗長化におけるデータ同期の仕組の例

マスター・スレーブ構成

「マスター・スレーブ構成」とは、システムを管理・制御する役割を担うサーバー「マスター機」と、そのマスター機のもとで制御されながら動作するデータベース「スレーブ機」によって成り立つ構成です。

平常時はマスター機を使ってデータの参照や書き込みといった処理を、スレーブ機は障害発生に備えてマスター機のレプリケーション(データのリアルタイム同期)を行います。マスター機で障害が起こったとしても、同じデータを持っているスレーブ機に切り替えてシステムを継続できるという仕組みです。ただし、この切り替え工程には若干のダウンタイムが発生します。

また、スレーブ機に与えられている処理権限は参照だけなので、基本的にデータの書き込みはできません。書き込みを行いたい場合は、スレーブ機を新たにマスター機に昇格させるという処理を行う必要があります。

マルチマスター構成

「マルチマスター構成」とは、マスター・スレーブ構成におけるマスター機とスレーブ機のような役割の違いがなく、複数のサーバーにおいてすべてがマスター機であり同じ処理権限を与えて運用する構成です。つまり、すべてがマスター機であるため、どのサーバーに対してもデータの参照だけではなく書き込みができるようになります。

マスター・スレーブ構成で構築したシステムの場合、系統の切り替えにともないダウンタイムが生じますが、マルチマスター構成であればそれがないため、より冗長性に優れているといえるでしょう。

ただし、すべてがマスター機となる関係上、データのレプリケーションで整合性を取ることが難しい、運用コストがかかりやすいといったデメリットもあります。

なぜシステムを冗長化する必要があるのか?

システムの冗長化に関する概要がわかったら、その必要性についても把握しておきましょう。

システムの可用性を高めるため

システムを構築・導入するうえで最も大切なのは、そのシステムが停止することなく継続稼働できる能力「可用性」を高めることです。システムの可用性が高まれば、障害が起こったときも含めて安定した稼働を見込めるのはもちろん、万が一システムが停止しても停止時間を短くできるようになります。

システムを構築する際には、目的や構成を問わず障害への対策を講じることが大切です。サーバーやネットワークの不具合、システム管理者やオペレーターによる人為的ミスなど、障害を引き起こす要因は身近なところに存在しています。

また、地震や落雷といった自然災害による停電など、外部的な要因でも障害は起こるため、障害発生のリスクは常について回るといっても過言ではありません。

可用性はシステム自体の信頼性にも影響するので、冗長化の対策によって可能な限り高めましょう。

システムの負荷を分散するため

何らかの要因でアクセスが集中したり、DoS攻撃やDDoS攻撃を受けたりした場合、システムに大きな負荷がかかり、障害につながる可能性があります。

しかし、あらかじめ冗長化を行っておけば、システムにかかる負荷を分散させられるため、上記のような事態が起こってもシステムを継続稼働できるようになります。

BCP策定に取り組むため

システムの冗長化は、BCP(事業継続計画)の策定にもつながります。機器トラブル・自然災害・サイバー攻撃といった事態からシステムを守ったり、障害からすぐ復旧できる仕組みを作ったりすることは、BCPの観点から見ても重要な意味を持っているからです。

例えば、金融機関や医療機関のシステムは、1秒でも停止すると取り返しのつかない事態に発展する可能性があるため、何が起こっても稼働させ続けることが大切です。しかし、どのようなシステムを運用するにしろ、機器の経年劣化や自然災害による障害は防げません。

特に大規模災害が起こると事業継続に関わる致命的なダメージを受ける可能性もあるので、冗長化によって少しでもリスクを軽減できるようにしましょう。

おわりに

自社に最適なシステムを構築する際には、障害によるシステムの停止を防げるよう、冗長化の対策を行うことが重要です。いかに優れたシステムであっても、障害自体をゼロにすることは極めて困難ですが、システムの冗長化を図り対策を練ることで障害に強い環境を構築することはできます

万が一の事態に備えるために、冗長化に対応したサービスやソフトウェアを使って、可用性と信頼性の高いシステムを構築してみてください。

また、クラウド上に構築するシステムの可用性を高める構成については、「Multi-AZとは?マルチAZ構成のメリット・デメリットについても解説」(AWSの例)もあわせてチェックしてみてください。

Free

資料ダウンロード

課題解決に役立つ詳しいサービス資料はこちら

資料ダウンロード
  • システム運用代行サービスカタログ

    システム運用代行サービスのメニューと料金をご確認いただけます。

システム運用個別相談会(無料)

関連記事

Contactお問い合わせ

お見積もり・ご相談など、お気軽にお問い合わせください。

single.php