Как запустить сервер Java на Amazon EC2?

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

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

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

Ответ 1

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

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

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

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

Ответ 2

Легко ли это сделать? Я думаю, что могу сделать AMI,...

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

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

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

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

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

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

sudo aptitude install mysql

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

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

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

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

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

Ответ 3

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

EDIT: AWS имеет полный раздел о том, как разрабатывать Java здесь: http://aws.amazon.com/java/

Ответ 4

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

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

Вероятно, вам захочется, чтобы ваш сервер Java на одном поле и поговорил с отдельным сервером db, так как вы говорите, что вам может понадобиться несколько серверов.

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

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

Ответ 5

  • Запуск приложений требуется приложение. s/w для их запуска.

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

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

Ответ 6

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

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

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

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

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

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

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

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