避免的应用程序对EB的应用程序更新的静态文件重新下载我们的项目中包含来自Amazon S3的应用程序下载弹性魔豆在部署过程中的静态文件的多千兆量(使用.ebextensions/*配置文件。) ,因此将新服务器实例部署到集群和/或应用程序版本更新需要很长时间,所以我们甚至需要认真增加部署超时。AWS弹性魔豆:通过缓存
这些文件位于应用程序目录内,并且随着EB重新构建应用程序版本更新的主要应用程序目录,部署过程再次将所有静态文件从S3再次下载到每个应用程序更新的新创建的目录,从而增加部署时间并生成不必要的交通费用。
理念是通过持有的静态文件缓存副本的应用程序目录之外,以防止这种重新下载,只是(如有的静态文件被更改或删除对S3的情况下)与S3同步其上部署有:
aws s3 sync s3://bucket/staicfiles path/to/local/cached/staticfiles --delete
,然后只是移动/从这个缓存目录的新部署的目录拷贝文件。
- 是否有任何其他的想法/最佳做法来防止更新时重新下载静态文件?
- 有没有亚马逊的Linux推荐目录中是不会被系统影响或部署过程中用户缓存文件?
感谢您的回答。 - 1.我们已经在使用.ebextensions/*。config文件 - 这就是我们如何从部署中的s3下载文件。 - 2.不,我们提供来自Amazon CloudFront的图像,js,css,这些静态文件(我们在应用程序目录中需要)是与应用程序相关的文件。 – Kainax
酷 - 感谢您提供更多信息。大多数EB容器使用'/ var/app/ondeck /'构建应用程序,然后在将其翻转为'/ var/app/current'时将其翻转为活动版本。任何你想运行你的S3同步到其他文件夹(我建议类似/ opt或/ srv)应该没问题。 – ballpointcarrot