При запуске инстансов EC2 кажется, что большинство AMI сообщества поставляются с 8-гигабайтным томом EBS, подключенным в качестве корневого диска. Нам определенно понадобится больше 8 ГБ, поскольку размер нашей базы данных растет. Как мы рекомендуем спроектировать нашу систему? Я вижу следующие варианты:
Используйте хранилище 8 ГБ, пока нам не понадобится его расширить, а затем следуйте одному из нескольких длинных онлайн-руководств, чтобы увеличить размер корневого диска.
Подключите второй том EBS к экземпляру большего размера (например, 60 ГБ) и сохраните все данные на этом томе. Если я хочу использовать MongoDB или MySQL в качестве базы данных, будет ли легко установить файлы приложения базы данных на корневой том, но сохранить данные на другом томе?
Какое решение лучше всего?
Если вы не используете экземпляр EC2 с поддержкой EBS, образ AMI извлекается в образ диска объемом 10 ГБ, который воссоздается при запуске экземпляра. Я использую экземпляры EC2, хранящиеся в экземплярах, вместо экземпляров с поддержкой EBS для всех своих экземпляров сервера. Затем я просто делаю тома EBS на любой стороне, которая мне нужна, и монтирую их как дополнительные диски.
С томами EBS я обнаружил, что использование файловой системы xfs и простое использование всего тома EBS без разбиения на разделы - лучший способ действий. Чтобы увеличить объем, когда это было необходимо, я делал снимок существующего тома EBS, а затем создавал новый том большего размера, построенный из снимка. Затем вы просто отсоединяете существующий том EBS и присоединяете новый. После того, как новый том смонтирован, он будет отображаться как текущий размер тома, пока вы не запустите служебную команду xfs expand, которую нужно запускать, пока файловая система работает. Проверка емкости после того, как это будет сделано, покажет новый больший размер.
Теперь, если вы используете Ubuntu AMI, вы можете установить пакет ebsmount и создать скрытый каталог на томе EBS и настроить систему для фактического автоматического монтирования с использованием udev, когда том EBS подключен к экземпляру EC2.
Думаю, на самом деле есть 3 варианта:
(Есть 4-й вариант, но он действительно непрактичен для чего-то вроде базы данных - вы можете смонтировать S3 как файловую систему fuse - и, поскольку вам не нужно предварительно выделять пространство на S3, у вас будет хранилище, которое увеличивается с вашими потребностями. Однако он довольно медленный по сравнению с EBS или эфемерным хранилищем, и его надежность в лучшем случае сомнительна.)
Как правило, лучше всего иметь загрузочный диск и диск с данными из разных файловых систем, чтобы, например, чрезмерно загруженный файл журнала, заполняющий загрузочный диск, не мог ограничить возможность вашего клиента загружать контент (или наоборот. ). Я никогда не устанавливал Mondo, но с MySQL довольно легко указать, где вы хотите хранить данные. Позже данные даже легко переместить вниз с помощью rsync, изменения конфигурации и всего лишь пары минут простоя, если вам нужно снова расширить диски.
Если вы идете по маршруту mysql, вероятно, следует упомянуть, что служба реляционной базы данных Amazon делает довольно хорошую работу по созданию стабильной масштабируемой базы данных без всех головных болей по управлению своей собственной.
Поместите важные данные на (хотя бы один) внешний том EBS. Для всего, для чего вам действительно нужна производительность, используйте Linux MD RAID-10 через много томов EBS.