【问题标题】:Deploy Java executable in EC2在 EC2 中部署 Java 可执行文件
【发布时间】:2013-07-04 10:02:31
【问题描述】:

我编写了一个小 Java 工具来对 NoSQL 数据库进行基准测试。因为我没有足够的计算机,所以我想在 Amazon EC2 中运行基准测试工具和一些数据库节点。

这可能吗? -> 我可以在没有任何进一步配置的情况下在 EC2 中部署 java 应用程序吗?

谢谢

【问题讨论】:

  • 你应该试试,这真的取决于你的应用程序
  • 感谢您的回复。你的意思是什么取决于你的应用程序。
  • 在运行你的应用程序之前你需要做什么(设置、应用服务器等等)。但一般来说应该没问题

标签: amazon-ec2 nosql


【解决方案1】:

我可以在没有任何进一步配置的情况下在 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、下载我的应用程序、运行我的应用程序。

对于更复杂的操作,您需要使用ChefPuppetAnsible 来编排多个服务器。

但是对于像您的基准测试这样简单的想法,您可以使用 AWS API 轻松地“自己动手”。使用库(Boto 用于 Python,Fog 用于 ruby​​。我确信有几个用于 Java)来编写执行以下操作的程序: 1) 使用安装 NoSQL DB 的 cloud-init 脚本启动实例 2)等待它获得IP。 3) 使用配置您的 java 测试程序的 cloud-init 脚本启动另一个实例,并传入步骤 2 中的 IP。 4)等待它全部运行,然后收集运行信息(或者信息可能存储在 S3 中,以便您稍后收集) 5)通过终止实例进行清理(它有助于标记它们,以便您可以更轻松地清理)

您可以手动完成所有这些操作,但是当您发现错误时,您需要重新运行所有内容,而自动化将使这一切变得轻而易举。此外,您需要在各种实例大小上重复您的发现。

一旦一切正常,您就可以在运行实际基准测试时切换到 Spot 实例:启动它们需要更长的时间,但可以节省大量资金。因此,现场实例对于开发来说很烦人,但非常适合在您不关心启动时间的情况下运行批量测试。

【讨论】:

    【解决方案2】:

    您可以将 EC2 视为一组可以租用时间的计算机。您可以完全控制 EC2 虚拟机,并且可以在其上安装和运行几乎任何您想要的软件,包括数据库服务器和您的 Java 应用程序。

    您可能会发现实际的限制是您要花费多少时间来设置它们。您需要注册一个 Amazon 帐户、设置您的实例、安装操作系统、安装数据库服务器、安装您的 Java 应用程序等......

    请参阅http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html 开始。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-12
      • 2015-02-28
      • 2019-03-12
      相关资源
      最近更新 更多