О переносе tmradio на Amazon EC2 и обратно

2010.12.21

Тоже мне радио с самого начала работало у меня дома, в импровизированной серверной (кладовке), в качестве сервера выступал самый первый нетбук — 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 ленту или почтовую рассылку.