EC2 或 S3 来托管 AngularJS 应用程序?
EC2 or S3 to host AngularJS app?
我想启动 AngularJS 应用程序的生产版本,我发现 Amazon AWS 是一个很棒的托管套件。由于 AngularJS 本质上是静态的,它可以托管在 S3 存储上,或者托管在具有 node.js 后端的 EC2 服务器上。
这些解决方案中的任何一个都适合我的部署方法,所以问题是,我(理论上)是否会从一个或另一个中获得更好的性能,为什么?在 S3 上托管专业网站前端有什么问题吗?有没有人对这两种方法都有经验?该站点涉及流式音频、视频和潜在的许多用户。
任何建议表示赞赏。
如果您坚持使用 S3 作为前端,那么在审查您的要求时,我建议您使用 Cloudfront With S3,原因是:
S3 can't handle custom HTTP routes. Since "export" isn't a file S3
doesn't know what to do. In order to properly handle Angular routes
you must use an actual HTTP Server like Nginx, Apache, IIS.
您可以阅读这些博文以获取更多信息:
How to host your Angular 2 application in AWS with S3
Using AWS CloudFront to serve an SPA hosted on S3
现在转到您提到的使用 EC2 托管的第二个选项,我认为使用该选项可以让您更好地控制您的环境,并在扩展方面也更灵活。
谢谢
1) S3 Bucket + CloudFront (CDN) 对于静态文件服务来说真的很快。 Angular 缩小的应用程序是一组静态文件,在这里效果最好。对于这些缩小文件的构建,我建议使用 CI/CD 过程或在本地构建它们,然后将它们上传到 S3。
2) EC2 需要更多的设置工作,它会消耗资源,静态文件或 Angular 没有必要(除非您使用 Angular Universal 来提供动态内容服务),并且 Node.js 不推荐用于静态文件(Node.js get 被阻止,因为它是单线程的,所以最好让静态文件远离它)。
这是一篇关于该主题的好文章:
https://www.quora.com/Should-I-use-AWS-EC2-to-host-an-Angular-web-app-or-AWS-S3
更新时间:2020 年 1 月 13 日
另一种方式,我们可以使用 S3 托管 Angular 应用程序并启用网站托管
我想启动 AngularJS 应用程序的生产版本,我发现 Amazon AWS 是一个很棒的托管套件。由于 AngularJS 本质上是静态的,它可以托管在 S3 存储上,或者托管在具有 node.js 后端的 EC2 服务器上。
这些解决方案中的任何一个都适合我的部署方法,所以问题是,我(理论上)是否会从一个或另一个中获得更好的性能,为什么?在 S3 上托管专业网站前端有什么问题吗?有没有人对这两种方法都有经验?该站点涉及流式音频、视频和潜在的许多用户。
任何建议表示赞赏。
如果您坚持使用 S3 作为前端,那么在审查您的要求时,我建议您使用 Cloudfront With S3,原因是:
S3 can't handle custom HTTP routes. Since "export" isn't a file S3 doesn't know what to do. In order to properly handle Angular routes you must use an actual HTTP Server like Nginx, Apache, IIS.
您可以阅读这些博文以获取更多信息:
How to host your Angular 2 application in AWS with S3
Using AWS CloudFront to serve an SPA hosted on S3
现在转到您提到的使用 EC2 托管的第二个选项,我认为使用该选项可以让您更好地控制您的环境,并在扩展方面也更灵活。
谢谢
1) S3 Bucket + CloudFront (CDN) 对于静态文件服务来说真的很快。 Angular 缩小的应用程序是一组静态文件,在这里效果最好。对于这些缩小文件的构建,我建议使用 CI/CD 过程或在本地构建它们,然后将它们上传到 S3。
2) EC2 需要更多的设置工作,它会消耗资源,静态文件或 Angular 没有必要(除非您使用 Angular Universal 来提供动态内容服务),并且 Node.js 不推荐用于静态文件(Node.js get 被阻止,因为它是单线程的,所以最好让静态文件远离它)。
这是一篇关于该主题的好文章: https://www.quora.com/Should-I-use-AWS-EC2-to-host-an-Angular-web-app-or-AWS-S3
更新时间:2020 年 1 月 13 日
另一种方式,我们可以使用 S3 托管 Angular 应用程序并启用网站托管