← ニュースに戻る

ウェブサイトのクラッシュを防ぐ方法

ニューヨーク、タイムズスクエアのショッピング風景

セールや新商品発売を実施した際、サイトのトラフィックが許容上限に達してダウンしてしまった瞬間を経験したことがあるなら、それがどれほど深刻な損害をもたらすか、身をもってご存知でしょう。それは単に売上の損失にとどまりません。サイトのダウンはブランドの評判を傷つけ、顧客のロイヤルティを低下させ、今後行う新商品発売やセールにも悪影響を及ぼすことになります。

ウェブサイトのクラッシュは、トラフィックがピークに達する最も重要なタイミング、つまり新商品の発売、シーズンの更新、チケット販売開始時などに発生する可能性がはるかに高くなります。

これまで、多くのウェブサイトがアクセス集中に悩まされているのを目にしてきました(その解決こそが私たちの仕事です)。この記事も、「仮想待合室を導入すれば、明日までにサイトに導入できます!」とだけ言って、簡単に済ませることもできたでしょう。しかし、解決策を探し始める前に、なぜウェブサイトがダウンするのかを理解することが重要です。

1) サイトの弱点を特定する

クラッシュの発生に影響を与える要因は数十にも及びます。しかし、通常は単にサーバーの容量の問題というわけではありません。インフラストラクチャやコード内の具体的なボトルネックを探してください。これらは、システムのパフォーマンスを制限する要因となります。先日公開した WooCommerceに関する最近の記事で触れたように、一部のプラットフォームやサイトでは、サイトのアーキテクチャが負荷に対応できていなければ、サーバーの規模がどれほど大きくても意味がありません。

2) バックアップ体制を整えておく

サイトのパフォーマンスを分析する際、最も注意すべき点は「単一障害点」です。これは、万が一障害が発生すると、ウェブサイト全体がダウンしてしまうような箇所を指します。こうした重大な障害点を特定し、対処することは、回復力があり、障害に強いウェブサイトを構築するために不可欠です。それは単にこれらの箇所を可能な限り強化するということではなく、サイトに単一障害点が存在しないようにするための戦略を導入することを意味します。

ウェブサイトから単一障害点を排除する方法

  1. サイトを構築または改善する際は、冗長化されたシステムやコンポーネントを導入し、いずれかが故障した場合でも、バックアップシステムが引き継げるようにしてください。これには、追加のWebサーバー、データベースクラスター、ロードバランサー、ネットワーク接続などが含まれます。
  2. データベースやキャッシュ層などの重要なシステムについては、高可用性(HA)構成で動作するように設定してください。
    • 高可用性構成では、個々のコンポーネントに障害が発生した場合でも可用性を維持するために、レプリケーションやフェイルオーバーなどの手法が用いられます。
  3. Amazon Web Services(AWS)、Google Cloud、Microsoft Azure などのクラウドプロバイダーを利用することで、サイトのインフラストラクチャ内に存在するこうした単一障害点を排除するのに役立つ、高可用性かつ冗長化されたさまざまなサービスを利用できるようになります。これには、ロードバランシング、コンテンツ配信ネットワーク(CDN)、マネージドデータベースサービスなどが含まれます。
  4. 可能であれば、サイトのサポートサービスを複数の地理的地域やアベイラビリティゾーンに分散させてください。これにより、単一のデータセンターにのみ影響を及ぼす可能性のある局所的なサービス停止や障害からサイトを保護することができます。
  5. サイトの監視と分析を継続してください。新しい機能やシステムを導入するにつれて、潜在的な障害要因が生じる可能性があります。これらを迅速に発見し、解決することが、ウェブサイトのクラッシュを防ぐための鍵となります。

3) サイトのストレステストを実施する

これは、システムやインフラの分析にも役立つはずですが、ウェブサイトのダウンを防ぐという点では、負荷テストを実施することは、システムの限界を見極める上で極めて重要なステップとなります。

これは、平日のランダムな時間に何百万ものボットをウェブサイトに送り込むことを意味するわけではありません。負荷テストが通常のトラフィックに与える影響が最小限になるタイミングを検討すべきです。ただし、テスト結果の価値は、ユーザーモデルの正確さや追跡する指標の妥当性に大きく左右されるという点も考慮することが重要です。

重要なのは、単にサイトへのアクセス数だけでなく、ユーザーがサイトとどのように関わり合うかということです。

効果的な負荷テストの実施方法

効果的な負荷テストの基盤となるのは、実際のユーザートラフィックのパターンや行動を現実的に再現することです。これには以下が含まれます:

  • あらゆるユーザージャーニー
  • コンバージョンファネル
  • ピーク時とオフピーク時の変動

実世界のユーザー行動を正確に再現することは困難です。しかし、時間をかけて自社サイト上のユーザー行動を調査し、その行動を再現できるシステムを構築することで、はるかに正確な結果を得ることができます。つまり、Google Analytics などのアプリケーションで表示されるデータだけにとどまらず、さらに踏み込んだ分析が必要となります。トラフィックのピーク時の状況は、ウェブサイト上の通常のバックグラウンドトラフィックとは、トラフィックの傾向がまったく異なります。 セール期間中に強い購買意欲を持って予約や購入を行うユーザーは、単なる閲覧者とは異なる方法でサイトと関わり合います。

4) ボットを排除する

以前の記事では、 ボットが新商品の発売にどれほど深刻な被害をもたらすかについて。しかし、ウェブサイトのダウンを引き起こす原因として見過ごされがちなものには、一攫千金を狙う転売業者よりもはるかに悪質なものが存在します。分散型サービス拒否(DDoS)攻撃は、Google、Facebook、GitHub、さらにはAWSといった大手企業でも発生しており、毎年数千万件もの攻撃が仕掛けられている現状を考えると、あなたのサイトが悪意ある攻撃者の標的になる可能性も決して珍しくありません。 この種の悪質なトラフィックを特定し、ブロックするための強固なセキュリティ対策を導入することは、ユーザーにとってサイトの可用性と安定性を維持するために不可欠です。

サイト上のボットを排除する方法

DDoS攻撃トラフィックがオリジンサーバーに到達する前に自動的に検知・遮断する、専用のDDoS対策サービスやコンテンツ配信ネットワーク(CDN)を利用してください。こうしたサービスには、Cloudflare、AWS Shield、Google Cloud Armorなどがあります。

  1. 悪意のあるボットであれ、善意のウェブスクレイパーであれ、自動化されたトラフィックを特定してブロックするために、独自のボット検知および対策手法を導入してください。以下の対策をお勧めします:
    • CAPTCHAの課題
    • IP/ユーザーエージェントのブロックリスト
    • 行動分析
  2. ウェブサイトのトラフィックパターンを注意深く監視し、ボットによる活動やDDoS攻撃の可能性を示す異常を特定してください。可能であれば、問題が発生した直ちにチームに通知されるよう、アラートを設定してください。
  3. アプリケーション、ネットワーク、またはインフラストラクチャの各レベルでレート制限を実施します。これにより、特定の期間内に1つのIPアドレスまたはユーザーアカウントから送信できるリクエスト数が制限されます。これは、悪意のあるトラフィックの急増だけでなく、正当なトラフィックの急増からもシステムを保護するのに役立ちます。CrowdHandlerは、使いやすいレートリミッターとして捉えることができます。
  4. すべてのソフトウェアコンポーネント、フレームワーク、および依存関係について、最新のセキュリティパッチが適用されていることを確認してください。これにより、システムが侵害され、悪意のある目的に利用されるリスクを大幅に低減できます。
  5. そして最後に、DDoS攻撃やその他の悪意のあるトラフィックによるインシデントを迅速に特定し、その影響を軽減し、復旧するための明確な手順を文書化してください。また、チームがこの計画を実行できるよう、十分な訓練を受け、準備を整えていることを確認してください。

5) クラウドサーバーを利用する

クラウドホスティングを利用すれば、クラウドインフラの拡張性と冗長性を活用して 効果的なオートスケーリングを実現し を実現でき、これにより、変動するトラフィックパターンに対応するためにウェブサイトの処理能力を動的に調整することが可能になります。

オートスケーリング機能を備えたクラウドホスティングを利用している場合でも、サイトに潜在的な弱点がないか検討することは依然として重要です。クラウドホスティングのメリットを最大限に活かすためには、オートスケーリングプロセスを起動させるしきい値や指標を設定する必要があります。こうしたしきい値としては、次のようなものが考えられます:

  • CPU使用率
  • 貴サイトからの応答時間
  • 同時ユーザー数またはユーザーセッション数

これらは、自社のウェブサイトのパフォーマンスに関する理解と分析に基づいて策定してください。これらのプロセスを実装する際は、ウェブサイトの処理能力がどの程度段階的に自動スケーリングされるかを必ず考慮してください。リソースの増減は、急激かつ大幅な変動ではなく、段階的に行うべきです。そうすることで、サイトのパフォーマンスを危険にさらす可能性のある過剰な調整を回避できます。

このため、トラフィックの急激な増加に対処するには、オートスケーリングだけに頼ることはできません。新商品の発売やセールを実施する場合は、バッファとして、オートスケーリングの対象外となる追加の処理能力を確保しておくことが不可欠です。

セールや新商品発売など、トラフィックが極端に増加するイベントをサイトで開催する予定がある場合、インフラの拡張に伴う移行を適切に管理することは極めて重要です。そのため、仮想待合室を活用したハイブリッドなアプローチを採用することで、エンドユーザーにスムーズな体験を提供し続けることができます。

混雑への対応(バーチャル待合室の導入)

そしてもちろん、最適な解決策について詳しく見ていくことも欠かせません。皆さんは今、 CrowdHandler のウェブサイトにアクセスしてくださっているのですから、もう半分は解決したも同然です!「バーチャル待合室」は、サイトへのアクセス数を適切に制御するのに役立ちます。100人のユーザーに対応する必要がある場合でも、10万人のユーザーに対応する必要がある場合でも、あらゆるウェブサイトに合わせて選べるさまざまな規模のプランをご用意しています。

バーチャル待合室は、トラフィックがピークに達した際にウェブサイトのダウンを防ぐための最善の方法です。 この仕組みは、ウェブサイトに流入するすべてのトラフィックをメインサーバーから分離し、ユーザーが設定した量(または当社の「オートチューン」機能による自動設定)のみを通過させることで機能します。バッファとしての役割を果たし、システムが過負荷になるのを防ぎます。

サイトにバーチャル待合室を導入することによる主なメリットには、次のようなものがあります:

  • アクセスが集中するイベント時のサイトの過負荷やクラッシュを防ぐ
  • 長い待ち時間やエラーメッセージを回避し、良好なユーザー体験を維持する
  • 過剰なリソースを割り当てる必要がなく、リスクを伴わずに需要に応じてインフラを拡張できるようになります
  • 訪問者の行動やトラフィックの傾向に関する詳細な分析を提供します

ぜひこちらをご覧ください 「料金プラン」ページ で、ユーザーの皆様に提供している豊富な機能の詳細をご確認いただくか、 30日間の無料トライアル を利用して、実際に機能を体験してみてください。