Лучшие практики для создания простого масштабируемого кластера в Amazon EC2 для веб-приложения Java - PullRequest
2 голосов
/ 31 марта 2010

Я хочу создать веб-приложение на Java и развернуть его на EC2 . Он будет написан на Java и будет использовать MySQL. Я надеялся получить некоторые подсказки о фактическом процессе развертывания и конфигурации. В частности меня интересуют следующие темы:

  • изображений машин (сделай сам против готовых)
  • MySQL репликация и резервное копирование на S3
  • способы развертывания и повторного развертывания приложения на EC2 без прерываний
  • брандмауэров
  • балансировка нагрузки и автоматическое масштабирование
  • cloudtools (или альтернативные инструменты)

1 Ответ

2 голосов
/ 09 апреля 2010

Я могу говорить только с некоторыми из ваших вопросов для обсуждения из опыта. Мне пришлось удалить гиперссылки на различные продукты Amazon, потому что я новичок в Stackoverflow и у меня недостаточно представителей, чтобы опубликовать более одной ссылки.

Изображения машин: Хотя вы, безусловно, можете начать с собственного образа машины и преобразовать его в AMI с помощью инструментов ECI AMI Tools, я предпочитаю начать с одного из готовых изображений Amazon и настроить его в соответствии со своим необходимо. Преимущество здесь состоит в том, что вы уже знаете, что базовый образ будет развернут, вы с большей вероятностью получите помощь на форуме или от персонала EC2, и вам не придется сталкиваться с проблемами настройки физической машины или ваша собственная виртуальная машина, чтобы связать образ и загрузить его. Если вы используете инструменты EC2 API, вы можете получить список доступных базовых образов с помощью ec2-describe-images -o amazon.

Репликация и резервное копирование MySQL: Ознакомьтесь с новой (ish) службой реляционной базы данных Amazon. Он разработан для работы с MySQL, может выполнять автоматическое резервное копирование и легко масштабируется.

Брандмауэры: Управлять брандмауэрами для ваших экземпляров легко с помощью инструментов API. Например, вы можете создать группу,

ec2-add-group condor –d “Condor Workers”

настроить правила брандмауэра для этой группы (плохой пример - открывает все порты UDP и TCP для диапазона CIDR),

ec2-authorize condor -P tcp -p 0-65535 -s 129.127.0.0/16
ec2-authorize condor -P udp -p 0-65535 -s 129.127.0.0/16

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

ec2-run-instances ami-12345678 –g condor –k mykeypair

Сложная часть движется в другом направлении - позволяя инстансам EC2 общаться с вашей компанией / школой / личной сетью. Поскольку вы не знаете, какой IP будут у ваших экземпляров до их запуска (Amazon Elastic IP может до некоторой степени облегчить это), вы, как правило, вынуждены разрешить некоторую подсеть облака EC2.

Вы также можете настроить Iptables или дополнительные брандмауэры в своих экземплярах.

Балансировка нагрузки: Рассмотрим балансировку эластичной нагрузки Amazon. Если это не соответствует вашим потребностям, вы можете создать свой собственный «виртуальный кластер» и использовать любой фреймворк, который вам нравится.

...