2017-03-16 88 views
0

我創建了一個Elastic Beanstalk環境,其中安裝了PHP的EC2實例:我的文件位於/ var/www/html中。重啓我的EC2實例清空我的www/html文件夾

首先,我允許Auto-Scaling/Load Balancer,但是當自動縮放觸發時,它創建另一個實例並終止舊實例。然後我意識到,新的並不是舊的克隆:我丟失了所有的配置和文件,而我在我的EB配置中附加了SSD根卷。

我再次嘗試,我創建了一個AMI圖像,我包括在我的EB配置(在自定義AMI ID中)。這一次我的配置保持不變,但我的文件夾/ var/www/html被清空,並被默認的index.html文件取代。

1.是否應該發生?我認爲自動縮放創建了實例的克隆?

因此,我決定禁用自動縮放/負載均衡器,並在單實例模式下工作。但是,即使當我重新啓動我的EC2實例時,配置仍然保留,但我的整個文件夾/ var/www/html被清空了,只有默認文件在裏面。

2.爲什麼?有一個EBS卷附加到我的實例(EB自動執行),所以它不應該發生,如果我正確理解它的工作原理。

也許這是同樣的問題,但我真的不明白爲什麼我的文件被刪除。

非常感謝您的幫助! Romain

+0

」但是,即使當我重新啓動我的EC2實例,配置仍然保留,但我的整個文件夾/ var/www/html被清空「:仔細檢查確實重新啓動或停止啓動?行爲可能不同。 – Putnik

回答

0

自動調節使用AMI來啓動新的實例,並且AMI只不過是某個時間點的EC2實例的快照。因此,每次Autoscaling啓動一個新實例時,AMI和當前所需狀態之間的任何差異必須在啓動時間應用,才能接收新的流量。

ElasticBeanstalk提供工具來管理集成到Autoscaling動態的應用程序部署,並管理實例配置。有時候這些配置在使用EB工具進行引導期間變得過於複雜,並且自定義AMI變得非常方便。

如果您SSH進入自動擴展實例並開始手動執行超出ElasticBeanstalk工具堆棧範圍的操作,則所有這些更改都將在下一個自動擴展事件中丟失,除非您從實例保存更新的AMI並將其應用於自動縮放組。 「

+0

非常清楚,謝謝。然後我將使用eb-config文件進行配置,以確保在每個新實例中都包含正確的內容和配置。 – Paganel

相關問題