繁体   English   中英

将代码部署到Amazon EC2实例

[英]Deploying code to Amazon EC2 instance

我正在使用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很好地配合(这只是一个理论,我没有进一步研究)。 缺点是用于编写工作流程流程的极端AWS流框架

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

  4. 实际上,如果您希望做到这一点且没有太多惊喜,请考虑考虑使用诸如PiCloudIronWorker之类的选项。 它们确实适用于您刚才描述的情况。

如果只有Queue和EC2,则可以肯定地将其自动化。 这仅取决于您要协调这些任务的严重程度,但是我确信它是可能的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM