Ich kann nicht für Windows-Instanzen sprechen, aber ich gehe davon aus, dass ihre Basismerkmale denen von Linux-Instanzen ziemlich ähnlich sind.
Ihre Schätzung für die Bandbreitennutzung liegt bei 100 gleichzeitigen Video-Downloads (Ich bin mir nicht sicher, ob Sie die Datei herunterladen oder das Video streamen möchten - ich gehe davon aus, dass letztere verwendet werden). Wenn wir eine Stream-Rate von 512 kbit / s annehmen, benötigen Sie ungefähr 51 Mbit / s oder 6,5 Mbit / s.
EC2-Instanzen unterscheiden sich in ihrer E / A-Leistung (einschließlich Bandbreite). Es gibt 3 Ebenen der E / A-Leistung: niedrig, mittel und hoch. Beachten Sie jedoch, dass die Festplatten-E / A (dh von EBS-Volumes) auch bandbreitenabhängig ist. Die Bandbreite kann nur innerhalb des EC2-Netzwerks wirklich berücksichtigt werden (da sie über das Internet vollständig variabel ist).
Einige typische Zahlen zur Quantifizierung von "niedrig", "mittel" und "hoch" (verschiedene Quellen zitieren unterschiedliche Zahlen für theoretische Werte, sodass sie möglicherweise nicht vollständig korrekt sind).
Hoch:
Theoretisch: 1 Gbit / s = 125 MB / s; Realistisch ( Quelle ): 750 Mbit / s = 95 Mbit / s
Moderat:
Theoretisch: 250 Mbit / s; Realistisch ( Quelle, S. 57 ): 80 Mbit / s = 10 Mbit / s
Niedrig:
Theoretisch: 100 Mbit / s; Realistisch (aus meinen eigenen Tests): 10-15Mbps = 1-2MB / s
(Tatsächlich gibt es auch einen sehr hohen Pegel (theoretisch 10 Gbit / s), der jedoch nur für Cluster-Compute-Instanzen gilt.)
Ein weiterer Punkt ist der Variationsgrad. Bei kleineren Instanzen ist die Leistung variabler, da die physischen Komponenten von mehreren virtuellen Maschinen gemeinsam genutzt werden. Unabhängig davon können Sie mit einer Leistungsabweichung von +/- 20% rechnen (Quellen: 1 , 2 , 3 ). In Ihrem Fall (gemäß den Annahmen / Berechnungen oben) benötigen Sie möglicherweise eine Spitzenbandbreite von 13 MB / s (doppelte 6,5 MB / s, da die Festplatten-E / A ebenfalls netzwerkbeschränkt sind). Wenn Sie Inhalte mit geringerer Bandbreite übertragen, sollten Sie in der Lage sein, eine Instanz mit „mäßiger“ E / A-Leistung zu verwenden (siehe Seite mit den Instanztypen)), wenn Ihre Berechnungen zu einem höheren Bandbreitenbedarf führen, benötigen Sie eine Instanz mit 'hoher' E / A-Leistung. Das einfache Streamen der Daten sollte nicht an die CPU oder den Speicher gebunden sein, aber das Aufrechterhalten von 100 gleichzeitigen Verbindungen erfordert wahrscheinlich mindestens eine mittelgroße Instanz.
Ich würde empfehlen, die Server, die Sie starten, einem Benchmarking zu unterziehen, um festzustellen, ob sie Ihren (berechneten) Anforderungen entsprechen. Starten Sie zwei Instanzen (desselben Typs) und führen Sie sie iperf
jeweils mit den privaten IP-Adressen der Instanzen aus. Sie müssen den Port 5001 in Ihrer Sicherheitsgruppe öffnen, wenn Sie ihn mit den Standardeinstellungen ausführen. Darüber hinaus zeigen die meisten Tests außerhalb des EC2-Netzwerks Ergebnisse zwischen 80 und 130 Mbit / s (große Instanzen) - obwohl solche Zahlen nicht unbedingt aussagekräftig sind.
Ein CDN ist besser für Ihre Anforderungen geeignet, wenn Ihr Setup dies zulässt. S3 hat anscheinend ein Limit von 50 MB / s für die Bandbreite (zumindest von einer einzelnen Instanz) gemäß diesem Artikel , aber das ist höher als das, was Sie benötigen sollten (S3 unterstützt kein Streaming). Cloudfront ist besser für Ihre Aufgabe geeignet (da es als CDN konzipiert ist) und unterstützt standardmäßig 1000 Mbit / s = 125 Mbit / s ( Quelle ), wobei auf Anfrage eine höhere Bandbreite verfügbar ist und auch Inhalte gestreamt werden können.