Назад | Перейти на главную страницу

Усилия и детали для настройки кластерного инстанса с балансировкой нагрузки на Amazon EC2

Я пытался собрать все элементы вместе для создания кластера с балансировкой нагрузки из трех серверов (2 для веб-узлов и один для MySQL) в качестве стека LAMP на EC2. Это только для запуска тестов производительности приложения, и мне нужно собрать соответствующую информацию, чтобы я мог оценить время, которое это займет. Мне было интересно, может ли кто-нибудь заполнить для меня пропуски о следующем:

Что такое вычислительная единица? Мне нужны три зеркала AWS CentOS RightScale, два в качестве веб-узлов и один с базой данных. Тогда мне нужны три небольших экземпляра?

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

Для кеширования приложений я хочу использовать memcache. Есть ли проблемы с этим на Amazon EC2? Думаю использовать Siege (http://www.joedog.org/index/siege-faq) провести стресс-тестирование. Предоставляет ли Amazon что-то для проведения стресс-тестирования или это подходящий инструмент?

Для кого-то вроде меня, у которого нет опыта использования этой службы, помимо установки нашего приложения на обоих веб-узлах, какое время мы здесь рассматриваем? Я в основном знаком с развертыванием приложений на экземплярах серверов и имею некоторый опыт конфигурирования серверов и настройки производительности, но по профессии я программист. Думаю, 30 часов на настройку, а потом, наверное, еще 15-20 на тестирование. Это звучит приблизительно?

Как уже упоминалось, вычислительная единица - это примерно старый процессор серверного класса с тактовой частотой 1,0–1,2 ГГц, и вы захотите рассмотреть возможность эластичной балансировки нагрузки Amazon.

Для простого стека LAMP с балансировкой нагрузки вы должны начать с небольшого типа инстанса и работать оттуда, основываясь на вашем тестировании и тестировании.

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

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

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

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

Для балансировки нагрузки просто используйте Amazon Эластичная балансировка нагрузки. Используйте Amazon, если вы планируете использовать аппаратный балансировщик нагрузки в производственной установке. Если в продакшене вы планируете использовать программный балансировщик нагрузки - тогда да, используйте такой же на EC2.

Для тестирования мне нравится выполнять низкоуровневые HTTP-тесты с httperf. Для тестирования на уровне приложений мне нравится использовать JMeter. Обычно я делаю тестирование наоборот. Я запускаю JMeter на EC2 и испытываю эту тестовую нагрузку в своем центре обработки данных, отличном от EC2. Таким образом я делаю полный сквозной тест. Тем не менее, я предполагаю, что вы проводите свой тест, потому что у вас нет дополнительного оборудования локально для запуска макетной производственной установки.