Назад | Перейти на главную страницу

Как настроить postgresql на EC2, чтобы мои данные были защищены и сохранены?

Я занимаюсь настройкой очень маленького веб-приложения, которое, я надеюсь, со временем вырастет во что-то большее. На данный момент это личный проект с почти нулевым бюджетом, поэтому у меня не так много ресурсов, чтобы бросить на него. Я действительно хочу настроить все таким образом, чтобы я мог масштабироваться, если я начну видеть некоторый успех.

Я намереваюсь создать один микроэкземпляр на EC2 с приложением Rails, используя PostgreSQL в качестве базы данных. Я новичок в EC2 и довольно запутался в процессе настройки сервера.

Я прочитал достаточно, чтобы знать, что запуск PostgreSQL на экземпляре Micro обычно не рекомендуется, а запуск веб-сервера на том же экземпляре - тем более, но производительность не имеет существенного значения в настоящее время (у меня сейчас всего 3 пользователя! ). Время работы более важно, но не критично. Что критично, так это целостность и надежность базы данных.

Насколько я могу судить, простая установка PostgreSQL по умолчанию в экземпляре EC2 будет работать, но данные исчезнут, если экземпляр будет остановлен. Я хочу знать;

  1. Как мне настроить PostgreSQL для хранения данных в том месте, которое будет сохраняться?

  2. Как настроить непрерывное резервное копирование, чтобы всегда была еще одна копия данных моего пользователя?

Я понимаю, что ни один из этих вопросов не является тривиальным, но просто указать в правильном направлении было бы огромным подспорьем, поскольку это довольно большая тема, которая заставит меня задуматься.

Создайте свой экземпляр на EBS с отключенной функцией удаления при завершении для корневого тома. Это затруднит случайное уничтожение ваших данных. Несколько дней назад я немного писал о EBS и хранилище экземпляров в этом посте.. В том же посте обсуждаются варианты обеспечения приемлемой работы PostgreSQL на EC2 (подсказка: не используйте микроэкземпляр).

Теперь, самое главное, убедитесь, что вы создать регулярный pg_dump резервные копии или pg_basebackup + WAL архивирование куда-нибудь за пределы облака Amazon. Проверьте бармена для этого. Вместо этого вы можете архивировать на S3 (предпочтительно на S3 другого региона AWS), если вы готовы доверять облаку AWS или не возражаете против случайного отключения.

Если возможно, также настройте потоковая репликация ко второму серверу Pg в другой зоне или регионе доступности.

Регулярно проверяйте свои резервные копии. Следите за своей репликацией (возможно, используя такие инструменты, как repmgr чтобы помочь автоматизировать его).

Снимки вашего хоста - неплохая идея, но на самом деле в них нет необходимости, если вы документируете, как вы его настроили, и вы проверьте свои резервные копии.

Первоначально вы можете использовать EBS резервный экземпляр для вашего микро-экземпляра. Это должно избавить вас от первоначального беспокойства по поводу потери данных при перезапуске.

Позже вы должны настроить свой экземпляр, чтобы иметь дополнительный диск EBS только для данных (корень документа и файлы базы данных). Вы можете использовать функцию моментальных снимков EBS, чтобы делать снимки диска с данными и создавать их резервную копию на s3.

Это очень высокий уровень описания того, что вам следует делать, и подробный ответ будет очень длинным.