サーバーからビデオをダウンロードするiOSアプリをリリースする予定です。発売日に何百人もの人がこれを行おうとすると、私のWebサイトとサーバーが提供するサービスが明らかにダウンします。複数のサーバーでWebサイトをどのようにホストしますか?誰かが私のサイトにアクセスしようとすると、それらのリクエストはどのように利用可能なサーバーに渡されますか?AppleとGoogleはそれをどのように行うのですか?ご協力いただきありがとうございます。
サーバーからビデオをダウンロードするiOSアプリをリリースする予定です。発売日に何百人もの人がこれを行おうとすると、私のWebサイトとサーバーが提供するサービスが明らかにダウンします。複数のサーバーでWebサイトをどのようにホストしますか?誰かが私のサイトにアクセスしようとすると、それらのリクエストはどのように利用可能なサーバーに渡されますか?AppleとGoogleはそれをどのように行うのですか?ご協力いただきありがとうございます。
回答:
大手(Google、Appleなど)と同様に、ルートトラフィックを洗練された高価なハードウェアで処理しています。
より簡単な解決策は、複数のホストをセットアップし、リクエストをローテーションする単一のホストを用意することです。
ビデオをホストするために、VideoHostNという名前の5つのサーバーがあり、RoutingHostという名前で使用されているサーバーとは別の単一のサーバーがあるとします。
最初のiOSクライアントは、RoutingHostからビデオを取得するためにアドレスを要求します。RoutingHostは、VideoHost1のアドレスを返します。
2番目のiOSクライアント要求。RoutingHostはVideoHost2で応答します。
したがって、仮想の最大値であるVideoHost5に到達し、VideoHost1にリセットされるまで続けます。
単純なサーバー側のコードが必要で、次に使用するVideoHostを追跡し、アドレスを返します。
これは、ユーザーを分散させるための安価で簡単な方法です。これは、特定のVideoHostで一部のユーザーが詰まることを保証するものではありません。接続が遅い複数のユーザーがすべて同じ場所からプルする可能性があるのは偶然ですが、それは始まりです。
@PeeHaaのWikipediaの記事へのリンクに従って、負荷分散を行うことができます。これには、セットアップするためのノウハウと費用、時間が必要です。GoogleやAppleのような大企業は、自社で作成したテクノロジーを使用しており、それらを模倣しようとすると、コストがかかり、やり過ぎのソリューションになります。ロードバランシングを行う場合は、それらよりもはるかに小さいものを使用する必要があります。
または、クラウドサーバーを使用して動画やその他のコンテンツをホストすることもできます。それらはコンテンツ配信ネットワーク(CDNS)と呼ばれ、今では単純なファイルホスティングよりもはるかに多くのことができます。これらのサイトの利点は、Googleが作成したような技術を使用して負荷分散を作成し、サーバーで消費するデータまたはサイクルの正確な量に基づいてサービスを販売することです。つまり、優れた収益モデルを持っている限り、常にサービスに支払う資金があるので、コストは使用量と同じ割合で増加します。小規模ユーザー向けの優れた企業は次のとおりです。
彼らはこれら3つよりもはるかに多いです。また、CDNのもう1つの利点は、コンテンツが1つのサーバー上ではなく、世界中のネットワーク上にあることです。CDNはこれを行うため、コンテンツは常にユーザーに最も近いサーバーから取得されます。1つの場所に2台以上のサーバーを設定しても、CDNが提供できるのと同じ配信速度の利点は得られません。
ちなみに、私はこれらの会社には勤務していません。私は会社のWebサイトでのビデオホスティングにAmazonのWebサービスを使用しましたが、これは大きなメリットでした。
ec2でScalrを使用してサーバーを自動的に監視します。これはオープンソースであり、AWSサービスと非常にうまく機能します。そのため、アプリサーバーが過度のトラフィックでヒットし始めると、Scalrは自動的により多くのサーバーを起動し、負荷を分散します。また、スレーブがマスターとして起動した場合、データベースを自動的にバックアップします。そのため、アプリケーションサーバーとデータベースサーバーはすべて監視され、必要に応じてスケーリングされます。
Webサイトのスケーリングは困難でコストがかかります。Scalrはクラウドコンピューティングの力を利用して、ウェブサイトインフラストラクチャを自動的にスケーリングします。データベースをスケーリングし、アプリサーバーをスケーリングし、さらに負荷分散サーバーとキャッシュサーバーを追加して構成します。