Я очень усердно занимаюсь этой темой в последние несколько дней, и я просто хочу обсудить это с несколькими конкретными вопросами - я не нашел здесь подходящей темы, которая бы охватывала мои потребности, и особенно, что вполне актуально - большинство сообщений по этой теме примерно в 2010 году, когда, я думаю, в последний раз AWS потерпел большую неудачу (весь регион в Мурике был отключен, если я правильно помню)
Текущее состояние:
Мы запускаем почтовый сервер на основе Ubuntu с Postfix / Dovecot / Horde, читая все почтовые конфигурации из базы данных MySQL. Он работает как экземпляр EC2 с хранилищем EBS, где хранятся ОС, а также почта. Пока все хорошо, но мы - стартап, а не просто частное лицо, которому нужен этот сервер - так что это почтовый сервис для наших клиентов, очень важный и очень важный для нас. После нескольких сбоев и простоев в первый год я значительно улучшил настройку - поэтому я подумал о "избыточности", в основном ...
Требование:
Сервер должен быть каким-то образом «избыточным», отказ одного экземпляра EC2 больше не должен нарушать работу всей службы.
Мои исследования на данный момент и варианты решения, которые я вижу:
Скопируйте экземпляр в другой регион, например, и создайте «реальную» избыточность, немного старомодную, но это то, что я узнал еще в школе - использование нового сервера в качестве резервной копии MX, настроенной через вторую запись MX в DNS с более низким приоритет. Здесь проблемы: решение проблемы избыточности данных -> мне нужно использовать rsync и db-replication, например, для синхронизации обоих серверов. Не тот вариант, который я хочу реализовать, потому что это может быть очень сложно ...
Решение на основе сервисов, просто правильно использующее возможности AWS. Я должен использовать RDS для базы данных и S3 для хранения. Итак, если у меня есть все письма в облаке хранилища (S3) и все данные базы данных конфигурации в облаке db (RDS) -> сам экземпляр становится сверхгибким. Это даст мне возможность запускать несколько экземпляров этого типа в один и тот же момент, поэтому я могу использовать ELB EC2 для обработки нагрузки, запуска новых экземпляров и обнаружения отказов, если один экземпляр умирает !! С другой стороны, мои критические точки данных, базы данных и почтовое хранилище будут управляться службами, поэтому мне больше не нужно думать о сбоях, простоях и, самое главное, о масштабируемости! Пока что это лучшее решение, которое я могу себе представить, но я вижу некоторые серьезные проблемы.
Заключительные вопросы:
Я никогда не видел хорошей интеграции S3 непосредственно в файловую систему Ubuntu - по моему опыту, после нескольких дней постоянной работы монтирование может исчезнуть внезапно и без всякой причины, а с другой стороны, несколько смонтированных «дисков» S3 будут реплицировать свои данные очень-очень медленно - я могу это понять, потому что это глобальный облачный сервис, но ... Как это должно работать? Представьте себе несколько запущенных экземпляров почтовых серверов, каждый из которых использует один и тот же диск S3 -> поэтому необходимо мгновенно реплицировать maildata! Итак, как мы можем «реализовать» хранилище почты на основе сервисов, которое действительно работает с AWS? Кто-нибудь когда-нибудь делал что-то подобное? Я просто повсюду читаю «да, вы должны использовать службы aws для решения этой проблемы», но я не могу найти реальных реализаций этого с почтой.
Было бы лучше решение на базе EBS? Таким образом, у каждого работающего экземпляра будет свой собственный выделенный диск для хранения, супер-доступный и быстрый, и снова я сделаю настройку rsync для синхронизации друг друга ... Большое противоречие здесь, огромные затраты ... каждый экземпляр должен иметь огромную EBS, потому что каждый должен хранить ВСЕ письма -> фигня ^^
Есть ли другой сценарий аварийного переключения с AWS, о котором я пока не знаю? Извините за длинный текст, но я хотел поделиться всеми своими мыслями ... Спасибо за чтение, если кто-то читает! :)
Хорошо, у меня не так много времени, бизнес не ждет гиков и поисков решений :) Итак, я продолжил поиск самостоятельно и нашел действительно очень интересный проект -> лично для меня это заполняет некоторые из самых больших пробелов в aws: https://objectivefs.com/
Благодаря этому у вас есть общие каталоги, синхронизируемые за секунды, доступные для всех ваших запущенных экземпляров одновременно, а лучший вариант - на S3, напрямую интегрированный в вашу Unix-FS!
Я не уверен, но мне кажется, что это всегда желаемый недостающий элемент для всех подобных сценариев, и я снова думаю, что это забавно, что для решения «правильного» сценария требуется сторонняя разработка. столько разводят aws-чуваки ... :)
Я попробую и почти уверен, что это отлично решит мой самый желанный сценарий ...