Мы размещаем видео в amazon S3 и используем облачный сервис для их доставки. Вот цифры за последние месяцы:
Общий объем трафика от облачного интерфейса до конечного пользователя составляет 4,2 ТБ. Из них 4 ТБ находится в Европе, остальное в основном в США.
Это обошлось нам в 512 долларов. Все как положено.
Кроме того, у нас есть стоимость передачи от S3 к периферийным местоположениям примерно в 1 ТБ. = стоимость 115 $
Это 22,4% от стоимости передачи конечному пользователю и 18% от общей стоимости. Что интересно, это нормально? Я чувствую, что это многовато.
У нас есть 280 ГБ видео, хранящегося в S3, примерно на 20000 видео. Большая часть нашего трафика - это свежие видео. 100 лучших видео за этот месяц составили около 80% общего трафика.
Я просто чувствую, что, возможно, слишком много видео загружается без надобности в периферийных местоположениях и видит мало обращений. Затем они удаляются, и позже он запрашивается снова, и мы получаем еще одну загрузку на пограничный сервер.
Я не менял TTL, поэтому предполагаю, что это стандартные 24 часа. Это в любом случае ничего не изменит, если я увеличу его, поскольку cloudfront не будет загружать файл снова, если он не изменился (они этого не делают).
Проблема в том, что файл выходит из кеша.
Я бы сразу начал показывать менее популярные видео с S3. YouTube не начинает показ видео со своей сети CDN, пока видео не наберет 300 просмотров. Я бы отслеживал время последних x просмотров видео, сохраняя список в чем-то вроде Redis, и, если последний x просмотр был в пределах определенного временного интервала, только затем показывать видео из CloudFront.