Amazon web services API网关是否引入了显著的延迟?
我正在试图找出我通话中的延迟是从哪里来的,请让我知道这些信息是否可以以更清晰的格式呈现 一些背景:我有两个系统——系统A和系统B。我手动(通过Postman)命中系统A上的一个端点,该端点调用系统B上的一个端点。 系统A托管在EC2实例上Amazon web services API网关是否引入了显著的延迟?,amazon-web-services,amazon-ec2,lambda,aws-lambda,aws-api-gateway,Amazon Web Services,Amazon Ec2,Lambda,Aws Lambda,Aws Api Gateway,我正在试图找出我通话中的延迟是从哪里来的,请让我知道这些信息是否可以以更清晰的格式呈现 一些背景:我有两个系统——系统A和系统B。我手动(通过Postman)命中系统A上的一个端点,该端点调用系统B上的一个端点。 系统A托管在EC2实例上 当系统B托管在API网关后面的Lambda函数上时 通话延迟为125毫秒 当系统B托管在 EC2实例,呼叫延迟为8毫秒 当系统B运行时 托管在API网关后面的EC2实例上 电话是100毫秒 因此,我的假设是,API网关与Lambda函数配合使用时,延迟会增
- 当系统B托管在API网关后面的Lambda函数上时 通话延迟为125毫秒
- 当系统B托管在 EC2实例,呼叫延迟为8毫秒
- 当系统B运行时 托管在API网关后面的EC2实例上 电话是100毫秒
当添加Lambda时,您只看到一个小的惩罚的原因是APIGW已经有很多与Lambda的已建立连接,因为它是一个具有少量IP的单一端点。APIGW中的实际开销(与连接无关)应类似于Lambda开销。从Amazon支持部门获悉: 使用API网关,需要从客户端转到API网关, 也就是说,离开专有网络,出去上网,然后再回来 到您的VPC转到其他EC2实例,然后返回API 网关,这意味着再次离开VPC,然后返回到您的 首先是EC2实例 因此,预计会有额外的延迟。降低成本的唯一方法 延迟是为了添加API缓存,而API缓存只有在 如果您请求的内容是静态的,而不是 不断更新。当 项已从缓存中删除,需要从系统中提取, 但这将降低大多数电话 所以我想延迟是正常的,这是不幸的,但希望不是我们必须不断向前处理的事情 这可能不完全是原始问题所要求的,但我将添加一条关于CloudFront的评论 根据我的经验,CloudFront和API网关平均每个HTTPS请求都会增加至少100毫秒,甚至更多 这是因为为了保护API调用的安全,API网关在其所有组件中强制SSL。这意味着,如果您在后端使用SSL,您的第一个API调用将必须协商3次SSL握手:
资料来源:有趣的观察。我有一个关于可能原因的理论,但需要一些信息来测试它。为了确认,API网关实例与系统A位于同一区域,系统A是EC2实例——正确吗?哪个地区?对“System A”计算机上的API网关端点地址主机名执行
nslookup
,并在注释中提及您在响应中得到的IP地址。这些地址在许多API网关终结点之间共享,因此在此处显示它们不会暴露任何敏感信息,只要您不提及您的终结点主机名。VPC终结点应节省一些延迟: