Я планирую развернуть веб-сайт среднего размера со стандартной базой данных SQL Server. Я выбрал Amazon EC2 для его развертывания. Теперь мне нужно выбрать между этими двумя вариантами:
1) получите 2 небольших экземпляра (по 1 ядру, 1,7 ГБ оперативной памяти каждый): один для интерфейса IIS, один для запуска БД. Примечание: эти «маленькие экземпляры» могут запускать только 32-разрядную версию Win2008 Server.
2) один большой экземпляр (4 ядра, 7,5 ГБ оперативной памяти), где я бы установил и IIS, и SQL Server. Примечание: этот большой экземпляр может запускать только 64-разрядную версию Win2008 Server.
Что лучше с точки зрения производительности, масштабируемости, простоты управления (запускать новый экземпляр, пока я создаю резервную копию основного экземпляра) и т. Д.
Все предложения и точки зрения приветствуются!
Как вы только что упомянули, вы можете вложить деньги в проблему и ожидаете некоторого масштабирования, используйте 2 экземпляра. Таким образом, вы получите опыт разделения сервисов и получите лучшую отправную точку для профилирования и сравнения ваших сервисов.
Возможно, вы даже захотите перенести свою БД на OSS позже, что будет проще.
(информативно: возможно клонирование и дублирование экземпляров в EC2. Эта статья предназначен для Linux, но, возможно, он дает вам подсказку о том, как сделать работающую копию ваших установок.)
Это кажется немного бюджетным решением.
Я бы взял большой экземпляр, потому что у вас больше резерва, памяти и ЦП. Также я читал о том, что небольшие экземпляры EC2 становятся вялыми. Небольшой запас не помешает.
Также есть дополнительные ядра, поэтому загрузка процессора при выполнении резервного копирования может иметь еще меньшее влияние на производительность.
Кроме того, вы сохраняете один экземпляр Win2008 server 2008, который является стоимостью и соответствующими накладными расходами на ЦП и память для запуска ОС два раза. Я должен признать, что не знаю модели ценообразования Win2008 Server. (Стоимость за процессор, поток или сокет или ...)
Если бы вы столкнулись с насыщением большой виртуальной машины, это произошло бы намного раньше с маленькими виртуальными машинами, поскольку они даже не наполовину меньше спецификации большой.
И последнее, но не менее важное: если вам действительно нужно запустить другой экземпляр для резервного копирования, вам нужно запустить только один экземпляр.
Поэтому с окнами в качестве операционной системы я не вижу пользы от разделения рабочей нагрузки на две крошечные изолированные виртуальные машины.
Два образа, вероятно, будут лучше для масштабируемости, администрирования и общего управления.
Одно изображение, вероятно, будет дешевле, особенно если вам никогда не придется сильно масштабировать этот сайт.
Производительность будет во многом зависеть от вашей реализации, но, вероятно, будет одинакова для обеих настроек. Одно изображение имеет больше ОЗУ и процессорных ядер; это может быть очень важно для вашей реализации (или, может быть, это не будет иметь никакого значения).
Два предыдущих ответа дают несколько хороших моментов для принятия решения, но одна вещь, о которой не упоминается, - это требования к доступности вашего сайта - если вы используете любую из предложенных вами архитектур, можете ли вы вынести, что ваш сайт не работает, пока вы перезапускаете сбойный экземпляр EC2? (время запуска особенно велико для экземпляров Windows; я видел, что это занимает до 30 минут)
Каким бы путем вы ни пошли, я рекомендую хранить вашу базу данных на отдельном Магазин эластичных блоков том, чтобы вы могли легко повторно подключить его к новому экземпляру в случае сбоя. Для томов EBS также легко выполнить резервное копирование с помощью функции моментальных снимков, предоставляемой AWS.
Однажды один очень умный сетевой архитектор, которого я очень уважаю, сказал мне, что каждая машина должна быть максимально простой. Всегда!
Поэтому я бы выбрал небольшие экземпляры по отдельности - как только они станут слишком маленькими, подумайте об их обновлении или создании дополнительных экземпляров.
Поскольку они разделены с самого начала, проще добавить дополнительную мощность там, где это необходимо, вместо того, чтобы платить слишком много за неправильную настройку.
Становится немного сложнее поддерживать и создавать резервные копии большего количества образов, но я думаю, вы также получаете преимущества большей масштабируемости.
Мы уже несколько лет работаем с подобной настройкой, работаем на VMware, а SQL-сервер отделен от двух машин IIS.
Сейчас у нас даже есть вторичный SQL, и это возможно, потому что мы также можем связать их для синхронизации.