AWS、帯域幅およびコンテンツ配信


31

私の質問は、仮想マシンと、インターネットへのサーバー接続を介したコンテンツの配信についてです。

Ec2 Windowsインスタンスがあり、そのネットワーク接続は100 Mbpsのようです

そのEC2インスタンスからコンテンツを配信する場合、それがボトルネックになる可能性はありますか?

s3にはどのような違いがありますか?

注:s3とそれらのCDNが静的コンテンツに適していることは知っていますが、現時点ではこの状況を調査する必要があります。HTMLページはAJAXを介してサーバーサイドページにアクセスする必要がありますが、現時点ではコンテンツとサーバーをまったく同じドメインに配置する必要があるため、これに対する回避策はないため、S3を使用することはできません。

必要な帯域幅:いつでも最大100人のユーザーが動画をダウンロードできるかどうかはわかりませんが、おそらくこれ以上はありません。ビデオはそれぞれ最大5MBまで使用できますが、最大20MBまで表示されます。


「JS経由でプロキシにアクセスするにはHTMLが必要です」...それはどういう意味ですか?
エリックハモンド

ピーク時にどのくらいの帯域幅を使用する必要がありますか?
エリックハモンド

@EricHammond私はいくつかの情報で質問を更新しました
-Keeno

この時点で特定の潜在的なボトルネックに過度に集中する特別な理由があるように思えます。スケーラビリティに関する一般的なベストプラクティスを使用してサービスを構築し、発生したパフォーマンスの問題を調査して解決します。CDNを介して動画を配信します。
エリックハモンド

1
Keeno:私はJSの同じ起源ポリシーに精通していますが、それが異なるドメイン(CDN)でビデオコンテンツを提供することを妨げる理由がまだわかりません。これは一般的な方法です。
エリックハモンド

回答:


60

Windowsインスタンスについて話すことはできませんが、それらの基本特性はLinuxインスタンスにかなり似ていると思います。

帯域幅使用量の推定値は、ビデオの同時ダウンロード100件です(ファイルをダウンロードするのか、ビデオをストリーミングするのかわからない-後者を想定します)。512kbpsのストリームレートを使用する場合、約51Mbit / sまたは6.5MB / sが必要です。

EC2インスタンスは、I / Oパフォーマンス(帯域幅を含む)が異なります。I / Oパフォーマンスには、低、中、高の3つのレベルがあります。ただし、ディスクI / O(つまりEBSボリュームから)も帯域幅に依存することに注意してください。本当に考慮できるのはEC2ネットワーク内の帯域幅のみです(インターネット上では完全に可変であるため)。

「低」、「中」、「高」を定量化するためのいくつかの典型的な数値(異なるソースは理論値に異なる数値を引用しているため、完全に正確ではない場合があります)。

高: 理論:1Gbps = 125MB / s; 現実的(ソース):750Mbps = 95MB / s

中程度: 理論的:250Mbps; 現実的(ソース、p57):80Mbps = 10MB / s

低: 理論的:100Mbps; 現実的(私自身のテストから):10-15Mbps = 1-2MB / s

(実際には「非常に高い」レベル(理論的には10Gbps)もありますが、これはクラスターコンピューティングインスタンスのみに適用されます)。

さらに言及する点は、ばらつきの程度です。小規模なインスタンスでは、物理コンポーネントがより多くの仮想マシン間で共有されるため、パフォーマンスのばらつきが大きくなります。かかわらず、あなたのパフォーマンスで約+/- 20%の変動(:ソースを期待することができます123)。あなたの場合(上の前提条件/計算による)、13MB / sのピーク帯域幅が必要になる場合があります(ディスクI / Oもネットワークに制限があるため、6.5MBpsの倍になります)。低帯域幅のコンテンツを転送する場合は、「適度な」I / Oパフォーマンスのインスタンスを使用できるはずです(インスタンスタイプのページをご覧ください))、計算の結果、帯域幅の要件が高くなる場合、「高い」I / Oパフォーマンスのインスタンスが必要になります。単純にデータをストリーミングすることはCPUまたはメモリに制限されるべきではありませんが、100の同時接続を維持するには少なくとも中規模のインスタンスが必要です-帯域幅が懸念される場合、上記に基づいて、大きなインスタンスがより安全な賭けになります)。

起動したサーバーのベンチマークを実行して、(計算された)ニーズを満たすかどうかを確認することをお勧めします。2つのインスタンス(同じタイプ)を起動しiperf、それぞれインスタンスのプライベートIPアドレスを使用して実行します-デフォルト設定で実行する場合は、セキュリティグループでポート5001を開く必要があります)。さらに、EC2ネットワーク外のほとんどのテストでは、80〜130Mbps(大規模インスタンス)の結果が示されていますが、そのような数値は必ずしも意味がありません。

CDNは、セットアップで許可されている場合、ニーズにより適しています。この記事では、S3の帯域幅(少なくとも1つのインスタンスから)に約50MB / sの制限があるように見えますが、それは必要なものよりも高い(S3はストリーミングをサポートしていません)。Cloudfrontは(CDNとして設計されているため)タスクにより適し、デフォルトで1000Mbps = 125MB / s(ソース)をサポートし、要求に応じてより高い帯域幅を利用でき、コンテンツもストリーミングできます)


「理論上の」Mbps値はどこで取得しますか?これらの数値の公式または非公式の資料は見つかりません。
dtheodor

4
これらの数字は今ではかなり異なっている可能性が高い(そして現時点ではそれらのソースを追跡することはできないようだ)。4年で多くのことが変わりました。EC2にはクラスターグループ内に10Gbpsの相互接続があることが知られています。AWSは(2007年)250 Mbpsの専用ローカル帯域幅の数字を引用していました。現在、ネットワーク帯域幅はインスタンス間で共有され、インスタンスタイプに基づいて優先順位が割り当てられています(そして、おそらくEBS最適化などの要因もあります)。少なくとも部分的には、インスタンスサイズによって、リソースを共有する他のインスタンスの数が決まります。ネットワークが使用されていない場合、インスタンスはより大きなシェアを取得します。
cyberx86

申し訳ありませんが、これは話題外ですが、@ cyberx86に連絡する方法はわかりませんが、ウェブサイトのSSL証明書が1週間以上前に期限切れになったことをお知らせします。ここでコメントすることをおologiesび申し上げますが、メールアドレスが見つかりません。
ケビンリダ

1
@KevinLydaありがとう。証明書の有効期限が切れていることは知っていましたが、そのサイトはしばらく更新されていないため、LetsEncryptを使用して自動更新に移行する良い機会でした。
cyberx86

うん、自分で使っています。非常に簡単にスクリプトを作成でき(特に非公式クライアントの場合)、バックグラウンドで作業できます。
ケビンリダ

0

数は時間とともに変化し、さまざまなインスタンスタイプの数が増えるにつれて変化するようです。しかし、多くの人々がベンチマークを投稿しています。グーグルで運がありました[instance category] ec2 network benchmark

たとえば、m4.xlargeインスタンスの帯域幅を知りたいので、検索しましたec2 m4 network benchmark。このテスト結果は、Washington Postエンジニアリングブログから見つけました。

Type       Cost    Bandwidth Bandwidth Cost (1Gb/s) Bandwidth Cost EBS optimized
...
m4.xlarge  $0.252  791Mb/s   $0.320                 $0.320
...
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.