0

避免的應用程序對EB的應用程序更新的靜態文件重新下載我們的項目中包含來自Amazon S3的應用程序下載彈性魔豆在部署過程中的靜態文件的多千兆量(使用.ebextensions/*配置文件。) ,因此將新服務器實例部署到集羣和/或應用程序版本更新需要很長時間,所以我們甚至需要認真增加部署超時。AWS彈性魔豆:通過緩存

這些文件位於應用程序目錄內,並且隨着EB重新構建應用程序版本更新的主要應用程序目錄,部署過程再次將所有靜態文件從S3再次下載到每個應用程序更新的新創建的目錄,從而增加部署時間並生成不必要的交通費用。

理念是通過持有的靜態文件緩存副本的應用程序目錄之外,以防止這種重新下載,只是(如有的靜態文件被更改或刪除對S3的情況下)與S3同步其上部署有:

aws s3 sync s3://bucket/staicfiles path/to/local/cached/staticfiles --delete 

,然後只是移動/從這個緩存目錄的新部署的目錄拷貝文件。

  1. 是否有任何其他的想法/最佳做法來防止更新時重新下載靜態文件?
  2. 有沒有亞馬遜的Linux推薦目錄中是不會被系統影響或部署過程中用戶緩存文件?

回答

0

您可以使用EBExtensions在部署期間執行任意命令。正如你所建議的那樣,我要做的就是使用那裏的命令將S3同步運行到未連接到應用程序部署路徑的文件夾。

您可以在您的應用程序的根目錄」 .ebextensions目錄發佈這些命令 - EB將讀取的是,在部署期間,和執行中發現的任何‘的* .config’文件。

至於其他的方法 - 我不知道你的應用程序結構/組織/等,但這些資產(圖片,JS,CSS等),可以直接從S3桶送達?然後你可以完全抵消服務器的負載。

+0

感謝您的回答。 - 1.我們已經在使用.ebextensions/*。config文件 - 這就是我們如何從部署中的s3下載文件。 - 2.不,我們提供來自Amazon CloudFront的圖像,js,css,這些靜態文件(我們在應用程序目錄中需要)是與應用程序相關的文件。 – Kainax

+0

酷 - 感謝您提供更多信息。大多數EB容器使用'/ var/app/ondeck /'構建應用程序,然後在將其翻轉爲'/ var/app/current'時將其翻轉爲活動版本。任何你想運行你的S3同步到其他文件夾(我建議類似/ opt或/ srv)應該沒問題。 – ballpointcarrot