我已經編寫了自定義發行腳本來管理EC2自動擴展應用程序的發行版。處理工作就像這樣...註銷ec2實例時ELB後端連接錯誤
- 創建基於應用程序git標籤的AMI。
- 創建啓動配置。
- 配置ASG使用新的啓動配置。
- 查找ASG的當前所需容量。
- 將所需容量設置爲2x之前的容量。
- 通過查詢ELB等待新實例健康。
- 將所需容量設置回以前的值。
這一切都運行得很好,除非我運行這個,ELB的監控顯示了很多後端連接錯誤。
我不知道這是爲什麼會發生,因爲它應該(根據我的理解)仍然服務當前連接,如果ELB(它是)啓用「連接排水」選項。
我想也許ASG在連接完成之前就終止了實例,所以我改變了我的腳本,首先從ELB註銷實例,然後等待一段時間,然後在ASG上更改所需的容量。然而這並沒有什麼區別。只要實例從ELB註銷(即使它們仍在運行且健康),後端連接錯誤也會發生。
看起來好像忽略了連接耗盡選項,並且只要實例已註銷就簡單地刪除連接。
這是我使用註銷實例命令
aws elb deregister-instances-from-load-balancer --load-balancer-name $elb_name --instances $old_instances
有來自ASG刪除它們之前,優雅地除去從ELB實例一些優選的方法是什麼?
您是否啓用了連接耗盡? – hellomichibye
是的,我已啓用連接排空。實際上,我似乎對後端連接錯誤做出了錯誤的假設。這不是舊的實例,而是新的沒有準備好處理負載。 – user1751825
下一個問題:您是否啓用了健康檢查? – hellomichibye