MEGAZONE
Tech ブログ
アクセス集中でサーバーダウン!?障害対応のフローをわかりやすく解説
サーバーダウンは、企業の売上に深刻なダメージを与える可能性があります。
IT アドバイザリ企業のガートナーによると、サイトダウンが発生する度に、1分につき5600米ドル(日本円で約76万円)の損失が発生する可能性があると言及されました。また、これは平均値であり、企業規模の大きさや繁忙期などの影響でさらに損失額が大きくなる可能性もあるでしょう。
サーバーダウンによる損失を防ぐためには、事前に対応措置のやり方を知っておく必要があります。本記事では、サーバーダウンが起きた際の対応フローをわかりやすく解説していきます。
サーバー障害対応とは
企業内のWebサイトの表示やメール、ファイルストレージなど、サーバーはさまざまなサービスを提供しています。
サーバー障害対応とは、サーバーの障害が発生した際に、障害に対して迅速な対応を行って復旧を行う作業全般を指します。サーバーの障害は、主にハードウェア障害とシステム障害があげられます。
この章では、ハードウェア障害とシステム障害の解説とサーバー障害が起きる原因を紹介します。
サーバー障害が起きる原因
サーバー障害が起きる原因はさまざまです。アクセス集中やサイバー攻撃などの「外部要因」とハードウェアの故障やソフトウェアの不具合などの「内部要因」に大きく分けられます。
ハードウェア障害
ハードウェア障害とは、サーバーの物理的な部品や装置に問題が生じることによって発生する障害です。具体的には、ハードディスクの故障、CPUの故障、メモリの故障、マザーボードの故障などがあげられます。
ハードウェア障害は、一般的に突然発生することが多く、予兆がない場合があります。また、物理的な問題であるため、修理や交換が必要な場合があります。
システム障害
システム障害とは、サーバーのソフトウェアやシステムに問題が生じることにより発生する障害です。具体的には、OSのクラッシュ、アプリケーションのバグ、データベースのエラー、ネットワークのトラブルなどがあげられます。
システム障害は、予兆がある場合があります。たとえば、アプリケーションが遅くなったり、エラーが表示されたりすることがあります。また、一部のシステム障害は、人為的なミスによって引き起こされる場合もあります。
ハードウェア障害とシステム障害は、それぞれ原因や特徴が異なりますが、どちらもサーバー障害のリスクを増加させる要因となります。企業や組織は、定期的なメンテナンスやバックアップの実施など、適切な対策を講じて、これらの障害を予防することが重要です。
サーバー障害対応のフロー
ここでは、サーバー障害対応のフローを解説します。下記の流れに沿って進める必要があります。
1. 状況確認
2.ユーザーの影響を最小限に抑える
3.サーバーダウンの原因特定・復旧
まずは、障害が発生した時点でどこのレイヤーで障害が発生したかをモニタリングするようにしましょう。状況を正確に把握すれば、有効な対策をすぐに打ち出した上で実行できます。
サーバー障害の可能性が高い場合、Apacheなどのミドルウェアの稼働状況や各ネットワークサービスの接続状況を確認してみましょう。
また、リクエストを別画面に転送したり、サーバーの台数を増やしたりして、サーバーの負荷軽減も同時に行います。ユーザーへの影響を最小限に抑えることを意識しましょう。
最後にサーバーダウンの原因を特定し、復旧作業を行います。原因の特定は下記の順番で一つ一つ確認するとスムーズです。
1. どのレイヤで障害が発生したかを確認する
2. 「ping」を実行してサーバと疎通が図れるかを確認する
3. (サーバとの疎通が図れない場合)物理的にサーバ機器の稼働状況を確認する
4. 「telnet」でプロトコルが正常に稼働しているかを確認する
5. サーバにログインし、プロセスの稼働状況を確認する
上記の手順を試しても原因がわからない場合、重要なデータをバックアップし、再起動して様子を見るようにしましょう。
サーバー障害を事前に防ぐための対策
この章では、サーバー障害を事前に防ぐための対策を3つご紹介します。
☑︎|サーバを冗長化しておく
☑︎|クラウドサービスを利用する
☑︎|サーバー運用監視システムを導入する
サーバを冗長化しておく
サーバー障害を防ぐためには、サーバーを冗長化することが有効な対策の一つです。冗長化とは、1つ以上のバックアップシステムを備えることで、システムが障害を発生させた場合でも、予備のシステムで継続的にサービスを提供することができるようにすることです。
複数のサーバーにトラフィックを均等に分散し、サーバーの負荷を分散することができるロードバランシングや同じデータやアプリケーションを共有することで、冗長性を高めることができるクラスター構成、データベースやファイルサーバーなどの重要なデータを複製し、サーバーの障害に備えることができるレプリケーションなどの手法を組み合わせることで、高いレベルの冗長性を実現することができます。
しかし、冗長化にはコストがかかるため、必要なレベルの冗長化を確保するためには、コストとリスクをバランスさせる必要があります。
クラウドサービスを利用する
クラウドサービスを利用すれば、クラウド上でどの場所からでもサーバーを管理できます。また、サーバーのリソースを柔軟に拡張・移行できる点も大きなメリットです。
クラウドサービスを利用するにあたり、以下3つの手法でサーバー障害を防ぐことができます。
1. リージョンの分散
クラウドサービスは、地理的に分散した複数のデータセンターでサービスを提供することができるため、地震や災害などの自然災害による障害を防ぐことができます。
2. レプリケーション
クラウドサービスでは、データのレプリケーション機能を利用することができます。データを複数の場所に複製することで、データの損失を防ぐことができます。
3. 自動スケーリング
クラウドサービスは、負荷の増加に応じて自動的にリソースを追加することができます。これにより、需要の急増に対して柔軟に対応することができます。
≫≫ CDNサービスをシェア順で比較!市場や料金についても徹底解説
サーバー運用監視システムを導入する
サーバー障害を防ぐためには当たり前ではありますが、サーバー運用を監視するツールを導入することも重要です。
サーバの運用・監視に関するさまざまなサービスを利用できるのが大きなメリットです。サーバ運用監視システムを利用すれば、監視の負担を軽減でき、サーバ障害に対して迅速に対応できるようになるでしょう。
ハイブリッドクラウドの導入で一部クラウド化
ハイブリッドクラウドとは、オンプレミスの物理サーバーとクラウドの仮想サーバーを組み合わせて利用するクラウドサービスを指します。
ハイブリッドクラウドは、オンプレミスとクラウドのデメリットをカバーしつつ、それぞれのメリットを活かせるのが魅力です。
システムのクラウド化ならAWSがオススメ
システムをクラウド化する際には、AWSがおすすめです。AWS(アマゾンウェブサービス)とは、Amazonが提供しているクラウドサービスであり、国内・海外のさまざまな企業で導入されている代表的なクラウドサービスの一つになります。
AWSは、例えばCDNサービスである「Amazon CloudFront」や、仮想サーバーを構築できる「Amazon EC2」などを別途契約しなくても利用できる点が大きな魅力です。利用したいサービスごとに契約する手間を省くことができます。
Amazon CloudFrontを導入する際には、まずはAWSアカウントの作成・セットアップから行う必要があります。
参考:Amazon CloudFront のセットアップ
続いて、下記の通りに進めていきます。
1. コンテンツを Amazon S3 にアップロードし、オブジェクトにアクセス許可を付与する
2. CloudFront ディストリビューションを作成する
3. CloudFront からコンテンツにアクセスする
詳細な操作方法は下記サイトを参考にしてください。
参考:簡単な CloudFront ディストリビューションの開始方法
Amazon CloudFrontの料金体系は、エッジサーバーからユーザーに転送されたデータ量やオリジンサーバーからエッジサーバーへのデータ転送量、エッジサーバーへのリクエスト数に応じて課金される仕組みです。それぞれ扱うデータ量に応じて大きく変動します。
≫≫【AWSのCDNサービス】Amazon CloudFrontの料金からメリットまで徹底解説!
まとめ
今回は、サーバーダウンが起きた際の対応フローについて解説しました。サーバーダウンは企業への経済的な損失・ダメージが非常に大きくなる可能性があります。
本記事で紹介した対応フローを参考に、自社に適した対応フローを作成していきましょう。