AWS EC2 上的 Node.js RESTful API 服务器与 AWS API 网关

标签 node.js amazon-web-services amazon-ec2 aws-lambda aws-api-gateway

我有一个 node.js RESTful API 应用程序。没有 Web 界面(至少目前是这样),它仅用作由其他服务调用的 API 端点。

我想将它托管在亚马逊的 AWS 云上。我对两个选项感到困惑

  1. 使用普通的 EC2 托管,只提供托管 url 作为 API 端点

  1. 使用亚马逊的 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/

相关文章:

amazon-web-services - 在 AWS Lambda 超时时获取通知

amazon-web-services - AWS Application Load Balancer 未传递 x-forwarded-for header

javascript - Node.js 错误 : "Cannot assign to read only property ' _connections'"

node.js - NPM 查看软件包的最新*稳定*版本

node.js - 在 mongodb 上按排序顺序插入文档

node.js - 如何根据 Amazon Pay 的计费协议(protocol)自动捕获?

amazon-web-services - 必须在构建器或设置环境中提供显式区域以提供区域

hadoop - 在 Hortonworks Hadoop (AWS EC2) 上访问 WebHDFS

amazon-web-services - Cloudformation 模板给出 " Non-Windows instances with a virtualization type of ' hvm' 目前不支持此实例类型

macos - 使用 scp 将文件从 Mac OS 复制到 Amazon EC2 实例时出现权限被拒绝错误