I’m looking into setting up Kaltura CE on a cloud server and need to reach out for some guidence as to recommended cloud server specs.
Could you give me some feedback on the best (and cheapest solution) to setup a server powerful enough to run the necessary processes to store, encode and serve videos.
For admin purposes the server would only be accessed by about 10 users to begin with, on average each admin user would upload up to 10 videos a day (each video between 100mb - 300mb in size); this would steadily increase in time, so the solution will need to be scalable.
Kaltura would need to be configured to encode each uploaded video 3 times (3 different flavours) and then the encoded video files would need to be migrated to remote storage, with the local source files being deleted.
The site where the videos can be accessed has around 10,000 users, it’s highly likely that only a fraction of the user base would be accessing videos during the course of a day, although there will be no restrictions on usage.
looking at various posts within the forum it appears that AWS EC2/S3 is the prefered choice (and this may well be the best solution to suit our needs), but there may be a better solution out there. I’m just trying to get some advice as to the best way forward with this project.
I would really appreciate any help with recomendations for cloud server requirement to achieve our goal.
First off, since you’re going to have around 10,000 users accessing your players i HIGHLY suggest you build a clustered kaltura environment and NOT a single “all-in-one” server.
So 1 suggest having a couple of front end servers, a DB + sphinx server and a batch(transcoding) server. I also suggest setting up Amazon’s Elastic Loadbalancer + Cloudfront CDN in front of your front ends.
To save on costs you can write a couple of scripts (in bash, python, whatever you know) to scale front ends and to power up batch servers only when there are videos in the batch queue waiting to be processed.
Setup of kaltura with S3 storage export and a CDN is relatively easy.
Have you decided what video delivery methods you would like to use for your media? If you’re thinking of HTTP Progressive download video playback only then the process is pretty simple as you just throw the cloudfront CDN in front of your S3 bucket and set up a delivery profile pointing to Cloudfront. If you want HDS and HLS too then it becomes a bit more complex as you need to set up something like a Wowza Streaming Engine server with Media Cache to read and chunk in real time from S3.
There are a couple of points to keep in mind in terms of keeping costs down on AWS
- Be very careful when selecting an instance type. select only as much as you need, don’t go too big as they become expensive very quick
- Autoscaling is your friend. use Autoscaling to your advantage to only spin up servers when you need them. so you only pay for what you actually really use.
We are AWS partners who have extensive knowledge with Kaltura especially in the cloud. Should you require any more assistance please don’t hesitate to contact me on email@example.com
Andrew De Bono
Lead Cloud Architect