使用S3作为静态网页,将EC2作为REST API一起使用? (AWS)

时间:2017-01-04 15:27:07

标签: node.js amazon-web-services amazon-s3 amazon-ec2

我发现这个链接涉及将静态数据和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的复杂性 更新软件更复杂 看起来像矫枉过正,除非你有大量的静态数据我不

我错过了另一个优势

1 个答案:

答案 0 :(得分:6)

将前端逻辑与后端逻辑分离并分别部署它们有很多好处。

代码分离

第一个重要原因是以这种方式做事可以让您将业务逻辑(您的API)与您的设计(您的前端)分开。

您可以将这两个项目保存在单独的Git存储库中。您可以让设计人员根据需要为前端项目提供尽可能多的更新,而无需为工程师打扰。

在单个整体项目(例如Elastic Beanstalk)中执行此操作:几乎不可能,因为设计人员需要通过工程团队迭代他们的代码。

部署分离

Web服务器很慢。文件服务器(如S3)速度很快。它们快速的原因是没有代码'运行以从文件服务器访问文件 - 只有一个文件正在下载。

例如,如果您从EC2实例提供单个Web应用程序,这意味着要查看页面,您需要运行一些代码来生成该HTML。

但是,如果将前端代码部署到S3,则可以更快地通过Web浏览器直接下载该文件。

PROTIP :您还可以将您的S3网站置于CloudFront(CDN)之后,通过在世界各地的多个数据中心保留缓存副本来加快您的网站速度。

迭代速度更快

如果将项目分开并单独部署,则可以更快地进行迭代。

让我们说你的前端团队在网站上发现了一个错误。他们可以在不进行工程设计的情况下轻松修补/发布修复程序。

您的工程师也是如此 - 他们现在有更多时间专注于构建核心应用程序逻辑,并且可以部署修复程序而无需担心UI更改等。

更简单的产品逻辑

当您按照自己的描述单独部署内容时,您还可以获得简化后端逻辑的好处。

通过让您的核心工程师构建API并停止担心前端问题,您可以比其他方式更快地发布更新。