Amazon S3 vs GAE Blobstore
Несколько лет я использовал Amazon S3 для хранения файлов. Удобный сервис: быстрый, дешёвый, с хорошим API. Был доволен до тех пор, пока недавно некто не скачал 30-мегабайтный файл почти 25 тысяч раз. Причины мне неизвестны, но сам факт такой накрутки заставил задуматься, и не меня одного.
Если очень нужен именно S3, решить эту проблему можно с помощью дополнительного кэширующего прокси-сервера. Например, можно настроить Nginx, чтобы он прозрачно ходил на S3 за файлами и хранил их в своём кэше какое-то время. Для этого подошёл бы любой VPS с безлимитным трафиком и большим диском для кэша. Самое нормальное, что я нашёл — $20 в месяц, и туда можно было бы вынести всякие мелкие штуки с домашнего сервера. Но это — не самое интересное решение.
Оказалось, что с момента, когда я этим в последний раз интересовался, в Google App Engine Blobstore поднялось ограничение на размер хранимых файлов с 50Мб до 2Гб, чего уже достаточно для моих нужд: самое большое, что я храню — это ZIP-архивы с альбомами в формате FLAC (Free Music Hub), обычно это несколько сотен мегабайтов. Кроме того, в GAE скачивание файлов обслуживается скриптами, можно на лету обновлять количество скачиваний, для чего в S3 нужно было возиться с логами, что довольно сложно и каждый раз приходилось вникать в процесс их настройки. Нет встроенного torrent-трекера, но уверен, что при желании, написать его на питоне большого труда не составит.
Самое удивительное в том, что GAE оказался не только удобнее, но и дешевле. Хранение 1Гб стоит одинаково ($0.005 в день), зато 1Гб входящего трафика стоит на 1-5 центов дешевле, а исходящего — на 3 цента, фиксированно.
Ну и самый главный плюс в том, что в GAE свой биллинг для каждого приложения, а в S3 — для аккаунта. То есть в конце месяца приходил счёт с примитивной детализацией: столько-то за хранение, столько-то за трафик, а дальше сам разбирайся. GAE выписывает и сохраняет развёрнутый счёт для каждого приложения за каждый день, и есть квота: не больше $2 в день (по умолчанию),
Переходом доволен. Буду использовать GAE для файлов с публичным доступом, S3 оставлю для хранения личных данных, вроде бэкапов.
Следить за развитием событий можно через RSS ленту или почтовую рассылку.