Load-Balancing

在 Amazon (AWS) 上進行負載平衡並保持最新

  • March 3, 2012

我想為我的站點安裝一個負載均衡器並讓站點保持最新。負載均衡器將採用我選擇的 AMI,並在處理能力達到一定水平時啟動更多此類實例。問題是 AMI 可能不是最新的,所以我將有一些實例是最新的,而另一些則不是。當我部署時,我可以毫無問題地部署到負載均衡器下的所有實例,但我需要知道負載均衡器何時啟動新實例以觸發此部署。此外,當更新發生時,也會有一段時間會大大降低其響應能力。所以我想出了一個計劃。

我的計劃:

部署後:

   identify one of the instances and
       get instance id
   identify volume of instance id
   ec2-create-snapshot vol-yyyyyyyy
       get snapshot volume id
   ec2reg -s snap-zzzzzzzz -a x86 -d Description -n imagename
       get image id
   as-delete-launch-config existinglaunchconfig
   as-create-launch-config mylaunchconfig --image-id IMAGEID --instance-type m1.small --key mykey --group mysecuritygroup
   as-update-auto-scaling-group --launch-configuration mylaunchconfig

在我去花很多時間試圖弄清楚這一點並編寫腳本、測試和其他所有事情之前,我的問題是:這行得通嗎?有沒有更好的辦法?是否有任何人知道的教程或文章可以加快我在這個問題上的努力?謝謝。

可以與 AWS 一起使用的另一種方法是將更新的站點/數據/配置儲存在 S3 之類的地方。配置 AMI(或指定適當的使用者數據腳本),以便在啟動新實例時進行自我更新。您可以通過在更新完成之前不積極響應執行狀況檢查來防止它被添加到負載均衡器中。

否則,如果您需要更快地啟動實例,那麼您的方法似乎是合理的。只需確保在開始更新實時實例之前暫停 Auto Scaling 並在新的啟動配置後恢復即可。您不希望它啟動未更新的實例。

我也不確定您是否可以刪除 ELB 正在使用的啟動配置。該步驟可能必須等到它被替換之後。當您發現時在此處發布更新。

引用自:https://serverfault.com/questions/365925