EC2或S3托管AngularJS应用程序?

EC2或S3托管AngularJS应用程序?,angularjs,amazon-web-services,amazon-s3,amazon-ec2,hosting,Angularjs,Amazon Web Services,Amazon S3,Amazon Ec2,Hosting,我想发布AngularJS应用程序的生产版本,我发现AmazonAWS是一个很棒的托管套件。由于AngularJS本质上是静态的,所以它可以托管在S3存储上,或者托管在带有node.js后端的EC2服务器上 这两种解决方案中的任何一种都适合我的部署方法,所以问题是,我(理论上)会从其中一种获得更好的性能吗?为什么?在S3上托管专业网站前端有什么问题吗?有人对这两种方法都有经验吗?该网站涉及流媒体音频、视频和潜在的许多用户 谢谢你的建议 在审查您的需求时,如果您坚持使用S3作为前端,我建议您使用S

我想发布AngularJS应用程序的生产版本,我发现AmazonAWS是一个很棒的托管套件。由于AngularJS本质上是静态的,所以它可以托管在S3存储上,或者托管在带有node.js后端的EC2服务器上

这两种解决方案中的任何一种都适合我的部署方法,所以问题是,我(理论上)会从其中一种获得更好的性能吗?为什么?在S3上托管专业网站前端有什么问题吗?有人对这两种方法都有经验吗?该网站涉及流媒体音频、视频和潜在的许多用户


谢谢你的建议

在审查您的需求时,如果您坚持使用S3作为前端,我建议您使用S3,原因是:

S3无法处理自定义HTTP路由。因为“导出”不是一个S3文件 不知道该怎么办。为了正确处理角度路线 您必须使用实际的HTTP服务器,如Nginx、Apache和IIS

您可以阅读以下博客文章了解更多信息:

现在转到您提到的使用EC2托管的第二个选项,我认为使用该选项将使您能够更好地控制您的环境,并在扩展方面具有更大的灵活性

感谢您,S3 Bucket+CloudFront(CDN)对于静态文件服务来说速度非常快。Angular minified应用程序是一组静态文件,在这里效果最好。对于那些缩小的文件的构建,我建议使用CI/CD进程,或者在本地构建它们,然后将它们上传到S3

2) EC2需要更多的设置工作,它会消耗资源,静态文件或Angular不需要EC2(除非您使用Angular Universal提供动态内容服务),并且不建议将Node.js用于静态文件(Node.js get被阻止,因为它是单线程的,所以最好远离静态文件)

下面是一篇关于这个主题的好文章: 更新日期:2020年1月13日

另一种方式,我们可以用S3托管Angular应用程序,并启用网站托管


在玩了一些Cloudfront之后,我发现S3+Cloudfront的性能非常好:)在写了这篇文章之后的某个时候,我发现自己回到了EC2,因为不必学习Lambda,就可以更好地控制URL重写。然而,S3+Cloudfront比购买另一台EC2服务器便宜得多(免费)。