今日、あらゆる機器、システムおよびワークフローは高度化、複雑化しています。それとともに予期せぬシステムトラブルへの不安はより一層高まっています。
いわゆる 24/365(※1)と呼ばれる、無停止、トラブルレスのシステムやワークフローが常に現場で求められる一方、そもそも何が原因でトラブルが生じるのか、具体的に何を準備することがダウンタイム(※2)の回避につながるのかといった技術的、システム的な見地からの考察が置き去りになってはいないでしょうか。
機器やシステムの調達の際の意思決定において、やれ、どこそこのベンダーは「24/365 を謳っている」あるいは「24/365を保証しない」といった表面的な議論が意外とまかり通っていたりすると聞いたりもします。
そうではなく、本来ダウンタイムを回避するためには、システムの可用性(※3)を確保するための一連の戦略があり、その前提として、そもそもなぜダウンタイムが生じるのかについて具体的に理解することが重要です。
(※1)24/365:24 時間 365 日のことです。 システムの運用・保守業務においてよく使われる言葉で、24/365 運用とはシステムを 24 時間 365 日安定稼働させることを表します。海外では一般的に 24/7(24 時間 7 日間)とも呼ばれます。
(※2)ダウンタイム:予期せぬ障害や問題が発生することで、コンピューターシステムやネットワーク、サービスが停止してしまう、または正常に稼働していない状態のことを指します。
(※3)可用性(Availability):システムが継続して稼働できる能力のことです。サービスの提供が不可能になる状態に陥ることが少なく、安定して利用することができるシステムは可用性が高い、といえます。
そもそもなぜシステムはダウンするのか?
ダウンタイムの原因となる要因はさまざまなものがあります
- ハードウェアの障害: サーバーやネットワーク機器などのハードウェアが故障した場合、システム全体が停止する可能性があります。
- ソフトウェアの障害: OS(※4)、データベース(※5)、アプリケーションなどのソフトウェアがクラッシュしたり、バグが発生したりすることで、システムが停止することがあります。
- 人為的ミス: システムの設定変更やアップグレードの際に、誤った操作や設定が行われることでシステムがダウンすることがあります。
- セキュリティ攻撃: ウイルス、マルウェア(※6)、DDoS 攻撃(※7)などのセキュリティ攻撃によって、システムが停止することがあります。
- 自然災害: 地震、洪水、火災などの自然災害によって、データセンターやサーバールームが損傷し、システムが停止することがあります。
- 電源障害: 電力供給の停止やサージなどの電力関連の問題によって、システムが停止することがあります。
- ネットワークの問題: ネットワークのトラフィック過多、ルーティングエラー、回線の切断などによって、システムが停止することがあります。
これらの要因は単独で発生することもありますが、複数の要因が組み合わさってダウンタイムが引き起こされることもあります。
これは例ですが、たとえば人為的ミスでセキュリティ上の対策が失われ、それによって本来は防げていたはずのセキュリティ攻撃を受けてシステム停止してしまう、あるいは自然災害によってシステムの一部が停止したことがきっかけでネットワークのトラフィック過多が発生してシステム外停止する、といった場合が考えられます。
したがって、どの要因も軽視することはできません。
(※4)24/365:OS(Operating System):基本ソフトウェアとも呼ばれ、コンピューターの操作やアプリなどを使うために必要なソフトウェアのことを指します。Windows、Mac OS、Linux、Chrome OSなどの種類があります。
(※5)データベース:コンピューターシステム上に構築され、関連するデータを論理的にまとめて格納したりデータを操作したりするためのソフトウェアです。
(※6) マルウェア:コンピューター、およびプログラムによって動作するデバイスやサービス、ネットワークに害を与えたり、悪用したりすることを目的とした悪意のあるソフトウェアの総称です。
(※7) DDoS(Distributed Denial of Service)攻撃:複数のコンピューターやデバイスから同時に大量のリクエストや通信を対象とする攻撃のことです。この攻撃は、対象となるシステムやサービスに過剰なトラフィックを送り込むことで、サービス提供者に混乱や損害を与えることを目的としています。
リスクへの対策
システムの可用性を確保するためには、これらのリスクに対する対策を講じることが重要です。ダウンタイムを最小限に抑え、ビジネスの連続性を確保するためには、可用性への投資と戦略的な計画が不可欠です。
- 冗長性(※8)の確保: システムやワークフローを二重化するなどして冗長性を確保することで、とくにハードウェアの障害によるシステムの障害に対する耐性を高めることができます。例えば、複数のサーバーを構成して負荷分散を行ったり、冗長なネットワーク接続を設けたりすることで、単一障害点を減らし、可用性を向上させることができます。
- 個別のコンピューターや機器についても、電源ユニット、冷却ファン、HDD、LANポートなど、消耗によるシステム故障の原因となることの多いパーツが二重化(冗長化)されている製品を採用することで、製品故障の発生率を下げる、あるいはパーツ単位の不具合が発生した時点で、コンピューターや機器が実際にダウンする前に、パーツ交換のメンテナンスを実施することでシステム障害を回避できることが期待できます。
- モニタリングとアラート設定: システムのモニタリングを行い、問題が発生した場合には早期に対処できるようにすることが重要です。モニタリングツールを活用してシステムのパフォーマンスや稼働状況を監視し、異常を検知した際には自動的にアラートを送信するよう設定することで、問題の早期発見と迅速な対応が可能となります。
- バックアップと復旧策の整備: データのバックアップと復旧策を整備することで、システムの可用性を高めることができます。定期的なバックアップを行い、データの損失や障害発生時には迅速に復旧できるようにしておくことが重要です。
- 災害復旧計画の策定: 災害が発生した際に迅速かつ効果的に復旧するためには、災害復旧計画を策定しておくことが不可欠です。災害の種類や影響範囲に応じて、復旧のための手順や役割分担を明確にし、必要なリソースを事前に確保しておくことが重要です。
- 定期的なメンテナンスとアップグレード: システムの定期的なメンテナンスとアップグレードを行うことで、システムの安定性と可用性を向上させることができます。ソフトウェアのアップデートやパッチ適用、ハードウェアの交換などを定期的に行い、システムの最新化と安定化を図ることが重要です。
これらの戦略を組み合わせて、システムの可用性を高めることができます。
(※8)冗長性(Redundancy):耐障害性を高めるためにシステム全体を二重化して予備のシステムを用意することを「冗長化」といい、冗長化によって信頼性や安全性が向上した状態を「冗長性」があるという。