Блог переехал на AWS
Постоянные посетители моего сайта, возможно, обратили внимание, что он стал как будто бы пошустрее. Так оно и есть: примерно пару недель назад я не стал продлевать хостинг на Bluehost и со всем своим нехитрым скарбом (доменное имя, база данных для CMS и около гигабайта файлов) переехал на Амазон. По ощущениям, на новом месте сайт работает быстрее раза в два. Особенно это заметно при листании фотографий (например, здесь) - раньше эта процедура тормозила просто нещадно, а сейчас стало значительно приятнее - несмотря на то, что хостинг по-прежнему физически расположен в Америке.
Переехал я на обычную виртуалку EC2 t2.micro. После shared-хостинга на ней чувствуешь себя очень просторно. Кроме того, оно еще и почти вдвое дешевле, чем на Bluehost (при условии предоплаты, конечно, но на старом месте я тоже платил вперед). А первый год так и вовсе бесплатно за счет Free Tier. Разумеется, все, что на готовом хостинге предоставлялось "из коробки", теперь пришлось устанавливать и настраивать самому, но, во-первых, я вполне в состоянии это сделать, а во-вторых, у меня появилась замечательная возможность сделать все так, как я хочу, а заодно и попробовать применить в домашних условиях docker - инструмент, которым я недавно проникся :)
Дело в том, что я последний год работаю в конторе, которая активно использует микросервисы, и концепция мне настолько понравилась, что я решил попробовать построить хостинг для своего блога также на микросервисах. Отдельный docker-контейнер для Drupal, отдельный для MySQL, и также рядом в отдельном контейнере крутится Nginx, отвечающий за обработку HTTP-запросов, и перенаправляющий нужные на Drupal. Если в ближайшем будущем дозрею до HTTPS - наверняка это будет какой-нибудь LetsEncrypt, также в отдельном контейнере. Все это вместе связывает Docker Compose - единственный инструмент помимо собственно докера, который нужно ставить непосредственно на виртуалку. На работе у нас за это отвечает Kubernetes, но для моих нужд это чересчур мощная штука.
Последним штрихом было написание скрипта для развертывания всей этой структуры из имеющегося бэкапа. Я дал свободу своему внутреннему перфекционисту, поэтому писал долго, зато доволен результатом :)
Переезд происходил поэтапно. Сначала я передал в ведение Амазона доменное имя и перенес набор записей DNS, нацеленных по-прежнему на Bluehost. Потом перенаправил имена всех статических сайтов на новый адрес, оставив старым только указатель на блог, поскольку тот завязан на базу данных. Пару дней оно крутилось в таком виде, после чего я, наконец, сделал последний шаг:
- уменьшил TTL записи myx.ostankin.net до минимума - 60 секунд;
- спустя пару часов остановил сайт, переведя его в режим обслуживания;
- снял копию базы данных и перекинул на новый хостинг;
- развернул копию при помощи скрипта восстановления;
- на новом месте вывел сайт из режима обслуживания;
- перенаправил DNS на новое место.
Общее время пребывания в дауне - пять минут. Полагаю, никто даже не заметил :) По-моему, быстрее перенести трехзвенку невозможно - если только не настраивать заранее репликацию базы данных, что а) в моем случае явно излишне и б) представляется мне затруднительным на shared-хостинге.
Комментарии
Vitaly Kalinkin
Вт, 2016-11-29 03:17
Link
Пробовал GitHub Pages?
Пробовал GitHub Pages? Markdown-ом фигачишь и красота :)
myx
Вт, 2016-11-29 09:02
Link
Ну, если уж делать выбор в
Ну, если уж делать выбор в пользу Markdown, то лучше Jekyll (ты, по-моему, как раз на нем сидишь), он больше возможностей дает. Только у меня имеется "легаси" в лице пяти сотен постов, набравшихся за несколько лет :) Я не знаю простого способа сконвертить их все в маркдаун, особенно учитывая то, что я там регулярно баловался с jQuery-вставками :)
Vitaly Kalinkin
Вт, 2016-11-29 09:04
Link
Пфф, делай как все ---
Пфф, делай как все --- конвертер на питончике, а если что отвалилось --- ну значит не судьба, будет отваленное :) Вставки же все равно уже протухли давно наверное, в JS мире все за неделю протухает.
myx
Вт, 2016-11-29 09:11
Link
Я так не умею :)
Я так не умею :)
Vitaly Kalinkin
Вт, 2016-11-29 09:14
Link
Вот поэтому тебе и нужен
Вот поэтому тебе и нужен маркдаун, пока не поздно :) Потом просто подключишь новый парсер/конвертер и на пенсии издашь книжку в красивом PDF, или че там будет через 80 лет. Где ты в 2096-ом будешь искать эмулятор виртуальной машины для того чтобы запустить в нем IE 6 на котором твой JS побежит? Это будет примерно как щас запустить программу на фортране 77 для мейнфрейма.
myx
Вт, 2016-11-29 09:23
Link
Предлагаешь вообще не делать
Предлагаешь вообще не делать динамический/интерактивный контент? Потому что все тлен? :)
И потом, тот же самый маркдаун еще сырой. Некоторые вещи разные парсеры трактуют по-разному, а некоторые на нем невозможны в принципе.
Vitaly Kalinkin
Вт, 2016-11-29 09:25
Link
Ну я вот так делаю
Ну я вот так делаю интерактивный контент:
[figure]
[href="/olol/123.jpg"]
[figcaption]Mweo
Vitaly Kalinkin
Вт, 2016-11-29 09:26
Link
Порезало пробелы. Короче там
Порезало пробелы. Короче там отступы красивые были
myx
Вт, 2016-11-29 09:38
Link
А для кого придуман? :)
А для кого придуман? Совсем ты, брат, одичал со своим маркдауном :)
Vitaly Kalinkin
Вт, 2016-11-29 03:19
Link
А апдейты на базу потом по
А апдейты на базу потом по бинлогу накатывал на новый инстанс? :) Я к тому, что нафига такие заморочки? Выключил бы все и перенес за час, не думаю что кто-то бы заметил :) Хотя я конечно не знаю сколько у тебя тысяч подписчиков, но мои 50 миллионов даже не жаловались :)
myx
Вт, 2016-11-29 08:52
Link
Говорю ж, внутренний
Говорю ж, внутренний перфекционист на свободу вырвался :)
И потом, мне чисто психологически некомфортно, когда я знаю, что в любой момент из поиска может прийти человек, а там ничего не работает. Подписчиков у меня немного, но полторы сотни посетителей в день за счет поисковиков набегает.
Vitaly Kalinkin
Вт, 2016-11-29 09:00
Link
Бери пример с меня, у меня
Бери пример с меня, у меня нету таких проблем :)
Anatoly Koustov
Вт, 2016-11-29 14:15
Link
Max, а такой вопрос, я поднял
Влад, а такой ламерский вопрос, я поднял Worpress на AWS - перестала проходить фейсбучная авторизация, хотя твиттерная работает. Здесь, я вижу, все ок. В чем может быть дело? Поменять вордпресс на новую версию или на более совместимую платформу или копать настройки?
myx
Вт, 2016-11-29 14:38
Link
Привет! Сложно сказать - у
Привет! Сложно сказать - у меня за это отвечает модуль под названием HybridAuth, который, кстати, существует как под Drupal, так и под Wordpress. В общем случае модулю должно быть совершенно по барабану, где находится хостинг, лишь бы URL остался в точности прежним и TCP/80 (или TCP/443 в случае HTTPS) был открыт.
Насколько я знаю, и фейсбук, и твиттер используют один и тот же OAuth 2.0, поэтому раз твиттер работает - значит, платформа в порядке. Я бы начал копать с настроек фейсбучного приложения - возможно, даже пересоздал бы его с нуля, если ничего не помогает.
Vitaly Kalinkin
Вт, 2016-12-06 19:39
Link
Кстати скорость прям норм
Кстати скорость прям норм стала. А то я раньше засыпал прежде чем твоя страница откроется :)
myx
Вт, 2016-12-06 21:44
Link
Ну, собсно, ради этого все и
Ну, собсно, ради этого все и затевалось :) Рад, что получилось.
А то на Блюхосте как-то совсем грустно: мало того, что и так тормозит, так еще и тормоза ненормированные - иногда страничка могла и на несколько секунд задуматься. И это при том, что на хосте стоит ажно десятиядерный виртуальный процессор! На практике он оказался тормознее, чем одноядерный амазоновский.