我有一个 node.js RESTful API 应用程序。没有 Web 界面(至少目前是这样),它仅用作由其他服务调用的 API 端点。
我想将它托管在亚马逊的 AWS 云上。我对两个选项感到困惑
- 使用普通的 EC2 托管,只提供托管 url 作为 API 端点
或
- 使用亚马逊的 API Gateway并在 AWS Lambda 上运行我的代码
或者我可以只在 EC2 上运行我的代码并使用 API 网关吗?
当涉及到 node.js RESTful api 应用程序时,我对 EC2 和 API 网关有何不同感到困惑
最佳答案
将 API 网关视为一种 API 管理服务。它不托管您的应用程序代码,它确实为您的所有 API 提供了一个集中式接口(interface),并允许您为您的 API 配置访问限制、响应缓存、速率限制和版本管理等内容。
当您使用 API 网关时,您仍然需要将 API 的后端应用程序代码托管在 Lambda 或 EC2 等地方。您应该比较 Lambda 和 EC2 以确定哪个最适合您的需求。 EC2 提供了一个虚拟 Linux 或 Windows 服务器,您可以在上面安装任何东西,但您需要为服务器运行的每一秒付费。使用 EC2,您还必须考虑跨多个服务器扩展您的应用程序并平衡请求的负载。 AWS Lambda 托管您的函数并按需执行它们,自动扩展函数容器的数量,您只需为执行次数付费(并且每月包含大量免费执行次数)。除非您每个月都有大量 API 请求,否则 Lambda 的成本会低得多。
关于AWS EC2 上的 Node.js RESTful API 服务器与 AWS API 网关,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48594691/