Блог Олега Сердюкова

Перенос блога на Amazon S3

Сервера на Digital Ocean стоят дёшево при качестве, которое меня более, чем устраивает. Я лично держал постоянно один сервер и несколько подымал по необходимости, и кроме того перенёс на DO сервера нескольких клиентов и друзей. Жалоб я от них не слыхал (разве что на невозможность простого даунгрейда дроплета, рутовая файловая система не уменьшается по желанию, лишь увеличивается).

На моём основном сервере на DO крутился блог на nginx, работал OpenVPN для небольшой сети микрокомпьютеров, живущих на динамических адресах, API на express.js и MongoDB и ещё несколько мелких сервисов. Всё это на 512 MB RAM с небольшими ухищрениями для Mongo, в котором было немного данных. И ещё я привычно заходил на сервер для разных проверок.

Но вот в рамках эксперимента “Домашний Continuous Delivery” организовал публикацию лога по rsync, а потом решил попробовать Travis, прочитав серию статей Дениса Евсюкова “Travis CI для автоматизации сборки статичного сайта”, “Travis CI: изменение таймзоны”, “Amazon S3: кеширование страниц веб-сайта” и “Упрощение публикации сайта в Amazon S3”.

Настроил, посмотрел, и увидел, что это хорошо. Расписывать детали не буду, Денис всё прекрасно описал. При желании просто посмотрите код сайта на GitHub. Пара особенностей:

  • AWS Credentials для S3 (и только для S3 с ограничением в AWS Policy) прописаны как переменные окружения в панели travis-ci.org, через шифрованные переменные в travis.yml это сделать не получилось
  • раз travis-ci.org, а не com, что код сайта в публичном репозитории с ограничением использования только лицензией (пару файлов хотелось бы не светить, но ничего секретного там нет)
  • публикация сайта проводится не штатным S3, а gem s3_website, потому в первом варианте сайт заливался минут 20, а во втором — с десяток секунд
  • в Route53 нормально поддерживаются имена вида ctrld.me, не пришлось переходить на сильно нелюбимый www.
  • условных редиректов по user agent нет, поэтому от сервиса feed.press пришлось отказаться

Теперь сделал коммит — получил сайт. Сделал я это месяца полтора назад, и хоть написал всего одну заметку, но вроде бы всё работает. А раз работает, то сервера на DO постоянно мне держать не нужно и я от них отказался.

По затратам. Я делаю на S3 бекапы пяти серверов, получается около 50 GB. Кроме этого использую Route53 для двух зон, и собственно хостинг этого блога. За прошлый месяц заплатил $6.85 (а за апрель и май, когда сайта там не было - $4.75 и $5.01 соответственно). Цена меня вполне устраивает.

Конечно же, я не отказываюсь от DO. Понадобится создать парочку серверов для каких-то задач — сразу же это сделаю. Но для блога мне вполне хватает и S3.

Comments