AWS Beanstalk中的应用程序数据文件夹

时间:2019-10-27 21:15:46

标签: amazon-web-services amazon-elastic-beanstalk

我正在将现有的PHP应用程序转移到Elastic Beanstalk,并且有一个新手问题。我的应用程序有一个数据文件夹,该文件夹会随着时间的推移而增长和变化,并且当前可能会变得很大,该文件夹是应用程序根目录中的子文件夹。在传统的开发模型中,我只是上传更改的PHP文件并使用同一数据文件夹进行操作,如何在Elastic Beanstalk中做到这一点?

我不想每次部署新版本的应用程序时都必须下载和上传数据文件夹。在AWS Beanstalk中执行此操作的最佳实践是什么?

TIA

彼得

2 个答案:

答案 0 :(得分:0)

这是一个持续部署的问题。

Elastic BeanStalk支持来自AWS CodePipeline的CD:https://aws.amazon.com/getting-started/tutorials/continuous-deployment-pipeline/

要解决“随着时间的增长和变化,并且当前文件夹可能是应用程序根目录中的子文件夹,它可能会变得很大”,可以使用CodeCommit使用Git对代码进行版本控制。如果使用应用程序对数据文件夹进行版本控制,则部署将包括该文件夹。

如果您可以将数据卸载到对象存储(S3)或数据库(RDS / DynamoDB / etc)中,则是更好的做法。

答案 1 :(得分:0)

根据AWS文档here,Elastic Beanstalk应用程序在没有持久性本地存储的EC2实例上运行,因此,您的EB应用程序应尽可能无状态,并应使用其中一个持久存储。 AWS提供的存储产品。

持久存储的常见策略是使用Amazon EFS或弹性文件服务。如将EFS与Elastic Beanstalk here结合使用的文档所述:

  

您的应用程序可以像本地存储一样对待已安装的Amazon EFS卷,因此您无需更改应用程序代码即可扩展到多个实例。

您的EFS驱动器本质上是一个已安装的网络驱动器。存储在EFS中的文件将在安装了文件系统的所有实例之间均可访问,并且将持续到实例终止和/或扩展事件之后。

您可以了解有关EFS here以及将EFS与Elastic Beanstalk here结合使用的更多信息。