我想把一个用Java写的服务器程序放在云端。它将接受来自客户端(客户端是使用3G的安卓手机)的TCP socket连接,执行一些计算,将数据保存到MySQL数据库(也在EC2上),并通过TCP连接将数据发送回客户端。甚至可能需要创建服务器的多个实例(即进程组)。
这很容易做到吗?我想我可以做一个AMI,但是我不确定如何上传Java文件,编译和运行它们,以及创建MySQL数据库等
任何帮助都将不胜感激。
发布于 2011-02-02 06:20:58
看一下如何使用Amazon Elastic Beanstalk。Beanstalk是亚马逊的PaaS产品,它将大大减轻系统管理负担。以下是他们的文档中的快速描述:
使用
AWS Elastic Beanstalk,您可以更轻松地在AWS云中快速部署和管理应用程序。您只需上传您的应用程序,Elastic Beanstalk就会自动处理容量调配、负载平衡、自动伸缩和应用程序运行状况监控等部署细节。
另外,如果你对使用MySQL感兴趣,那么你应该看看Amazon RDS。同样,这将减轻数据库层的系统管理负担。以下是他们的文档中的快速描述:
Amazon Relational Database Service (Amazon RDS)是一种web服务,可以轻松地在云中设置、操作和扩展关系数据库。它提供经济高效且可调整大小的容量,同时管理耗时的数据库管理任务,将您解放出来专注于您的应用程序和业务。
发布于 2011-02-02 06:04:58
这很容易做到吗?我想我可以做一个AMI,..。
我认为答案取决于你对系统管理的总体适应程度。创建在EC2中运行的AMI实际上与创建物理服务器或VM映像非常相似。您需要安装操作系统,然后安装所需的工具、库和程序(如mysql、jdk、ssh等)。
你可以通过使用亚马逊预置的AMI的http://aws.amazon.com/amis/来节省一些工作。但是,最终,您将负责服务器的所有系统管理。如果您从未从头开始构建服务器,那么您将面临一个相当大的学习曲线。这并不是不可逾越的,但需要注意的是,细节是关键;你需要学习的东西有很多;-)
...但是我不确定如何上传Java文件,编译和运行它们,...
一旦服务器在EC2中设置并运行,编译它们并运行java文件与在本地编译和运行相同。通常,您可能希望将java应用程序编译并打包到jar或war中,然后将其传输到EC2服务器。如果你在你的EC2服务器上安装了linux操作系统,你可以使用scp或者FTP客户端通过sftp传输你的文件,将文件从你的本地移动到服务器上。一旦你的服务器上有了最新的文件,你就可以ssh到服务器并启动你的应用程序。
...并创建一个MySQL数据库等等。
安装mysql将特定于您选择在服务器上安装的操作系统。例如,您可以使用以下命令在Ubuntu上轻松安装mysql:
sudo aptitude install mysql同样,这里还会有更多针对mysql数据库的系统管理员类型的内容需要学习。
所以,这绝对是可行的。有经验的系统管理员可以非常容易/快速地构建一个AMI实例。如果这是你第一次体验系统管理,我建议你找一个旧的桌面,试着安装Ubuntu和所有你需要的库和工具(mysql,jdk,ssh等)。让你的java程序在旧的桌面上运行,然后就可以很容易地创建一个AMI了。然后,您可以在EC2上运行您的自定义AMI并进行设置。
如果您没有闲置的桌面,您可以使用虚拟机产品之一,如VMWare播放器或太阳的VirtualBox,并在其中一个上构建一个服务器实例。
如果你想避免管理整个操作系统安装的麻烦,你可能想看看像slicehost和/或linode这样的服务,而不是EC2。它们使您能够通过ssh访问预先安装的服务器。而且只需点击一个按钮即可安装mysql等程序。
希望这个答案是相关的和有帮助的,祝你好运。- Dave
发布于 2011-02-02 06:19:32
如果您可以使用Tomcat作为您的服务器-您可能想尝试Amazon Web Services Elastic Beanstalk,它将通过提供一个易于部署的Tomcat实例来极大地简化您的任务。
编辑:亚马逊网络服务在这里有一个完整的章节介绍如何使用Java进行开发:http://aws.amazon.com/java/
https://stackoverflow.com/questions/4867764
复制相似问题