如何解决将Django应用程序从herokucelery / redis迁移到AWS Fargate / Lambda
对于我对AWS的一点了解提前道歉
我正在尝试在Heroku上的当前设置与迁移到AWS之间进行比较。由于运行的某些机器学习模型,我在Heroku上遇到了一些内存问题,而Heroku似乎太昂贵了。
建议我使用Fargate迁移到AWS,这将更适合我的应用程序。以下是我的整个体系结构,希望能对我所拥有的东西以及打算去的地方提供一些指导。
在heroku上运行的django应用程序。
功能的基础是用户从他们的移动设备上传视频并将其上传到s3。来自SNS的消息发送到我的Heroku服务器,表明上传已完成。服务器启动一个celery任务,该任务从s3下载视频,并使用机器学习模型进行自然语言处理,然后将结果保存到我的postresql数据库中。显然,这非常耗费计算资源,因此我遇到了一些内存问题,可以预见到扩展问题。
经过大量调整和无济于事之后,我决定转向AWS,并利用与运行更多内存密集型任务的heroku相比所见的一些成本优势。
我还应该提到,这个django项目涉及一个Web界面,而不仅仅是REST Api。
就AWS而言,我正在寻找一些方向。可能只是我应该深入研究的体系结构的粗略轮廓。
我的第一个计划是将我的应用程序进行docker化然后从那里去...但是我对我的应用程序(网站,rest api,工作线程)如何适合AWS生态系统有些困惑。
解决方法
AWS非常适合您描述的应用程序。 AWS Fargate / RDS将托管您的Django应用程序。您可以选择使用AWS Batch处理您的处理。一项巨大的优势就是能够根据您的应用程序的需求进行扩展。
此图像是构建应用程序的一种可能方式。要达到这一点需要做很多工作,但是AWS为IMO的合理成本提供了强大的功能和灵活性。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。