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