我正面临与架构相关的问题:
我在ElasticBeanstalk中创建了一个新环境并将我的应用推送到那里。到目前为止都很好。我已将其设置为auto scale up/down
。
我的应用程序依赖于文件系统存储(它创建文件然后将它们提供给用户)。我正在使用EBS卷(5gb大)来创建文件,然后将它们推送到S3并从EBS中删除它们。我使用EBS的原因是因为EC2实例中的ephemeral filesystem
。
当AWS扩展新实例时,不会附加EBS卷,因为EBS可以一次附加到一个实例。
当它缩小时,会关闭附有EBS卷的实例,这会让事情变得混乱。
我已添加/etc/fstab
special line,它会自动将EBS卷安装到/data
,但这仅适用于我将文件添加到/etc/fstab
的实例。我想这里的解决方案是创建一个具有该特殊线的自定义AMI image
。但同样,EBS不能同时附加到多个实例,因此它看起来像死路一条。
我在想什么?什么是可能的解决方案或正确的方式?
出于某种原因,我认为使用S3并不是正确的做法。
答案 0 :(得分:1)
S3是一种很好的方法:您的应用程序创建文件,上传到S3,从本地文件系统中删除文件,并递交URL以将文件访问回客户端。完全合理。为什么你不能使用临时存储。实例存储支持的实例具有可用的附加存储,默认情况下已装载到/mnt
。为什么应用程序无法在那里创建文件?如果不需要在实例启动/停止/重启之间保留文件,那么使用EBS没有什么好理由(除非您希望我的自动缩放实例的启动时间更快)。