Архитектурное решение для Amazon EC: маленькие экземпляры или большие? - PullRequest
0 голосов
/ 07 июля 2010

Я готов запустить веб-сайт нашей компании на Amazon EC2, и у меня довольно простой архитектурный вопрос: использовать ли массив Small экземпляров для уровня веб / приложений или массив больших экземпляров?

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

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

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

Ответы [ 3 ]

2 голосов
/ 07 июля 2010

На этот вопрос сложно ответить, потому что вопрос не должен быть «на каком типе экземпляра я должен строить свой сайт?» а скорее «как мне масштабировать мой сайт?».

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

Строго говоря, интерфейсные веб-серверы не должны быть мощными. Я проталкиваю пять миллионов хитов в месяц через одну коробку за $ 20 / месяц в Linode (хотя я потратил более 15 миллионов без проблем). Могу ли я инвестировать больше в мою архитектуру? Несомненно, я мог бы увеличить избыточность, добавив больше зеркальных блоков, я мог бы повысить производительность, добавив коробки в большем количестве центров обработки данных, и мог бы увеличить количество имеющихся у меня блоков, добавив больше памяти и ЦП.

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

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

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

Надеюсь, это поможет!

0 голосов
/ 11 августа 2010

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

0 голосов
/ 08 июля 2010

Лучший ответ - провести нагрузочное тестирование и посмотреть, что дает вам лучшую производительность / $ в зависимости от вашего приложения.

Отличительной особенностью EC2 является то, что вы можете быстро настроить среду тестирования на пару часов.и просто попробуйте.

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

...