О переносе tmradio на Amazon EC2 и обратно
Тоже мне радио с самого начала работало у меня дома, в импровизированной серверной (кладовке), в качестве сервера выступал самый первый нетбук — Asus EEE PC 701 со флэшкой на 32ГБ. Однако на время переезда на новую квартиру и обустройства новой домашней серверной его пришлось вынести на внешний сервер, чтобы не выключать насовсем на несколько дней. Эту необходимость я совместил с давним желанием испытать Amazon EC2 в действии, теперь хочу поделиться наблюдениями.
Во-первых, сервер в Амазоне заводится за несколько минут. Первые полчаса ушли на освоение терминологии и интерфейса и поиск в списке нужного дистрибутива (их там тысячи, альфы-беты-гаммы всех известных Линуксов). После выбора образа системы нужно включить машину и она готова к использованию. Остаётся сгенерировать ключ для подключения по SSH и прописать свой IP-адрес в фаерволе.
Первое замешательство возникло при выборе типа сервера: обычный или недавно появившийся «микро», предназначенный для не очень сложных задач? Обычный стоит $0.085 за час астрономического времени, микро — $0.02. Оказалось, микро прекрасно справляется со стримингом в режиме постоянного транскодирования потока в MP3. Думаю, на фоне легко можно было бы поднять какой-нибудь nginx для обслуживания статических сайтов. Однако производительность легко переоценить, что я и сделал, запустив по привычке установку обновлений, отчего поток довольно долго заикался.
Всего радио в Амазоне проработало 199 часов, что обошлось в $5.04, из которых $3.98 — за время работы сервера, $0.42 — за использование 4.173ГБ дисков для хранения музыки, $0.63 за 6+ миллионов операций дискового ввода-вывода и $0.01 за ещё какую-то фигню. Затраты на ввод-вывод можно было бы легко оптимизировать, научив ices читать проигрываемые файлы в память целиком, что сэкономило бы целый доллар в месяц.
Не обошлось при переносе и без технических проблем. Во-первых, почему-то там ices отказался проигрывать OGG/Vorbis: жаловался на невозможность декодировать файлы, чего я объяснить не могу до сих пор. Во-вторых, декодер MP3 по нескольку раз в день жаловался, что не может что-то перемотать, отчего поток превращался в тихое бульканье и его приходилось перезапускать. Я помню, что такая проблема возникала у меня и локально, но я как-то её решил, однако решение я не задокументировал, а на повторный его поиск за эти 200 часов я времени не нашёл. Это натолкнуло меня на мысль о ведении локального блога внутри проекта (рядом с ChangeLog и похожими файлами).
В целом получается, что микро сервер обходится в $15 в месяц. Отдельно, если я правильно понимаю, считается трафик: $0.15 за гигабайт, что при 128Кбит/с потоке составляет примерно 40ГБ при круглосуточном прослушивании, это примерно $6 долларов. В таком режиме радио слушаю, наверное, я один, однако даже в этом случае получается $21 в месяц, что больше, чем я плачу за 25Мбит/с интернет.
Посмотрел на Primcast, который использует Адам для No Agenda. Там есть тарифы поголовные и побайтные. За голову при 128Кбит/с платить надо $1.50 в месяц, по трафику — минимум 50ГБ, $0.35/ГБ. Есть у них калькулятор, по которому выходит, что 10 человек, слушающие в среднем по 8 часов в день, создают за месяц 131.84ГБ трафика. Захостить радио для 10 слушателей у них обошлось бы в $15-$20 в месяц ($75 в Амазоне). Правда я не понял, можно ли там наворотить своего диджея, мне кажется нет.
Вывод: дешевле всего держать радио дома. 25Мбит хватит примерно на 200 соединений, 3 рубля с человека в месяц. При таком домашнем интернете не имеет смысла использовать внешний хостинг. При этом возможность за 5 минут поднять сервер для любых нужд подтверждена и радует, компании Amazon спасибо.
Следить за развитием событий можно через RSS ленту или почтовую рассылку.