EBS для хранения баз данных по сравнению с файлами веб-сайтов

Asked
Viewd2209

12

Я провел день, впервые экспериментируя с AWS. У меня запущен экземпляр EC2, и я смонтировал хранилище эластичных блоков (EBS) для хранения баз данных MySQL.

Есть ли смысл размещать файлы моих веб-приложений в EBS или мне следует просто развернуть их в обычной файловой системе EC2?

  • Проголосовал за, потому что это совершенно законный вопрос.

    Kevin Peterson27 июня 2009, 07:49
  • Как отмечает в своем ответе Кевин Петерсон, было бы очень важно знать, имели ли вы в виду развернутый код или файлы данных.

    Jonik19 мая 2010, 18:03
  • Никто, кроме вас, не знает ваших требований. Может, тебе стоит уточнить…

    Mitch Wheat15 марта 2009, 05:02

4 ответов

7

Когда вы говорите о файлах своего веб-приложения, я не совсем понимаю, о чем вы говорите.

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

Если вы храните файлы данных, которые изменяются запущенным приложением, EBS может иметь смысл. Если это что-то вроде загруженных пользователем изображений или чего-то подобного, вы, вероятно, обнаружите, что S3 предоставляет вам гораздо более простую модель.

EBS подходит для баз данных, индексов Lucene, файловых CMS, репозиториев SVN и т. д.

  • +1, это самый ясный ответ. Кроме того, если OP интересуется скоростью EBS по сравнению с хранилищем экземпляров, он должен проверить это: http://serverfault.com/questions/111594/which-is-faster-for-read-access-on-ec2-local -drive-or-ebs

    Jonik19 мая 2010, 18:09
2

Если ваши файлы будут часто меняться (как это делает БД) и вы не хотите синхронизировать их с S3 (или где-то еще), то EBS - хороший вариант. Если вы вносите изменения нечасто и можете вручную (или с помощью сценария) синхронизировать файлы по мере необходимости, сохраните их в S3. Если вам нужно завершить работу или вы потеряете свой экземпляр по какой-либо причине, вы можете просто отключить их при запуске нового экземпляра. Это также предполагает, что вы заботитесь о стоимости. Если стоимость не является проблемой, использовать EBS проще. Я не уверен, планируете ли вы иметь отдельную EBS для своей БД и ваших веб-файлов, но если вы планируете иметь только одну EBS и у вас достаточно свободного места для ваших веб-файлов, то опять же, EBS менее сложен. . Если вас беспокоит производительность, как уже упоминалось, лучше всего протестировать именно ваше приложение.

2

EBS предоставляет постоянное хранилище, поэтому в случае сбоя экземпляра EC2 файлы все еще существуют. Очевидно, у них повышенная производительность ввода-вывода, но я бы проверил это, чтобы убедиться.

1

Наш подход состоит в том, чтобы предварительно развернуть сценарий на нашем AMI, который извлекает самую последнюю и лучшую версию кода из системы контроля версий. Это делает очень простым быстрый запуск новых экземпляров или обновление всех запущенных экземпляров (мы выводим их из ротации балансировки нагрузки по одному, запускаем скрипт и возвращаем их в ротацию).

ОБНОВЛЕНИЕ:

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

Я настоятельно рекомендую использовать экземпляр EBS с отдельным томом EBS для данных MySQL.