2014-10-04 16 views
2

我有部署新版本的應用程序的問題:超時錯誤,應用程序未更新(但應用程序仍在運行)什麼是最好的方式取代沒有停機時間的情況?

我有一個想法,檢查服務器上的亞馬遜工具是否正常工作。爲了做到這一點,我需要啓動新的實例並終止舊的(所以它將沒有宕機)

什麼是最好的方式替代實例沒有停機時間?

P.S.超時時間最長(30分鐘,在日誌中的實例根本沒有關於新部署的信息)

回答

0

所以最簡單的方法是增加2倍最少的實例數量並減少,所以新的會保持不變,而舊的將被終止

+0

儘管這種方法有效,但我有時間花了2個小時添加和刪除實例,但仍然存在問題。 你很幸運。 – 2014-10-27 13:38:40

+0

當你只有2個實例時,其約有50%的機會將被亞馬遜移除,你想要的東西:) – Eugene 2014-11-02 16:07:40

+4

EC2中的終止策略可以配置爲使得「OldestInstance」首先被終止(在自動調整組內):http:// docs。 aws.amazon.com/AutoScaling/latest/DeveloperGuide/AutoScalingBehavior.InstanceTermination.html – cfeduke 2015-12-28 14:58:51

6

恕我直言,用零宕機代替您的實例的最佳方式是使用URL交換;這是在兩個準備好的環境之間交換CNAME的簡單操作。

Read more at AWS

版本部署零停機時間(短版)

  1. 複製阿爾法環境配置。
  2. 基於Alpha配置創建Omega環境。
  3. 確保使用您的hosts文件,Omega環境正常運行(通過ping您的Elastic Beanstalk提供的URL來獲得IP,例如omega.elasticbeanstalk.com)。
  4. 交換URL的
  5. 測試歐米茄並確保Alpha監測報告零流量。
  6. 在EC2界面中終止您的Alpha實例,強制重建實例。
  7. 等待重建完成並交換回URL的
  8. 終止歐米茄環境
+0

它是有道理的,我聽說過它,感謝您的指示,喬治 – Eugene 2014-10-11 11:41:58

1

使用URL交換更換情況並不總是簡單的。您可能需要將自定義環境配置集複製到新環境中。此外,可能還需要更改安全組設置以使新環境正常工作。

與其調整自動縮放設置,我建議暫時更改實例大小。例如。從t2.micro> t2.small移動然後返回。這將交換所有實例與每個更改。

是的,您需要在10-20分鐘內收取更多費用!但它應該是微不足道的。

+0

它會首先添加這些小實例,然後停止微或關閉所有微,並同時開始小?(在這種情況下,我們將有停機時間) – Eugene 2016-06-22 13:29:47

+1

它會暫時加倍您的自動縮放最小大小值,並添加所有新服務器。然後當他們準備好時,它會關閉舊的。所以不會有停機。 :) – 2016-06-23 04:11:39

相關問題