繁体   English   中英

如何在Amazon EC2上运行Java服务器?

[英]How to run a Java server on Amazon's EC2?

我想将用Java编写的服务器程序放在云上。 它将接受来自客户端的TCP套接字连接(客户端是使用3G的android手机),进行一些计算,将内容保存到MySQL数据库(也在EC2上),然后通过TCP连接将内容发送回客户端。 甚至可能有必要创建服务器的多个实例(即进程组)。

这容易做到吗? 我想我可以进行AMI,但是我不确定如何上传Java文件,编译和运行它们以及创建MySQL数据库等。

任何帮助将非常感激。

看一下使用Amazon Elastic Beanstalk的情况 Beanstalk是Amazon的PaaS产品,它将减轻许多系统管理负担。 这是他们的文档的简要说明:

AWS Elastic Beanstalk是您更轻松地在AWS云中快速部署和管理应用程序的方法。 您只需上传您的应用程序,Elastic Beanstalk就会自动处理容量配置,负载平衡,自动扩展和应用程序运行状况监视的部署详细信息。

另外,如果您对使用MySQL感兴趣,则应查看Amazon RDS 同样,这将减轻数据库层的系统管理负担。 这是他们的文档的简要说明:

Amazon Relational Database Service(Amazon RDS)是一项Web服务,可轻松在云中设置,操作和扩展关系数据库。 它在管理耗时的数据库管理任务的同时,提供了经济高效且可调整大小的容量,使您可以腾出时间专注于应用程序和业务。

这容易做到吗? 我想我可以进行AMI ...

我认为答案取决于您对系统管理的总体满意度。 创建在EC2中运行的AMI与创建物理服务器或VM映像几乎完全相同。 您需要安装操作系统,然后安装所需的工具,库和程序(例如mysql,jdk,ssh等)。

您可以使用Amazon预先构建的AMI之一http://aws.amazon.com/amis/来节省一些工作。 但是,最终,您将负责服务器的所有系统管理。 如果您从未从头开始构建服务器,那么您前面的学习曲线将会很大。 这不是无法克服的,只是要警告魔鬼在细节中。 有很多东西你需要学习;-)

...但是我不确定如何上传Java文件,编译和运行它们,...

在EC2中设置并运行服务器后,对其进行编译并运行Java文件与在本地进行编译并运行相同。 通常,您可能希望将Java应用程序编译并打包到jar或war中,然后将其传输到EC2服务器。 如果在EC2服务器上安装linux os,则可以使用scp或FTP客户端通过sftp传输文件,以将文件从本地移动到服务器。 一旦服务器上有最新文件,就可以SSH到服务器上并启动应用程序。

...并创建一个MySQL数据库等...

安装mysql将特定于您选择在服务器上安装的OS。 例如,您可以使用以下命令在Ubuntu上轻松安装mysql:

sudo aptitude install mysql

同样,这里将有更多有关mysql数据库的系统管理员类型的资料。

因此,这绝对是可行的。 有经验的系统管理员可以轻松/快速地构建AMI实例。 如果这是您第一次进行系统管理,建议您找一个旧台式机,尝试安装Ubuntu以及所需的所有必需库和工具(mysql,jdk,ssh等)。 让您的Java程序在旧桌面上运行,然后从中创建AMI应该很容易。 然后,您可以在EC2上运行自定义AMI,并将对其进行设置。

如果没有闲置的桌面,则可以使用其中一种虚拟机产品,例如VMWare Player或Sun的VirtualBox,并在其中一种上构建服务器实例。

如果要避免管理整个操作系统的麻烦,则可能需要查看诸如slicehost和/或linode之类的服务,而不是EC2。 它们使您可以通过ssh访问预安装的服务器。 这就像单击按钮以安装mysql等程序一样简单。

希望这个答案是有意义和有用的,祝您好运。 -戴夫

如果可以将Tomcat用作服务器,则可能需要尝试Amazon Web Services Elastic Beanstalk。它通过提供易于部署的Tomcat实例,将大大简化您的任务。

编辑:AWS在此处提供了有关如何使用Java进行开发的完整章节: http : //aws.amazon.com/java/

  1. 正在运行的应用程序需要应用程序。 s / w运行它们。

  2. Cyber​​ Duck等应用程序可帮助通过SFTP上传文件。

  3. 我可以成功解决相同的问题。相信我,您可以做到。 您所需要的只是服务器服务的接口,例如MySQL(使用WorkBench通过密钥对进行连接),终端访问(通过MAC使用PUTTY / SSH),以及一切顺利

您对远程管理服务器和解决大多数人从未听说过的问题感到满意吗? 那就是你在说的。

您将创建EC2实例,登录并对其进行配置,就像使用其他任何服务器一样。 您可以将JDK,dbs等下载到其中。您可以考虑使用Chef等工具来帮助您。 您将使用ftp和scp将文件复制到服务器。

您可能会希望将Java服务器放在一个盒子上,并使其与单独的数据库服务器通信,因为您说可能需要多个服务器。

服务器以您喜欢的方式工作后,您可以创建它的映像以用于启动多个实例,然后配置负载均衡器以指向您的服务器。

如果可以在本地框上创建MySql数据库,则可以在云中创建它。 如果不?....

我认为开始使用的是将整个单元打包到一个档案中。

当您编译Java文件时,可以想到它,一个嵌入式http服务器说tomcat 现在,所有这些都打包在一个jar中,可以在Amazon's EC2上部署。 有关嵌入式服务器和相关代码的更多信息,请使用链接。

就数据库而言,您可以使用Amazon的RDS。 您可以在RDS上配置mysql并获取指向它的链接以进行连接。 Amazon RDS将帮助您开始使用数据库。

现在,您已准备就绪,可以开始和使用应用程序。 现在是时候在Amazon AMI上进行部署了

执行以下步骤以在Amazon EC2上部署您的应用程序:

  1. 在Amazon EC2上创建服务器实例,请参阅EC2入门
  2. 接收私钥文件,即.pem (从步骤1接收),该文件将帮助您登录到服务器实例并执行SFTP。
  3. 使用Putty或类似的SSH client使用.pem文件和服务器的公共DNS登录到在步骤1中创建的EC2服务器实例,请参阅访问实例进行SSH登录。
  4. 使用SFTP客户端将打包到jar中的存档文件传输到服务器, WinnSCP就是这样的客户端之一,请参考SFTP以获得更多信息。
  5. 运行应用程序。 请注意,如果使用jar文件,则只需触发java -jar TomcatApp.jar

如果一切配置正确,您将使用EC2实例的public DNSpublic IP来访问应用程序,其格式为:
http://<public_dns_address>:<port number>/servlet

希望它可以帮助您入门并为您提供总体看法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM