我发现这个链接涉及将静态数据和web api分离为静态s3 Web服务器和用于api的bean stalk应用程序以及用于创建网站的ec2 web服务器。 Charles的答案是准确的,CORS就是你如何解决这两个领域之间的问题。
How to use S3 as static web page and EC2 as REST API for it together? (AWS)
我的问题是你为什么要这样做?
我的一些想法是:
优势 - 我们使用node作为api的Web服务器,这将减轻节点进程的负担。
就是这样。
不仅仅使用Bean Stalk来实现这一切的缺点
增加了CORS的复杂性 更新软件更复杂 看起来像矫枉过正,除非你有大量的静态数据我不
我错过了另一个优势
答案 0 :(得分:6)
将前端逻辑与后端逻辑分离并分别部署它们有很多好处。
第一个重要原因是以这种方式做事可以让您将业务逻辑(您的API)与您的设计(您的前端)分开。
您可以将这两个项目保存在单独的Git存储库中。您可以让设计人员根据需要为前端项目提供尽可能多的更新,而无需为工程师打扰。
在单个整体项目(例如Elastic Beanstalk)中执行此操作:几乎不可能,因为设计人员需要通过工程团队迭代他们的代码。
Web服务器很慢。文件服务器(如S3)速度很快。它们快速的原因是没有代码'运行以从文件服务器访问文件 - 只有一个文件正在下载。
例如,如果您从EC2实例提供单个Web应用程序,这意味着要查看页面,您需要运行一些代码来生成该HTML。
但是,如果将前端代码部署到S3,则可以更快地通过Web浏览器直接下载该文件。
PROTIP :您还可以将您的S3网站置于CloudFront(CDN)之后,通过在世界各地的多个数据中心保留缓存副本来加快您的网站速度。
如果将项目分开并单独部署,则可以更快地进行迭代。
让我们说你的前端团队在网站上发现了一个错误。他们可以在不进行工程设计的情况下轻松修补/发布修复程序。
您的工程师也是如此 - 他们现在有更多时间专注于构建核心应用程序逻辑,并且可以部署修复程序而无需担心UI更改等。
当您按照自己的描述单独部署内容时,您还可以获得简化后端逻辑的好处。
通过让您的核心工程师构建API并停止担心前端问题,您可以比其他方式更快地发布更新。