#postgresql #amazon-web-services #amazon-ec2
Вопрос:
Можно ли настроить отказоустойчивый Postgresql на месте EC2?
На данный момент у меня есть только один вариант — настроить 3 экземпляра EC2:
- любой небольшой EC2 в качестве места для балансировки нагрузки (haproxy?)
- любое небольшое МЕСТО EC2 в качестве подчиненного PostgreSQL
- необходимое «большое» МЕСТО EC2 в качестве основного PostgreSQL
Итак, я думаю, вы уже поняли схему — haproxy будет отправлять трафик для рабочей виртуальной машины, в основном на главной виртуальной машине PSQL, и во время перезагрузки главной виртуальной машины (это займет максимум несколько минут) трафик будет отправляться на подчиненную виртуальную машину в течение этих минут.
Таким образом, оба postgresql будут настроены как ведущий и ведомый кластеры.
Мой вопрос в том, работает ли эта схема? Есть ли какие-то другие более простые способы его реализации?
Моя цель — иметь «большой мощный» и дешевый экземпляр (SPOT) для Postgresql (v11), но в то же время я хочу сохранить его стабильным =)
Комментарии:
1. Вы не хотите размещать свою производственную базу данных на локальном экземпляре. Его можно отключить в любое время. Как трафик будет перенаправляться на «вторичный» сервер, если «основная» база данных отключена? Какой механизм мог бы спровоцировать этот сдвиг? Затем, если новые данные записываются в базу данных-получатель, как они возвращаются в базу данных-получатель? Неужели ваше приложение не стоит того, чтобы тратить деньги на его поддержание в рабочем состоянии?
Ответ №1:
Во-первых, экземпляр Spot не является хорошим выбором для рабочей нагрузки, которая требует выполнения в течение более длительного периода без прерывания. В любую минуту ваш спотовый экземпляр может исчезнуть с уведомлением за две минуты.
Поэтому, если вы хотите создать базу данных на EC2, вы должны выбрать варианты оплаты по требованию или зарезервированные типы.
Однако, если вы не хотите управлять своей собственной базой данных, пожалуйста, рассмотрите RDS вместо вашей собственной настройки