主要なイベントや宣伝キャンペーンを計画している場合は、この記事の情報を使用して、Webサイトが異常に高いトラフィックを正常に処理できるようにすることができます。
Rackspaceは、トラフィックの多いイベントの前に通知するManagedOperationsサービスレベルのお客様に追加のサービスレベル保証を提供します。この保証は、Managed Operationsserviceレベルのお客様のみが利用でき、advancednoticeやコードのフリーズなどのいくつかの制限があります。この高度なサービスレベル契約(SLA)に関心がある場合は、アカウントマネージャーに連絡してください。
高トラフィック期間中に発生する可能性のある問題と、考えられる解決策に注意してください
トラフィックの多い時間帯には、次の問題が発生する可能性があります。
- Web01へのトラフィックの過飽和 他のWebサーバーから
- リソースの枯渇と競合
- ダウンタイムが長くなる強制的な再起動チェック
イベントの認知度を高め、重要な事実を事前に文書化します
次の情報を文書化します。
- イベントの日時
- 連絡先
- 構成の概要
- 戦術計画
- バックアップとドメイン監視のプロアクティブな構成
- クラウドロードバランサーやデータベースの追加などの準備
1台のサーバーから複数のサーバーに拡張
最も成功しているトラフィックの多いイベントのお客様は、アプリケーションを単一のサーバーから複数のサーバーに拡張します。このセクションでは、スケールアップのヒントを紹介します。
次の手順を使用して、ウェブとアプリの階層でスケーリングします。
- シード構成、スケール対応クラウドアプリケーションのアーキテクチャに関する推奨事項について学びます。
- シード構成を配置したら、追加のアプリとウェブサーバーを使用して水平方向のスケーリングを開始します。
次の手順を使用して、データ層でスケーリングします。
- データベースをスケーリングしてレプリケーションを追加します。データベースは、アプリケーションにとって重大なボトルネックになる可能性があります。ほとんどのトランザクションはデータベースを通過する必要があるため、この層を垂直方向と水平方向の両方にスケーリングすることを検討してください。
- プライマリサーバーにコンピューティングリソースを追加すると、より多くのデータをより高速に処理できます。レプリケーションを追加すると、アプリケーションに冗長性がもたらされ、レプリカントを読み取り専用バージョンとして使用して、データアクセスを高速化できます。
- Rackspace Cloud Databasesは、スケーリングとレプリケーションの両方に役立ちます。
- クエリキャッシュレイヤーを使用してサイトを高速化し、拡張性を向上させることを検討してください。
- 徹底的にテストします。
常にテストをお勧めしますが、トラフィックの多いイベントにスケールアップするにつれて、テストがより重要になります。このセクションでは、イベント前の負荷テストと最適化に関する推奨事項について説明します。トラフィックの多いイベントの準備に関するその他の推奨事項については、アカウントマネージャーまたはラックスペースサポートにお問い合わせください。
次のタスクを実行して、アプリケーションの機能を大規模にテストします。
- すべてが機能することを確認します。ロードバランサーから除外されたWebノード、または誤って構成されたSecure Sockets Layer(SSL)証明書は、アプリケーション全体を破棄する可能性があります。
- アプリケーションサーバーからそのプロセスを削除するためにトランザクションメールを送信するようにMailgun®を構成していることを確認してください。
- 最初にアプリケーションレベルですべてを修正してから、パフォーマンスをテストします。
次のタスクを実行して、アプリケーションのパフォーマンスを大規模にテストします。
- Load Impact、Loader.io、Apica®LoadTest®、または別の負荷テストサービスを使用して、ベースライン負荷テストを実行します。この手順は、追加のトラフィックがアプリケーションに与える影響を見積もるのに役立ちます。
- テスト結果を調べて、構成に適切な変更を加えます(Apache®MaxClientsの調整など)。
- 構成を調整した後、追加の負荷テストを実行して、サイトまたはアプリケーションが処理できるトラフィック量を推定します。
- GETテストとPOSTテストを実施します。アプリケーションがトランザクション型の場合は、ページの読み込みに加えて、トランザクションの負荷テストを必ず行ってください。
次の手順を使用して、Webサイトまたはアプリケーションを最適化します。
- Rackspace Content Delivery Network(CDN)から静的ファイルを提供して、パフォーマンスと読み込み速度を向上させます。
- 構成に1つ以上のキャッシュレイヤーを導入します。
- Cloudflare®やIncapsula®などのサードパーティツールを使用して、ドメインネームシステム(DNS)レベルでWebコンテンツをキャッシュおよび最適化します。
今後のイベントについて知ったら、すぐにRackspaceに連絡することをお勧めします。この通知により、お客様と協力して、発生する可能性のある問題に対処するための計画を立てることができます。
次の情報を含めてください:
- イベントのスケジュール時
- 主な連絡先
- その人と連絡を取る方法
問題が発生した場合は、Rackspaceサポート(1 800 961 4454)にすぐに電話してください。
このセクションでは、トラフィックの多いイベントの後に実行する必要のある手順について説明します。
スケールアップについて前述のガイドに従った場合は、逆にスケールダウンすることができます。トラフィックを処理するためにアプリのスケールを低くしすぎないように、スケールダウンをずらすことをお勧めします。
ロードバランサーの背後にあるサーバーから、一度に1サーバーずつ接続を排出することから始めます。接続がなくなったら、そのノードを削除してサーバーを削除できます。トラフィックが維持されていることを確認し、アーキテクチャが現在のトラフィック需要を満たすまでこれらの手順を繰り返します。
問題が発生した場合は、Rackspaceサポートに連絡してください。
また、時間をかけてイベント中にアプリケーションがどのように実行されたかを確認し、必要に応じて変更を加えることをお勧めします。予期しないボトルネックや制限を見つけた場合は、それらを文書化して修正してください。これらの問題は、アプリケーション自体に関連している場合もあれば、適切な関係者にサポートの必要性を時間内にエスカレートする問題を示している場合もあります。問題を特定、文書化、修正することで、次にトラフィックの多いイベントが発生したときに役立ちます。