We are all living in Coronavirus time and remote communication tools become the everyday necessity. Which video conferencing tool is the most popular in the USA market? Yes, this is Zoom.
Let’s try to find out what are the infrastructure costs for Zoom to run all those meetings online.
By April 2020, Zoom stated they have 300 million daily meeting participants. What would be the average meeting duration? Statistics says it’s between 31 and 60 minutes.. Let’s take the number in between, ie. 45 minutes.
Ok, we multiply 45 minutes by 300 million daily participants and get 225 million human hours spent per day.
When you chat over Zoom in a group call, on average you upload 675 MB/hour (Megabytes per hour) of data. Meaning Zoom servers receive 675 MB/hour x 225 million of hours = 141 PetaBytes per day. And at the same time, you receive video from other participants and it looks like Zoom tuned their system in a way that you receive around the same 675 MB/hour.
Good, so in total Zoom server receives 141 Petabytes of data, transforms (transcodes) video to a smaller resolution, and sends further to the viewers, also 141 Petabytes per day.
It’s worth mentioning the video transcoding process. Imagine Zoom receives a 720p (video resolution) video from your computer, but it can’t send the same resolution video to other participants. That would be overkill because other participants usually watch your video in a small thumbnail. That’s why Zoom reduces your video resolution and then sends it further.
I was thinking about how to find the approximate CPU load for the video transcoding process. And I think I found the answer by looking at another open-source video conferencing system called Jitsi. They have a free web application called Jitsi Meet, very similar to Zoom. Jitsi Meet works in the same way and transcodes video on the server. Also, Jitsi engineers have done the performance testing of their product and found out that quad-core Intel ® Xeon® E5-1620 v2 @ 3.70GHz CPU can handle well 33 users in a video conferencing room while being busy only by 20% of its capacity.
Now I assume that Zoom transcodes video on their servers in a similar way how Jitsi does. Meaning the average video transcoding performance would be around the same.
Ok, good, so, Zoom needs to transcode the 225 million video hours per day. Now let’s assume Zoom is running all of that inside Amazon AWS. Actually, it does run infrastructure on Amazon, Oracle, and Microsoft cloud. But let’s make calculations for Amazon only, since other cloud providers would have very similar pricing. AWS has EC instances, and we need CPU optimized instances with 8 threads. Amazon says they use 2nd generation of Xeon processors with a basic frequency of 3.6 GHz. c5.2xlarge EC instance is around the same as Xeon E5-1620 v2 we saw above working with Jitsi. It has the same amount of CPU cores/threads and frequency. The price for the c5.2xlarge is $0.34 per hour.
As we saw above with Jitsi, they were running 33 users in one room with a 20% CPU load. Now we assume that Zoom can run 5 times more users (100% CPU load) on one server. Meaning one server can handle roughly 165 users. Ok, then we can find the number of server hours we need to handle 225 million video hours per day. We divide 225 million hours by 165 users per server and we get 1,363,636 server hours per day. Quite a lot, heh?
In order to get the price, we multiply 1,363,636 server hours by $0.34 and get $463,636 per day only for servers 🙂 But for sure Zoom doesn’t pay the whole price. Amazon AWS has huge discounts if you reserve instances. I would say that they have around an 80% discount. Meaning we can approximate Zoom spends per day on servers infrastructure $92K.
Now let’s quickly calculate the video traffic. 141 Petabytes inbound traffic and the same 141 Petabytes outbound traffic. That’s a huge number. Usually, cloud providers allow sending free inbound traffic and charge you for the outbound traffic. Pricing for regular users starts from $0.09 per GB, going down significantly with the volume. Also, we know that CDN’s charge Top customers (like Netflix) somewhere around $0.001 per GB. Obviously Zoom is a VIP customer, so let’s take $0.001 per GB pricing and multiply by 141 Petabytes = $147K for the Data Traffic per day.
The total for Zoom per day would be Servers cost + Data Traffic = $92K + $147K = $239K per day. And per month $239K x 22 (working days) = $5.2 millions per month.
Today we have approximated the servers infrastructure costs for Zoom per month and that’s around $5.2 million dollars per month.
If you would like to build custom video conferencing or video streaming platform, don’t hesitate to contact me here at Trembit: firstname.lastname@example.org