Преимущества отдельного сервера СУБД

Я хотел бы сравнить преимущества двух архитектур хостинга для небольшого сервера (имеется в виду 2-ядерный ЦП и твердотельный накопитель емкостью 250 ГБ, при этом 100 ГБ выделено для данных, более чем достаточно), состоящий в основном из настраиваемого приложения, предоставляющего веб-службы, с архитектурой REST и всеми данными в реляционной базе данных.

  1. Размещается на одной машине в облаке (например, на экземпляре EC2) с реляционной базой данных (например, mySQL, PostGreSQL), работающей локально, с частыми зашифрованными внешними резервными копиями базы данных (например, на S3 / Glacier).
  2. Размещается на машине в облаке (например, аналогичный экземпляр EC2 с меньшим количеством SSD) с РСУБД в качестве управляемой службы, например Amazon Relational Database Service, возможно, с менее частым резервным копированием внешних зашифрованных баз данных.

Я вижу преимущества для 1.

  • Я считаю, что дешевле (экономия на управляемом сервисе и сети РСУБД) примерно в 3 раза.
  • Возможно лучшая задержка доступа к базе данных?

и для 2

  • Если экземпляр EC2 будет уничтожен, мы не потеряем данные.
  • Нет необходимости копировать БД из одного экземпляра EC2 в другой при восстановлении сервера с нуля или при крупном обновлении, например изменении ОС; таким образом меньше времени простоя.
  • Возможно, более простое администрирование БД.

Чего я скучаю? Есть ли указатели на авторитетную позицию по этому поводу?

1
задан 18 June 2021 в 16:39
1 ответ

Относительно первого пункта:

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

  • Задержка при одинаковых или даже между двумя зонами доступности является незначительной и может быть исключена из рассмотрения.

  • Я бы не сказал, что это решение будет намного дешевле, чем RDS, потому что важным фактором, влияющим на цену, будет SSD-хранилище. Цена будет примерно 30% между RDS и EC2.

  • Что касается типа SSD, вы должны решить или, может быть, вы уже знаете, какой уровень IOPS и МБ / с на пиках понадобится вашей базе данных в будущем. Это также было бы хорошим кандидатом для улучшения окончательной цены решения.

По поводу второго пункта:

  • Вы можете предотвратить эту ситуацию. По умолчанию, когда вы присоединяете некорневой том EBS к экземпляру, атрибуту DeleteOnTermination устанавливается значение false . Я предполагаю, что база данных будет расположена на некорневом томе EBS. Для корневого тома также может быть установлено значение false .

  • вам не нужно копировать базу данных из EC2 в EC2, вы можете присоединить или отсоединить том EBS с базой данных.

  • как вы указали в решении RDS, административная ответственность лежит на AWS. Однако чем сложнее схема базы данных, тем больше я бы выбрал неуправляемую службу базы данных.

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

1
ответ дан 28 July 2021 в 13:08

Теги

Похожие вопросы