java - 将代码部署到 Amazon EC2 实例

标签 java amazon-web-services amazon-ec2

我正在使用 Java 从 Eclipse 中创建 EC2 实例。现在我想将应用程序的一部分推送到这些实例,以便这些实例可以处理任何需要处理的内容,然后将结果发送回我的机器。

我想做的是:

assignWork(){
    workPerformed = workQueue;
    workPerInstance = workQueue/numberOfInstances;
    while(workQueue > 0){
        netxInstance.doWork(workPerformed,workPerInstance);
        workPerformer -= workPerInstance;
    }
}

doWork(start, end){
    while(start>end){
       //process stuff
    start--;
    }
}

这样我就可以根据手头的工作量精确控制要实例化的 AMI 数量。我可以实例化它们,向它们发送特定的代码进行处理,然后在收到结果后立即终止它们。

仅使用 AWS JDK 可以吗?

最佳答案

确实如此,但请考虑...

  1. 如果您有 SLA,并且它们符合 SQS 限制(最多 4 天),您可以考虑将任务队列发布到 SNS/SQS,并使用 CloudWatch 跟踪所需实例的数量。

  2. 如果您有明确的角色划分(更像是工作流程),并且不太关心长时间运行的任务并且可以重试,也可以考虑使用 AWS SWF。它有点超出了 SQS/SNS 组合的范围,我认为它可以很好地适合 CloudWatch(这只是一个理论,我没有进一步研究)。缺点是用于编写工作流程流程的极端 SCSS AWS Flow Framework

  3. 如果您的工作负载是可预测的(例如,今天要处理大约 5K 个进程),这意味着您不需要实时并且可以对这些请求进行批处理,那么请考虑使用 Elastic MapReduce 来实现此目的。由于基于 Hadoop,它提供了一些这样的优点,例如能够按需调整集群大小,以及根本没有任何供应商锁定的明显情况。

  4. 实际上,如果您希望进行管理并且没有太多意外,请考虑查看诸如 PiCloud 之类的选项。和 IronWorker 。它们确实是为您刚才描述的情况而设计的。

如果您只有一个队列和 EC2,您当然可以实现自动化。这仅取决于您想要协调这些任务的程度,但我确信这是可能的。

关于java - 将代码部署到 Amazon EC2 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17479346/

相关文章:

java - 如何比较第一个元素和最后一个元素按降序对数组进行排序

java - 自动生成的代码不符合 CheckStyle 标准 (jHipster)

java - Android/Java - 将使用 getDate() 检索到的长值传递给另一个方法

python - 使用 Python 测试 AWS lambda

amazon-web-services - 使用 Flask-admin 将图像上传到 Amazon S3

amazon-web-services - 确保 EIP 不会跨 VPC 重用

node.js - 如何在网络服务器中的端口 80 而不是端口 5000 上运行 "Deployd"。

java - 是否可以在 VIM 中找到 java 类或方法的用法?

hadoop - 如何为 'hadoop-ec2' 正确配置 Amazon EC2 AMI?

amazon-web-services - 如何区分对 AWS 服务的调用是由 IAM 用户还是由 Cloud Formation 进行?