【问题标题】:EC2 or S3 to host AngularJS app?EC2 或 S3 托管 AngularJS 应用程序?
【发布时间】:2018-06-19 13:53:24
【问题描述】:

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

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

任何建议表示赞赏。

【问题讨论】:

    标签: angularjs amazon-web-services amazon-s3 amazon-ec2 hosting


    【解决方案1】:

    如果您坚持将 S3 用于前端,那么在审查您的要求时,我建议您使用 Cloudfront 与 S3 ,原因是:

    S3 无法处理自定义 HTTP 路由。由于“导出”不是文件 S3 不知道该怎么办。为了正确处理 Angular 路线 您必须使用真正的 HTTP 服务器,例如 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 To host 的第二个选项,我认为使用该选项可以让您更好地控制您的环境并在扩展方面也有更大的灵活性。

    谢谢

    【讨论】:

    • 在玩过 Cloudfront 之后,我发现 S3 + Cloudfront 的性能很棒:)
    • 写完这篇文章后的某个时候,我发现自己又回到了 EC2,因为无需学习 Lambda 就可以更好地控制 URL 重写。但是,S3 + Cloudfront 比购买另一台 EC2 服务器便宜得多(免费)。
    【解决方案2】:

    1) S3 Bucket + CloudFront (CDN) 非常适合静态文件服务。 Angular 缩小应用程序是一组静态文件,在这里效果最好。对于这些缩小文件的构建,我建议使用 CI/CD 流程或在本地构建它们,然后将它们上传到 S3。

    2) EC2 需要更多的设置工作,它会消耗资源,对于静态文件或 Angular(除非您使用 Angular Universal 进行动态内容服务)没有必要,并且不建议将 Node.js 用于静态文件(Node .js 被阻止,因为它是单线程的,因此最好的做法是让静态文件远离它)。

    这是一篇关于该主题的好文章: https://www.quora.com/Should-I-use-AWS-EC2-to-host-an-Angular-web-app-or-AWS-S3

    【讨论】:

      【解决方案3】:

      更新日期:2020 年 1 月 13 日

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

      https://aws.amazon.com/getting-started/projects/build-serverless-web-app-lambda-apigateway-s3-dynamodb-cognito/module-1/

      【讨论】:

        猜你喜欢
        • 2010-11-09
        • 2018-05-22
        • 1970-01-01
        • 2022-01-08
        • 2017-03-22
        • 2011-11-16
        • 1970-01-01
        • 2016-04-14
        • 2015-09-05
        相关资源
        最近更新 更多