我目前正在使用AWS ElasticBeanStalk,並且我很好奇(如在內部)它是否知道當你啓動一個實例(或者它會自動縮放)時,解壓我作爲一個版本上傳的zip文件?是否有一些環境設置在我的S3存儲桶中查找我的zip文件,然後爲在該環境中運行的每個實例自動解包?ElasticBeanStalk如何將您的應用程序版本部署到實例?
如果是這樣,這可以用來自動執行任務,例如在啓動時(實例部署)也可以運行SQL查詢嗎?這些自動化任務是可以改變的還是可以查看的?
感謝
我目前正在使用AWS ElasticBeanStalk,並且我很好奇(如在內部)它是否知道當你啓動一個實例(或者它會自動縮放)時,解壓我作爲一個版本上傳的zip文件?是否有一些環境設置在我的S3存儲桶中查找我的zip文件,然後爲在該環境中運行的每個實例自動解包?ElasticBeanStalk如何將您的應用程序版本部署到實例?
如果是這樣,這可以用來自動執行任務,例如在啓動時(實例部署)也可以運行SQL查詢嗎?這些自動化任務是可以改變的還是可以查看的?
感謝
我不知道魔豆怎麼知道哪個版本,下載並解壓縮,但運行在啓動一個任務是微不足道的。查看cloud-init
,a tool written by Ubuntu that's now packaged in Amazon Linux.它允許您將任意shell腳本傳遞到實例配置的UserData部分,並且這些shell腳本將在啓動時運行。
It's a great way to bootstrap instances on startup,它避免了管理AMIs的靈魂吮吸痛苦。
一個快速的(可能不適用的)警告:如果您對位於beanstalk AMI上的數據庫運行SQL查詢,那麼幾乎可以保證在某個時刻丟失數據庫。這些機器設計完全是瞬態的。不要把數據庫放在它們上面。 See this answer for more details.
由於您的目標似乎是運行自定義配置任務,答案是肯定的,有一種方法可以做到這一點。您可以在隨應用程序打包的.ebextensions文件中定義自定義操作。例如,您可以配置命令以在每次部署新機器時運行: http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers-ec2.html#linux-commands
太棒了!感謝那!我們爲我們的SQL解決方案使用RDS,所以這不是問題! – Schodemeiss 2012-07-27 11:32:47