サーバダウンの原因と対策とは?システム障害を防ぐサーバ運用について解説

 Webサービスを展開する企業において、サーバダウンに備えたインフラを準備し、しっかりと対策を行っておくことが大切です。
 サーバダウンはさまざまな原因で発生する可能性があり、完全に防ぐことはできません。そのため、いかにサーバダウンの発生を抑制し、サーバダウンに備えた対策が行えているかが重要になってきます。
 適切なサーバダウンに対する対策が行えていないと、システム停止に伴うお客様からの信用低下や、停止時間の長期化に伴う機会損失が発生してしまいます。また、障害に対応するためのシステム運用スタッフの負荷が高まってしまうという課題があります。
 本記事ではサーバダウンの原因と対策から、システム障害を防ぐサーバ運用について解説いたします。

サーバダウンの原因は?

 サーバダウンの原因として、ハードウェアの障害やシステム不具合などの内的要因と、アクセス集中やサイバー攻撃などの外的要因があります。

<内的要因>

ハードウェア障害

 サーバ機器は特に24時間365日の連続稼働が求められ、さまざまな機器パーツが劣化することで故障する可能性があります。
 サーバは5年~6年程度の耐用年数により償却費の計算を行っていることが一般的ですが、システムがこの期間を越えて更改されずに利用されるケースがあり、耐用年数を越えて利用を続けることで、経年劣化による故障のリスクが高まってしまいます。
 さらに地震や災害などの天災や、火災などの事故でサーバダウンしてしまう場合もハードウェア障害として分類されます。

ソフトウェア不具合

 サーバ上ではサービスを提供するソフトウェアが稼働していますが、これらがソフトウェアの不具合により、搭載メモリを超えるメモリ要求(OOM / Out Of Memory)や、CPUの演算性能を上回る処理(ループ処理)などが発生し、サーバダウンしてしまう可能性があります。特にサービスを提供するアプリケーションのソフトウェア不具合やバグは、入念な設計や構築、テストを行うことでリスクを低減できますが、完全になくすことはできません。

人為ミスによる不具合

 サーバは日々のメンテナンスや、監視アラート対応などで運用スタッフによるサーバ操作が発生する場合があります。作業におけるサーバの誤操作や、設定ミス、メンテナンス不備など人為的なミスは完全に防ぐことは難しく、人為ミスによってサーバダウンしてしまう可能性があります。

<外的要因>

アクセス集中

 テレビなどのメディアに取り上げられたり、ECサイトでセールを実施するタイミングでアクセスが集中し、サーバの性能を上回る処理性能が必要となることでサーバが応答不可状態に陥ったり、サーバダウンしてしまう可能性があります。あらかじめサーバ台数を増やすことや、仮想基盤やクラウドの場合は割り当てリソースを増強するなどで備えることができますが、必要なパフォーマンスを各ケースで最適に需要予測を行うことは容易ではありません。

サイバー攻撃

 インターネット上に公開してサービス提供を行うということは、全世界のあらゆる場所から悪意のある攻撃者に寄りサイバー攻撃を受ける可能性があります。
 特にサービス妨害攻撃である「DoS攻撃」は、サーバやネットワークに過剰に負荷をかけることでサービスの運用や提供を妨げる攻撃であり、複数のクライアントから一斉に攻撃を仕掛ける分散型サービス攻撃である「DDoS攻撃」などは完全に防ぎきることは難しく、クラウドサービスと組み合わせることなどで、その影響を緩和する必要があります。

サーバダウンによる障害影響とは?

 上記のように内的要因・外的要因により発生するサーバダウンですが、これらに対して対策が不十分だと、システム障害を引き起こし、さまざまな悪影響が懸念されます。

ブランド力の低下

 Webサービスがサーバダウンによって閲覧・利用できない状態に陥ると、その原因にかかわらず、障害期間はユーザーの利便性を損なうことになります。信用低下やブランド力の低下の恐れがあります。

販売機会の損失(売上が減る)

 ECサイトの運用や、通販サイトなどへの販売チャネル誘導などを該当のサーバが行っている場合、障害が発生すると販売機会の損失につながり、結果として売上が減少してしまいます。

運用スタッフの負荷が高まる

 サーバダウンに対して即座に対応が求められる状況の場合、障害の対応は常に高い優先度のタスクとして運用スタッフの業務負荷を高めてしまいます。また夜間休日対応の運用スタッフの緊急対応などが頻発すると、日中時間帯の業務運営にも悪影響が懸念されます。

サーバダウンに備える対策とは?

 サーバダウンを完全に防ぐことはできませんが、あらかじめ対策を行うことで障害に対して影響を受けにくく、レジリエンス(回復力や弾性)を持ったシステムを運用することができます。

サーバのスペックを上げる(スケールアップ)

 最も基本的な対策となりますが、サーバはリソース(CPU/メモリ)に余裕を持った運用によりシステム稼働が安定します。過剰なリソースを割り当てる必要はありませんが、ピークで求められる性能をしっかりとサーバサイジング(必要な規模や性能を見積)し、中長期での利用率の向上を見据えたリソースの割り当てを行うことが大切です。

サーバを冗長化する(スケールアウト)

 こちらも近年のサーバ運用では欠かせない対策ですが、2台以上のサーバでシステムを構成することで、たとえ1台のサーバがダウンしてしまったとしても、継続してサービスを提供することが可能な構成をとることが可能です。サーバの冗長化方式にはさまざまなものがあり、使用するOS、ミドルウェア、アプリケーションによって最適なものを選択することが重要です。
 また、スケールアウトに欠かせないのがロードバランサであり、サーバの冗長化構成を制御する役割を担います。ロードバランサと組み合わせることでサーバダウンが発生したサーバが復旧するまでの間、システム影響がでないようにユーザーからのアクセス経路を適切に制御することが可能となります。

クラウドサービスを活用する

 先述したスケールアップやスケールアウトは、サーバが物理的な機器に依存する場合は追加の調達が必要になりますが、クラウドサービスを活用することで必要なタイミングに従量課金でリソースを追加することが可能です。
 そして、クラウドでは負荷に応じたスケールアウトやロードバランサとの連携もあらかじめ機能として提供されている場合が多く、専用のネットワーク機器を調達する必要もありません。
 さらに主要なパブリッククラウド(AWS/Azure/GCP)のサーバは自動復旧機能などが提供されており、運用スタッフの作業を介することなく直ちに障害復旧を行うことができます。このことで人為ミスを抑制できますし、運用スタッフ負荷を低減することが可能となります。
 また、クラウドサービスは非常に大規模なインフラで運用されているため、サイバー攻撃に対して耐性のあるネットワーク基盤や緩和技術が提供されています。

テストを自動化する

 サーバダウン対策が難しい要因の1つとして、アプリケーションが抱えるソフトウェア不具合があります。この問題には、アプリケーション開発においてCI/CDパイプライン(継続的なインテグレーションとデリバリーを実現するソフトウェア開発支援技術)を整備することで大きな対策効果が得られます。CI/CDパイプラインのなかで自動テストを各フェーズで設定することで、各アプリケーションリリースで常に一定の品質テストをクリアしたアプリケーションを開発することが可能です。
 また、テストを自動化することで人為ミスを抑制し、ソフトウェアバグが発生しにくい開発環境を実現することができます。

サーバの可観測性(Observability)を確保する

 上記の通り内的要因には事前に対策を行うことができますが、アクセス集中やサイバー攻撃などの外的要因は完全に予測することは困難です。そのため、サーバが適切なリソースで稼働していることを確認する稼働統計や監視、ログの収集は、安定したサーバ運用に欠かせません。特に近年のサーバはクラウドサービスと組み合わせることで柔軟にリソースが変化し、サーバ台数が増減する可能性があることから、クラウドに対応した監視基盤を準備することが大切です。
 このような現在のシステムの健全性を計測し、変化に対して追従することができる状態を可観測性(Observability)があると呼ばれ、サーバの安定稼働のために重要な要素となっています。

SLO(サービスレベル目標)を持って対策を検討する

 上記に記載した対策は、それぞれに対策コストが発生するため、コストと対策効果を両立する必要があります。そのためにもシステムに求められるSLO(サービスレベル目標)をあらかじめ設定しておくことで、設計の段階から適切なサーバ構成や対策を検討することが可能になります。

まとめ

 サーバダウンには内的要因と外的要因があります。対策によってサーバダウンによる影響を防ぐことができることをご紹介しました。

 オージス総研が提供する運用自動化ソリューション『Cloud Arch』は、ハイブリッドクラウドに対応したモニタリングサービスで、各クラウドベンダーが提供する監視サービスと連携し可観測性(Observability)をご提供します。
 さらに「Cloud Arch」は監視アラート対応などを自動化処理することが可能な運用自動化ソリューションをご提供しています。これまで培ってきた運用実績をもとに、豊富な自動化メニューを取り揃えていることに加え、お客様環境に合わせて有資格エンジニアがカスタマイズすることも可能です。また、無料で試行いただける環境(障害アラート自動コール試行版)もご用意しておりますので、ご興味のある方はぜひともお問い合わせください。

2022年6月8日

関連サービス

  • 運用自動化ソリューション 『Cloud Arch』 特集

    オンプレミスシステムやプライベート / パブリッククラウドの複数サービスを利用しているシステム環境に対し、シームレスな運用自動化と統合監視の環境をご利用いただくことで複雑化するシステム運用の負担低減を実現します。

  • Cloud Arch『障害アラート自動コール』試行版のご紹介

    運用自動化ソリューション Cloud Archの『障害アラート自動コール』 試行版を無料でお使いいただけます。

  • 運用自動化構築サービス

    オージス総研の自動化事例とノウハウに、長年にわたるシステム運用経験を融合し、コンサルから設計構築、運用後の保守窓口まで、一貫したソリューションとしてご提供します。