在部署之间保留动态或用户提交的文件的最佳做法是什么?即git aws.push
只需删除现有的应用程序目录,然后将新版本提取到 EC2 实例上,但我需要保留一些日志、设置和存储在文件系统上的用户提交的数据。
我即将挂载 S3 存储桶,但是在 AWS Beanstalk 上找不到任何部署后挂钩来自动触发挂载 S3...
答案1
我会重新思考为什么您的应用程序首先将内容存储到本地系统。在部署时删除这些文件只是一个问题。另一个问题是,当您的应用程序扩展到多个实例时,这些实例将不知道其他实例上的任何文件。最好让您的应用程序使用 S3 作为所有存储,或者使用其他永久的、可从运行您的应用程序的任何实例访问的机制。
另一件需要考虑的事情是用户会话。如果您以前将会话存储在服务器上,那么您也需要在那里做一些不同的事情。一旦您的应用程序有多个实例在运行,会话数据将不可靠,除非您将它存储在所有实例都可以访问的地方。Elasticache 或 DynamoDB 可能是会话存储的不错选择。