簡體   English   中英

AWS AutoScaling-實例生命周期

[英]AWS AutoScaling - Instance Lifecycle

只是想獲得一些有關aws asg的信息。

這是我的情況;

  • 使用默認的ubuntu amilaunch config啟動asg
  • 使用ansibleasg設置(安裝所有必需的軟件包並進行配置)實例
  • 使用python將代碼部署到實例

快樂的日子,一切都已准備就緒。

問題是,如果我應該更改asg的指標,以便終止所有實例,然后將其更改回原始指標,那么新實例將變為空白! 沒有包裝,沒有代碼!

1-這是預期的行為嗎?

2-同樣,如果asg有2個實例並且可以擴展到5個實例,它將添加3個空白實例,還是要復制具有代碼和程序包的1個正在運行的實例並旋轉3個新實例?

如果1為是,我該如何解決? 我是否需要使用預先烘焙的圖像? 但是,即使那樣也沒有最新的代碼。

基本上在非高峰時段,我希望能夠將自己的asg “清零”,因此沒有實例在運行,然后在高峰時段再次恢復。 每天都必須重新配置和部署代碼是沒有意義的。

任何幫助/建議表示贊賞。

您的方法所發生的問題是,您正在將代碼部署到啟動實例。 因此,當您關閉ASG指標實例並再次啟動時,它們會從AMI啟動,因此它們會丟失代碼和配置。 在自動縮放時,切記要使用ASG使用的AMI和已啟動的實例來啟動新啟動的實例。

為避免這種情況,您可以使用將運行配置腳本的用戶數據,並在從AMI啟動實例時將數據從您的存儲庫中提取到每個實例上的實例,從而不會啟動空白實例。

閱讀此開發者指南以獲取用戶數據

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html

  1. 是的,這是預期的行為
  2. 它將添加3個空白實例(如果用blankfrom my base image

通常的選擇是:

  1. 每當有新的代碼版本時(在構建/部署過程中可以很容易地將其自動化)烘烤新圖像,但是只有在不太常見的情況下,他才有意義。

  2. 配置您的實例以在啟動時提取最新的軟件版本。 有幾個選項都涉及用戶數據腳本 您可以直接從SCM提取最新版本,或者例如在構建過程中將最新軟件包放置到S3存儲桶中,並在啟動時配置實例以從S3提取它並自行部署,或者使用您認為合適的任何方法。 。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM