簡體   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