我希望推出一个web应用程序,它将满足大约100万用户,因此,我将需要扩展到多个web和数据库服务器。在测试了许多不同的解决方案之后,我决定使用(ECS)。
该系统使用对接图像启动实例,但我的web应用程序允许用户上传文件等,因此,目前,文件将上传到不同的码头容器,并在实例终止时丢失。
处理与更改内容异步运行的docker映像的最佳实践是什么?我想到的唯一解决方案是启动一个单独的具有永久存储的EC2实例,该实例将存储所有文件上传。
发布于 2018-04-04 02:42:19
正如您所指出的,您应该将这些Docker容器视为无状态处理。将容器主机(EC2)上本地存储的任何内容视为临时存储。
如果您需要存储文件,那么S3就是最好的选择。它可能是最便宜、最容易安装和最可伸缩的解决方案。
如果需要在文件中存储额外的数据(即元数据),请将文件存储在S3中,元数据存储在DynamoDB中。通常,我过去所做的就是为文件名生成一个UUID,并将其存储在S3中,然后使用UUID作为DynamoDB中的分区键。
超级容易安装,并将规模远远超过100万用户。
https://stackoverflow.com/questions/49638520
复制相似问题