我编写了一个小工具来测试NoSQL数据库。因为我没有足够的计算机,所以我想在Amazon EC2中运行基准测试工具和一些数据库节点。
这可能吗? - >我是否可以在EC2中部署java应用程序而无需进一步配置。?
谢谢
答案 0 :(得分:2)
我可以在EC2中部署java应用程序而无需进一步配置
是。如果您运行的是典型的Web应用程序,则可以调查Elastic BeanStalk。但这不适用于基准测试。
EC2计算机只是计算机,除了不是手动安装操作系统,您可以选择预先安装的操作系统来启动,称为AMI。你可以四处寻找预先安装了Java的图像,但启动你最喜欢的Ubuntu / Fedora / Centos / AmazonLinux并执行“apt-get install java”或“yum install java”相当容易”
首先,您将程序上传到框中并通过SSH进行测试。但是当你开始工作流程时,最好将你的程序上传到S3,然后让它在启动时下载它。 (S3通常比您的上传速度更快,更可靠。)
如果你在启动时只有一小部分配置,你可以使用cloud-init
。这将在引导时运行预定义的脚本。 (只需在启动时将命令放在EC2用户数据配置中。)它可以像3个命令一样简单:安装java,下载我的应用程序,运行我的应用程序。
对于更复杂的操作,您需要使用Chef,Puppet或Ansible来协调多个服务器。
但是对于像您的基准测试理念那样简单的东西,您可以使用AWS API轻松“自己动手”。使用库(Boto for Python,Fog for ruby。我确信有几个用于Java)编写一个执行以下操作的程序: 1)使用安装NoSQL DB的cloud-init脚本启动实例 2)等待它获得IP。 3)使用配置java测试程序的cloud-init脚本启动另一个实例,并从步骤2传入IP。 4)等待全部运行,然后收集运行信息(或者信息可能存储在S3中,以便您以后可以收集) 5)通过终止实例来清理(它有助于标记它们,以便您可以更容易地清理)
您可以手动执行所有操作,但是当您发现错误时,您将需要重新运行所有内容,自动化将使这一切变得轻而易举。另外,您需要在各种实例大小上重复您的发现。
一旦你开始工作,你可以在运行你的实际基准测试时切换到现场实例:他们需要更长时间才能启动,但可以节省大量资金。因此,spot实例对于开发来说很烦人,但对于在不关心启动时间的情况下运行批量测试是完美的。
答案 1 :(得分:1)
您可以将EC2视为一组可以租用时间的计算机。您可以完全控制EC2 VM,并且可以安装和运行您想要的任何软件,包括数据库服务器和Java应用程序。
您可能会发现实际的限制是您需要花费多少时间进行设置。您需要注册亚马逊帐户,设置实例,安装操作系统,安装数据库服务器,安装Java应用程序等......
请参阅http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html开始。