Amazon S3 vs GAE Blobstore

2010.10.15

Несколько лет я использовал 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 ленту или почтовую рассылку.