[英]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就能做到嗎?
是的,但是請考慮...
如果您具有SLA,並且它們在SQS限制之內(最長4天),則可以考慮將任務隊列發布到SNS / SQS中,並使用CloudWatch跟蹤所需實例的數量。
如果您有明確的角色划分(更像是工作流程),並且長時間運行的任務不是很在意,並且您可以重試,那么也可以考慮使用AWS SWF。 它超出了SQS / SNS組合的范圍,並且我認為它可以與CloudWatch很好地配合(這只是一個理論,我沒有進一步研究)。 缺點是用於編寫工作流程流程的極端AWS流框架
如果您的工作量是可預測的(例如,今天要處理約5K個流程),這意味着您不需要實時並且可以批量處理這些請求,則可以考慮為此使用Elastic MapReduce。 由於基於Hadoop,它具有一些優點,例如能夠按需調整集群大小,以及明顯沒有任何供應商鎖定的明顯情況。
實際上,如果您希望做到這一點且沒有太多驚喜,請考慮考慮使用諸如PiCloud和IronWorker之類的選項。 它們確實適用於您剛才描述的情況。
如果只有Queue和EC2,則可以肯定地將其自動化。 這僅取決於您要協調這些任務的嚴重程度,但是我確信它是可能的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.