IT化が進み、多くの企業で業務の効率化や生産性の向上を目的としてシステムを使うようになりました。しかし、一方で思いがけない障害が発生する事態も増えています。これが社内の基幹システムで起こった場合は、稼働できなくなるなど、深刻な事態になりかねません。そのため、システムはさまざまなリスクを考慮して構築する必要があります。
冗長化とは?
冗長化とは、ハードウェアの障害やアクセス集中による負荷の超過に備えて予備を用意しておくことです。
一般的に「冗長」というと、無駄が多くて長いことを指しますが、ITにおいては、不測の事態に備えることで、システムやサービスを安定的に稼働させるという意味があります。
冗長化の仕組みとしては、予備のシステムを用意しておけば、メイン稼働のシステムにトラブルが起きた場合には予備のシステムで代わりに稼働できるというものです。
冗長化することで、障害が発生してから復旧するまでにかかる時間を短縮できたり、そのシステムやサービスを利用するユーザへの影響を軽減できます。また、昨今、企業において重要視されているBCP対策においても冗長化は必須であるといえます。災害やサイバー攻撃などの緊急事態に備えて冗長化しておくことでシステムやサービスの安定稼働、つまり可用性の向上につながります。
冗長化と二重化の違いは?
二重化、三重化というワードを目にする機会もあると思いますが、二重化とはメイン稼働のシステムと同一のシステムをもう1つ用意し、予備システムとしてメイン稼働のシステムが故障した場合に稼働させるという仕組みです。この予備システムが2つになると三重化となります。
冗長化は、予備システムを複数用意する、つまり多重化させることを指し、二重化も三重化も冗長化に含まれるのです。
冗長化構成の種類は?
冗長化構成には大きく分けると4種類あります。それぞれの構成方法やかかるコストを考慮して、自社に適したものを選びましょう。
アクティブ・スタンバイ構成(デュプレックスシステム)
アクティブ・スタンバイ構成は、同一のシステムを複数用意し、その一つを稼働(アクティブ)させ、そのほかのシステムを待機状態(スタンバイ)にしておきます。このように待機させておけば、稼働していた方のシステムに何らかの障害が起き、待機していた方のシステムがその処理を引き継ぐことができます。そしてこの待機状態のシステムには次の2種類があります。
ホットスタンバイ
ホットスタンバイは、待機状態にあるシステムも電源を入れておき、稼働しているシステムとの同期を常に行っている状態にあります。(レプリケーション)そのため、稼働システムにトラブルが起こった場合でも即座に切り替えられます。
コールドスタンバイ
コールドスタンバイは、稼働システムが正常に作動している際は電源を入れずに待機させるものです。待機システムは稼働システムとの同期を行っていないため、システムの切り替えやデータの同期に時間がかかってしまうことが多いです。しかし、ホットスタンバイより運用コストを下げられるのはメリットです。
アクティブ・アクティブ構成(デュアルシステム)
アクティブ・スタンバイ構成では稼働システムと待機システムに分けられていましたが、アクティブ・アクティブ構成は、複数のシステムを同時に稼働させている状態です。メリットとしては同時に複数のシステムを稼働させるため負荷が分散されることです。また、いずれかのシステムに支障が起きた場合にはそのほかのシステムで対処するため、非常時でもスムーズで、稼働を止めずに済みます。これにより、アクセス集中やサイバー攻撃によって起こりうるリスクも軽減することができます。
マスター・スレーブ構成
マスター・スレーブ構成は、システムのうち一台が「マスター」となり、ほかのシステムの制御・管理を行います。そして、そのマスターに制御されるシステムを「スレーブ」としてマスター機に制御されながら動作します。この構成はデータベースサーバでよく使われています。通常、マスター機が処理を行い、スレーブ機にマスター機のデータの複製している状態です。そして、マスター機に支障が起きた場合に、スレーブ機の一台に切り替えます。ただ、スレーブ機では参照のみで、書き込みはできないことに注意が必要です。もし、書き込み処理が必要となった場合にはスレーブ機をマスター機にする必要がありますが、この切り替えには時間がかかります。
マルチマスター構成
マルチマスター構成は、マスター・スレーブ構成のマスターの役割を全てのシステムが持つ構成です。全てのシステムがマスター機であり、書き込み処理ができるため、切り替え時のタイムラグも発生しません。冗長化には適したシステムですが、デメリットも存在します。マルチマスター構成ではシステム間に上下関係がなくすべてが同位置にあるので、データの同期がうまくいかなかった場合などにデータの整合性を取りづらいという点です。
冗長化で得られるメリット
サーバやネットワーク、ストレージなど、さまざまなシステムを冗長化することは、企業にとって大きなメリットがあります。また、冒頭でも言及しましたが、BCP対策としても有効です。
システムの負荷を分散できる
一つのサーバにアクセスが集中し負荷がかかると、サーバがダウンする可能性もあります。冗長化して一つあたりのシステムにかかる負荷を軽減させることで、サーバダウンのリスクを軽減できます。また、サイバー攻撃に対しても、有効です。
システム停止時間の短縮
システムダウンが起こった場合、冗長化していなければ、復旧までにかなり時間を要します。その点、冗長化をしておけば、システムダウンが起きた場合でも復旧にかかる時間を短縮できます。特にアクティブ・アクティブ構成やマルチマスター構成に関しては切り替えがスムーズで稼働をほとんど止めずに済みます。
BCP対策になる
システムの冗長化はBCP対策(事業継続計画)にも関係しています。近年、災害が増え、サイバー攻撃も激化していることから日本でもBCP対策が重要視されるようになりました。BCP対策の目的としては、このようなトラブルが発生した際の被害を最小限に抑え、システムを安定的に稼働させることで、冗長化はその重要な手段となっています。
バックアップを取るだけではダメ?冗長化の必要性
中小企業庁のHPでは、BCP対策について次のように記載されています。
企業が自然災害、大火災、テロ攻撃などの緊急事態に遭遇した場合において、事業資産の損害を最小限にとどめつつ、中核となる事業の継続あるいは早期復旧を可能とするために、平常時に行うべき活動や緊急時における事業継続のための方法、手段などを取り決めておく計画のことです。
参照:中小企業庁「中小企業BCP策定運用指針」
上記のような事態に陥った場合でも、企業は早急な復旧をする必要があります。特に医療機関や金融機関においては取り返しのつかない事態にもなりかねません。そのため、このような企業活動の停止を回避するためにも、予備システムを用意して冗長化する必要性があるのです。
通常のバックアップでは、システムの復旧までにどうしても時間がかかってしまいます。その点、冗長化していれば復旧に時間をほとんどかけずに済みます。
冗長化のデメリットはコスト面
デメリットとしてはやはりコスト面です。予備として同一のシステムを複数用意し稼働させるには導入コストや運用コストがかかります。たとえば、サーバの冗長化には物理的にサーバを設置する「オンプレミス型」とクラウド上にサーバを設置する「クラウド型」の2種類があります。
「オンプレミス型」の場合は、カスタマイズできるというメリットはありますが、導入コストが高くつく上に、メンテナンスも自社で行う必要があるため運用コストも高くなります。
「クラウド型」の場合は、クラウドを利用するため導入コストはかからず、メンテナンスも事業主に任せてよく、運用コストも手ごろです。
ただ、どちらにしても、予備を用意し、運用することは少なからずコストがかかるということです。
冗長化のための機能・ソフトウェアサービス
冗長化するための機能やサービスのなかでも代表的なものを紹介します。
RAID
RAID(Redundant Arrays of Inexpensive Disks)とは、複数台のハードディスクを組み合わせることで仮想的に1つのディスクとして認識・表示させ、まとめて運用して冗長性を高める技術です。
RAIDは1台で「アクティブ・スタンバイ構成」を完結する仕組みになっているため、ハードディスクの処理や故障時の復旧も高速で行えます。
DRBD
DRBD(Distributed Replicated Block Device)は、TCP/IPネットワークを通して複数のサーバのストレージをリアルタイムで複製するOSSです。
仮想サーバやクラウドシステムを利用した冗長化
仮想サーバやクラウドシステムを利用して冗長性を確保することもできます。この方法は物理サーバに加えて仮想サーバを複数台構築して冗長化する方法です。物理サーバを追加で購入する必要がないため、DRBDと同様に導入コストを抑えられます。
冗長化にはサーバやネットワーク、クラウドに関する専門的な知識が必須といえます。ネットワークエンジニを目指している人は、冗長化についての見識も持っておくのがおすすめです。
まとめ
可用性を高めるには、冗長化することが重要です。どんなシステムにも予期せぬ事態は起こり得ます。そのような事態でも稼働を止めない、もしくは早急な復旧を行うには、システムの冗長化といえます。冗長化によって可用性を高めることで企業の信頼性の向上にもつながります。システムに適した冗長化構成で、トラブルに強いシステムにしましょう。
ITスキルを習得するには?
書籍やインターネットで学習する方法があります。昨今では、YouTubeなどの動画サイトやエンジニアのコミュニティサイトなども充実していて多くの情報が手に入ります。
そして、より効率的に知識・スキルを習得するには、知識をつけながら実際に手を動かしてみるなど、インプットとアウトプットを繰り返していくことが重要です。特に独学の場合は、有識者に質問ができたりフィードバックをもらえるような環境があると、理解度が深まるでしょう。
ただ、ITスキルを身につける際、どうしても課題にぶつかってしまうことはありますよね。特に独学だと、わからない部分をプロに質問できる機会を確保しにくく、モチベーションが続きにくいという側面があります。独学でモチベーションを維持する自信がない人にはプログラミングスクールという手もあります。費用は掛かりますが、その分スキルを身につけやすいです。しっかりと知識・スキルを習得して実践に活かしたいという人はプログラミングスクールがおすすめです。
プログラミングスクールならテックマニアがおすすめ!
ITスキル需要の高まりとともにプログラミングスクールも増えました。しかし、どのスクールに通うべきか迷ってしまう人もいるでしょう。そんな方にはテックマニアをおすすめします!これまで多くのITエンジニアを育成・輩出してきたテックマニアでもプログラミングスクールを開講しています。
<テックマニアの特徴>
・たしかな育成実績と親身な教育 ~セカンドキャリアを全力支援~
・講師が現役エンジニア ~“本当”の開発ノウハウを直に学べる~
・専属講師が学習を徹底サポート ~「わからない」を徹底解決~
・実務ベースでスキルを習得 ~実践的な凝縮カリキュラム~
このような特徴を持つテックマニアはITエンジニアのスタートラインとして最適です。
話を聞きたい・詳しく知りたいという方はこちらからお気軽にお問い合わせください。