[英]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/
正在运行的应用程序需要应用程序。 s / w运行它们。
Cyber Duck等应用程序可帮助通过SFTP上传文件。
我可以成功解决相同的问题。相信我,您可以做到。 您所需要的只是服务器服务的接口,例如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上部署您的应用程序:
.pem
(从步骤1接收),该文件将帮助您登录到服务器实例并执行SFTP。 Putty
或类似的SSH client
使用.pem
文件和服务器的公共DNS登录到在步骤1中创建的EC2服务器实例,请参阅访问实例进行SSH登录。 WinnSCP
就是这样的客户端之一,请参考SFTP以获得更多信息。 java -jar TomcatApp.jar
。 如果一切配置正确,您将使用EC2实例的public DNS
或public IP
来访问应用程序,其格式为:
http://<public_dns_address>:<port number>/servlet
希望它可以帮助您入门并为您提供总体看法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.