Как запустить сервер Java на Amazon EC2? - PullRequest
11 голосов
/ 01 февраля 2011

Я хочу разместить серверную программу, написанную на Java, в облаке.Он будет принимать соединения через сокеты TCP от клиентов (клиенты - это телефоны Android, использующие 3G), выполнять некоторые вычисления, сохранять данные в базе данных MySQL (также в EC2) и отправлять данные обратно клиентам через соединения TCP.Может даже потребоваться создать несколько экземпляров сервера (например, группу процессов).

Это легко сделать?Я думаю, что могу создать AMI, но я не уверен, как загружать файлы Java, компилировать и запускать их, а также создавать базу данных MySQL и т. Д.

Любая помощь будет высоко оценена.

Ответы [ 6 ]

14 голосов
/ 02 февраля 2011

Взгляните на использование Amazon Elastic Beanstalk . Beanstalk - это предложение PaaS от Amazon, которое значительно облегчит бремя системного администрирования. Вот краткое описание из их документов:

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

Кроме того, если вы заинтересованы в использовании MySQL, вам следует взглянуть на Amazon RDS . Опять же, это уменьшит нагрузку на системное администрирование для вашего уровня базы данных. Вот краткое описание из их документов:

Сервис реляционных баз данных Amazon (Amazon RDS) - это веб-сервис, упрощает настройку, эксплуатацию и масштабировать реляционную базу данных в облако. Это обеспечивает рентабельное и изменяемая емкость при управлении трудоемкое администрирование базы данных задачи, освобождая вас, чтобы сосредоточиться на приложения и бизнес.

3 голосов
/ 02 февраля 2011

Это легко сделать? Я думаю, что я могу сделать АМИ, ...

Я думаю, что ответ зависит от того, насколько вам удобно системное администрирование в целом. Создание AMI для запуска в EC2 - это почти то же самое, что создание физического сервера или образа виртуальной машины. Вам нужно будет установить операционную систему, а затем установить необходимые инструменты, библиотеки и программы (такие как mysql, jdk, ssh и т. Д.).

Вы можете немного сэкономить на работе, используя один из встроенных в Amazon AMI http://aws.amazon.com/amis/. Но, в конечном итоге, вы будете нести ответственность за все системное администрирование сервера. Если вы никогда не создавали сервер с нуля, у вас впереди довольно большая кривая обучения. Это не непреодолимо, но просто предупредите, что дьявол кроется в деталях; есть масса вещей, которые вам нужно выучить; -)

... но я не уверен, как загрузить Java файлы, скомпилируйте и запустите их, ...

Как только сервер настроен и запущен в EC2, его компиляция и запуск java-файлов аналогичны компиляции и запуску на вашем локальном компьютере. Обычно вы, вероятно, захотите скомпилировать и упаковать ваше java-приложение в jar или war, а затем перенести его на свой сервер EC2. Если вы устанавливаете Linux на ваш сервер EC2, вы можете использовать scp или FTP-клиент для передачи ваших файлов по sftp, чтобы переместить файлы с вашего локального сервера на сервер. Как только последние файлы появятся на вашем сервере, вы можете подключиться к серверу через ssh.

... и создать базу данных MySQL и т. Д. *

Установка mysql будет зависеть от ОС, которую вы хотите установить на свой сервер. Например, вы можете легко установить mysql в Ubuntu с помощью команды вроде:

sudo aptitude install mysql

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

Итак, это определенно выполнимо. Опытный системный администратор может довольно легко / быстро создать экземпляр AMI. Если это ваш первый опыт системного администрирования, я бы посоветовал найти старый рабочий стол, который у вас лежит, и попробовать установить Ubuntu и все необходимые библиотеки и инструменты, которые вам нужны (mysql, jdk, ssh и т. Д.). Получите вашу Java-программу, работающую на старом рабочем столе, и тогда будет довольно легко создать AMI из этого. Затем вы можете запустить свой собственный AMI на EC2 и будет настроен.

Если у вас нет запасного рабочего стола, вы можете использовать один из продуктов виртуальной машины, например, VMWare Player или Sun VirtualBox, и создать экземпляр сервера на одном из них.

Если вы хотите избежать хлопот управления всей установкой Операционной системы, вам может потребоваться использовать такие службы, как slicehost и / или linode вместо EC2. Они дают вам SSH доступ к предустановленному серверу. И это так же просто, как нажать кнопку, чтобы установить такие программы, как MySQL и т. Д.

Надеюсь, этот ответ актуален и полезен, удачи. - Дэйв

2 голосов
/ 02 февраля 2011

Если вы можете использовать Tomcat в качестве сервера - вы можете попробовать Amazon Web Services Elastic Beanstalk Это значительно упростит вашу задачу, предоставив простой экземпляр Tomcat для развертывания.

РЕДАКТИРОВАТЬ: AWS имеет полный раздел о том, как разрабатывать с использованием Java здесь: http://aws.amazon.com/java/

1 голос
/ 16 апреля 2012
  1. Для запуска приложений требуется приложение. чтобы запустить их.

  2. Приложения, такие как Cyber ​​Duck, помогают загружать файлы через SFTP.

  3. Я успешно справился с той же проблемой. Поверьте мне, ВЫ МОЖЕТЕ ЭТО СДЕЛАТЬ. Все, что вам нужно, это интерфейсы для серверных сервисов, таких как MySQL (используйте WorkBench для подключения с помощью пары ключей), терминальный доступ (используя PUTTY / SSH через MAC) и хорошо, что вы готовы пойти

1 голос
/ 02 февраля 2011

Насколько вам удобно удаленное администрирование сервера и решение проблем, о которых большинство людей никогда не слышали?Это то, о чем вы говорите.

Вы создадите свой экземпляр EC2, войдете в него и настроите его так же, как и любой другой сервер, с которым вы работаете.Вы можете загрузить в него JDK, dbs и т. Д. Вы можете использовать такой инструмент, как Chef, чтобы помочь вам.Вы будете использовать ftp и scp для копирования файлов на сервер.

Возможно, вы захотите, чтобы ваш Java-сервер находился на одном компьютере, и он говорил с отдельным сервером БД, поскольку вы говорите, что вам может потребоваться несколько серверов,

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

Если вы можетесоздайте базу данных MySql на своем локальном компьютере, вы можете создать ее в облаке.Если нет? ....

0 голосов
/ 01 января 2016

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

Думайте об этом, как будто ваши Java-файлы скомпилированы, встроенный http-сервер скажет tomcat. Теперь все это упаковано в банку, готовую к развертыванию на Amazon's EC2. Используйте эту ссылку для получения дополнительной информации о встроенных серверах и соответствующем коде.

Что касается базы данных, вы можете использовать Amazon RDS. Вы можете настроить mysql на RDS и получить ссылку на него для подключения. Amazon RDS поможет вам начать работу с базой данных.

Теперь, когда у вас все готово для запуска и работы с приложением. Настало время для развертывания на Amazon AMI

Выполните следующие шаги для развертывания приложения в Amazon EC2:

  1. Создание экземпляра сервера в Amazon EC2, см. EC2, начало работы .
  2. Получить файл с закрытым ключом, т.е. .pem (получить с шага 1), этот файл поможет вам войти в ваш экземпляр сервера и выполнить SFTP.
  3. Используйте Putty или аналогичный SSH client для входа в ваш экземпляр сервера EC2, созданный на шаге 1, с использованием .pem файла и общедоступного DNS сервера, см. Доступ к экземпляру для входа по SSH.
  4. Передайте заархивированные файлы, упакованные в jar, на сервер, используя SFTP-клиент, WinnSCP, являющийся одним из таких клиентов, для получения дополнительной информации обратитесь к SFTP .
  5. Запустить приложение. Обратите внимание, что в случае файла JAR вы можете просто запустить java -jar TomcatApp.jar.

Если все настроено правильно, вы получите доступ к приложению с помощью экземпляра EC2 public DNS или public IP, который будет иметь вид:
http://<public_dns_address>:<port number>/servlet

Надеюсь, это поможет вам начать работу и предоставит вам общий обзор.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...