Is there any way to determine exactly what size instance is needed? Any metrics or gauge?
I’m trying to stream HD video (H.264) for a site and would like it to sample down if the clients connection is to slow. I’m guessing for each video I have I’ll need both an HD version and a low-bandwidth version (Not sure what bandwidth settings I need to set them up with). I’m then assuming I’ll have JW Player figure out the bandwidth and open the correct file. Does this approach sound correct, or is there a better way to do this, perhaps even by using 1 file?
Any help in determining the size, as well as how to approach this is greatly appreciated.
The numbers posted is the estimated total throughput for these instance types. A single stream should be a small fraction of that. For example, 500kbs, in which case you could have 300 clients subscribing concurrently on a small instance.
You can encode to an optimal bitrate or you can encode 2 or more versions for a range of bitrates, then use bandwidth checking or a multi-bitrate to deliver appropriately. Optimal is about 400-600kbs. You can get a decent h.264 stream in a smaller frame below 200kbs. A higher quality stream might be 800 or 900 kbs. Beyond that there are diminishing returns in resolution and increased chance of buffering in the client. You have to be sure the client can handle the higher bitrate without buffering or it is not worth it.
No, obviously an m1-xlarge with 350mbs bandwidth can’t handle that. You can use a subscription license to run a Cluster GPU Quadruple Extra Large Instance, specs at the bottom of this page:
Bandwidth is the limiting factor for these instance types. The m1-small gets about 150mbs, so if you have a 500kbs live stream, for example, that instance can stream to about 300 clients. The xlarge will handle about 700.
The usual solution is a cluster of m1-small instances (best value per MBS) in a liverepeater (origin/edge) system.
The best bet to handle that many users is with an edge/origin repeater setup - the most cost-effective way to scale Wowza on EC2 is edge/origin on small instances (4x small can handle 2.5-3x the traffic of a large for the same money).
Also bear in mind that by default, AWS limits you to 20 active instances. However, that limit can be increased simply by asking them to do so and detailing your use case.
As far as sizing goes we suggest the following total outgoing bitrates for each instance size:
small: 150Mbps
large: 250Mbps
xlarge: 350Mbps
Charlie the bitrates recommended above are what the videos should be encoded in correct? These are the highest they should go I am assuming. I have a pay per view/purchase video site. I would like to accomodate HD quality videos, but also give low bandwidth users a decent experience.
I would like to identify the highest I should go (HD video), and also what would be good enough for low bandwidth users. I plan on using the small instance for this currently.
Did this ever get answered? We’re beta-testing Wowza 3 p4 running on Amazon AWS. If we’re pushing a 2Mbps HD stream in, and have over a thousand users who want to watch in HD (and a few thousand in other modes like Low/Mobile), in my mind that’s a whole lot more data than was mentioned in
small: 150Mbps
large: 250Mbps
xlarge: 350Mbps
Can the XL handle this kind of bandwidth? Can Wowza handle this kind of bandwidth?
No, obviously an m1-xlarge with 350mbs bandwidth can’t handle that. You can use a subscription license to run a Cluster GPU Quadruple Extra Large Instance, specs at the bottom of this page:
Is there a calculator or “estimator” somewhere that would allow me to enter the number of users of different kinds of bandwidth and tell me what size EC2 server I’d need for Wowza3 to support a broadcast with those numbers?
We build Social Media type websites for a living, and they host hundreds of thousands of users. We’ll be hosting broadcasts where 10,000 attendees aren’t out of the question, although most of them would be watching on Medium/Low bandwidth devices (mobile, iPad) but a “significant” number would likely watch in HD.
I need to build a cost estimation spreadsheet and have the bandwidth part all figured out, want to add in the cost of the servers (and make sure the servers can actually handle that kind of load). I’m fairly sure that the answer is going to be that we’ll have to create a load-balanced cluster, but I’d need to be able to estimate that as well.
Bandwidth is the limiting factor for these instance types. The m1-small gets about 150mbs, so if you have a 500kbs live stream, for example, that instance can stream to about 300 clients. The xlarge will handle about 700.
<<<<>>>>
Richard,
Thanks! I’m getting closer to understanding how to build a “calculator” to estimate our costs based on your reply. You mentioned that an m1-small gets about 150Mbps and an XL can handle about 700Mbps (even though the original post at the top of this thread said small: 150Mbps; large: 250Mbps; xlarge: 350Mbps.)
So… for the scenarios below, I’m guessing I can get by with an M1.small for scenario 1, m1.xlarge for scenario 2 and 3, then start building clusters to handle the rest.
Do you have similar “handle about nnn Mbps” values for the XXL, XXXXL? And based on what I’m reading in the links you sent, once I get to the Double or Quad XL, I’m better off clustering m1.small’s. Right?
[B][U]Scenario 1 : 100 users[/U][/B] watching a HD upstream video
(split equally between four different quality streams)
25 watching HD (720p @ 1.3Mbs) 32.5Mbps
25 watching High Resolution (360p @ 850Kbps) 21.3Mbps
25 watching Medium Resolution (240p @ 350Kbps) 8.8Mbps
25 watching Low Resolution / Mobile (160p @ 200Kbps) 5.0Mbps
--------------------
Total: 67.5Mbps
[B][U]Scenario 2 : 500 users[/U][/B]
125 watching HD (720p @ 1.3Mbs) 162.5Mbps
125 watching High Resolution (360p @ 850Kbps) 106.3Mbps
125 watching Medium Resolution (240p @ 350Kbps) 43.8Mbps
125 watching Low Resolution / Mobile (160p @ 200Kbps) 25.0Mbps
--------------------
Total: 337.5Mbps
[B][U]Scenario 3 : 1000 users[/U][/B] 675.0Mbps
[B][U]Scenario 4 : 5000 users[/U][/B] 3.4Gbps
[B][U]Scenario 5 : 10,000 users[/U][/B] 6.8Gbps
[B][U]Scenario 6 : 50,000 users [/U][/B] 33.8Gbps
And yes, we do forsee the possibility of exceeding scenario #6 numbers within a year, so I’ll have to plan for that as well.
Also bear in mind that by default, AWS limits you to 20 active instances. However, that limit can be increased simply by asking them to do so and detailing your use case.