I am in the process of planing the backend for our application.
We want users to be able to use our application to start an arbitrary stream (only audio for now) and publish it to an arbitrary audience. There may be 10 listeners then possibly grow to thousands in a short amount of time (in a matter of minutes, worst case). We will likely know ahead of time if the audience will be large. But not always.
As far as scaling, I see two options if we use Wowza:
(1) Use a CDN: From the start, I think we will save a lot of time using a CDN. Akamai is a black box of expense and commitment and Amazon Cloudfront seems straightforward and we can predict costs. The problem is...Cloudfront doesn't seem to be supported by Wowza. Granted, Wowza makes money the more severs that are online....I wonder if forking the load to a CDN isn't in their interests...but then again, they do support other CDNs. I digress.
QUESTION 1: Is cloudfront completely off the table having wowza as an origin server for RTMP? Is this true for HTTPLS (Cupertino) streams even though they are pure HTTP delivery? I don't want to have to use Adobe Media Server, but I might have to :-(
(2) Our other option is to keep the application in EC2 and spin up/down wowza orgin/edge servers based on demand. This could be great for trickle demand, but does the audience have to wait for a few minutes while the boxes are booting up? I think the Wowza origin/edge system would work well if we had a single event stream, but does anyone have experience or advice implementing this for an arbitrary number of streams? Should some backend script be written to handle it all?
QUESTION 2: Does the wowza-based origin/edge addon work quickly for an arbitrary number of streams going to an arbitrary audience?
QUESTION 3: On the topic of arbitrary streams, is there a simpler token-based or large random string method for protecting a stream? I was thinking that a stream is given a 40 character random ID. The publisher then attempts to connect to an origin via rtmp://something.com/live/[BIG-STRING]. Then the wowza origin server would check that ID is valid then allow the publish or listen connection to go through. Maybe thats for a another forum topic.
Thanks for reading and thanks for your help