【问题标题】:AWS setup: moving single page static application frontend to S3 (from web server)AWS 设置:将单页静态应用程序前端移动到 S3(从 Web 服务器)
【发布时间】:2020-09-11 02:53:59
【问题描述】:

我当前的网站(带有 CORS + API 的单页应用程序)部署在 AWS EC2 实例上,并通过 ALB 提供服务(主要是为了更轻松地设置 HTTPS,因为我现在只覆盖一个区域)。 Web 服务器被配置为为单页应用程序提供服务,但这就是它在前端所做的一切。我想将单页应用程序移至 S3,从而将后端与前端完全分开。问题是,就 AWS 设置而言,最有效的方法是什么?我可以想出以下几点:

  • 将域指向 S3 实例以提供前端文件,将 API 调用指向 ALB 公有 DNS 地址
  • 保持指向 ELB 的域不变,将端口 80 和 443 路由到 S3,更改 API 端口并将该端口路由到 EC2
  • ...

任何帮助表示赞赏。

【问题讨论】:

    标签: amazon-web-services amazon-s3 amazon-ecs amazon-alb


    【解决方案1】:

    如果您尝试完全分离前端和后端的基础架构但保持相同的域,您可以使用 CloudFront。

    在 CloudFront 中,您将在您的分配中创建 2 个源:

    • 默认来源是 S3 静态网站。
    • 然后是指向原始 ALB 的附加源。

    您将配置此 CloudFront 分配的行为,以便当路径与特定模式(即api/*)匹配时,它将流量转发到 ELB。如果不匹配,它将默认为您的 S3 存储桶。

    查看Can I use a single CloudFront web distribution to serve content from multiple origins using multiple behaviors? 文章,该文章涵盖了与我概述的类似行为。

    【讨论】:

    • 与仅将域指向 S3 以服务应用程序然后从应用程序直接对负载均衡器进行 API 调用相比,此设置是否有任何优势?谢谢。
    • 因此,与直接指向 S3 相比,一个优势是您可以拥有有效的 SSL(s3 SSL 仅适用于 S3 域,而不适用于您的自定义域)。一切都将通过一个域,从而无需关心 CORS 的白名单。此外,您还将获得 CloudFront 的优势,例如智能缓存、Edge 网络以缩短响应时间并支持 WAF 等其他服务。
    • 没问题,有一个美好的夜晚:)
    猜你喜欢
    • 2014-02-20
    • 2013-04-26
    • 1970-01-01
    • 2014-09-30
    • 1970-01-01
    • 1970-01-01
    • 2020-10-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多