如何在不 API 中断的情况下升级 AWS API 网关端点
How to upgrade AWS API Gateway endpoints without API interruptions
我的任务是升级我们的 AWS API 网关用来响应请求的服务器/端点。我们正在为集成请求使用 VPC link。这些服务器托管在 AWS Elastic Beanstalk 上。
我们在 API 中只使用了两个资源/方法:/middleware 和 middleware-dev-4 通过这个 VPC link.
由于我们的客户严重依赖我们的 API 我无法轻易更换服务器。我可以创建新服务器并将 API 指向那些服务器,但我不希望我们的 API 服务出现任何停机时间。您能否推荐一种在不影响我们客户的情况下进行此 API 更改的方法?
我见过几个使用金丝雀发布的示例,但它们似乎与 Lambda 函数有关,而不是与 EC2 服务器作为端点的 VPC links。
编辑 --
AWS 回应了,他们同意我应该将新服务器添加到网络负载均衡器中的目标组并注销旧服务器。
您需要更新服务器或端点吗?
如果端点,api 网关有阶段,您的客户使用在某个阶段发布的端点。进行更改并发布新阶段,api 网关将在几秒钟后发布新端点。
如果是服务器,那么api网关就没有太大关系了。如何 运行 服务器取决于您。检查 AWS Elastic Beanstalk blue/green 个部署:
https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.CNAMESwap.html
Because AWS Elastic Beanstalk performs an in-place update when you
update your application versions, your application might become
unavailable to users for a short period of time. To avoid this,
perform a blue/green deployment. To do this, deploy the new version to
a separate environment, and then swap the CNAMEs of the two
environments to redirect traffic to the new version instantly.
顺便检查一下您的 DNS 缓存 设置。 DNS 缓存可能会导致真正的问题和停机。如果您要更改 DNS 上的 CNAME 值,请确保您的客户端没有长时间缓存该 CNAME 值。现在检查那个 cname 的 DNS 缓存是什么,你将需要那个时间段,所以一定要检查。将 DNS 更新为具有最短缓存时间,例如 1 或 5 分钟。等待缓存原来设置的时间段。执行您的 blue/green,更新 CNAME,等待 DNS 缓存时间过期缓存。
我的任务是升级我们的 AWS API 网关用来响应请求的服务器/端点。我们正在为集成请求使用 VPC link。这些服务器托管在 AWS Elastic Beanstalk 上。
我们在 API 中只使用了两个资源/方法:/middleware 和 middleware-dev-4 通过这个 VPC link.
由于我们的客户严重依赖我们的 API 我无法轻易更换服务器。我可以创建新服务器并将 API 指向那些服务器,但我不希望我们的 API 服务出现任何停机时间。您能否推荐一种在不影响我们客户的情况下进行此 API 更改的方法?
我见过几个使用金丝雀发布的示例,但它们似乎与 Lambda 函数有关,而不是与 EC2 服务器作为端点的 VPC links。
编辑 --
AWS 回应了,他们同意我应该将新服务器添加到网络负载均衡器中的目标组并注销旧服务器。
您需要更新服务器或端点吗?
如果端点,api 网关有阶段,您的客户使用在某个阶段发布的端点。进行更改并发布新阶段,api 网关将在几秒钟后发布新端点。
如果是服务器,那么api网关就没有太大关系了。如何 运行 服务器取决于您。检查 AWS Elastic Beanstalk blue/green 个部署:
https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.CNAMESwap.html
Because AWS Elastic Beanstalk performs an in-place update when you update your application versions, your application might become unavailable to users for a short period of time. To avoid this, perform a blue/green deployment. To do this, deploy the new version to a separate environment, and then swap the CNAMEs of the two environments to redirect traffic to the new version instantly.
顺便检查一下您的 DNS 缓存 设置。 DNS 缓存可能会导致真正的问题和停机。如果您要更改 DNS 上的 CNAME 值,请确保您的客户端没有长时间缓存该 CNAME 值。现在检查那个 cname 的 DNS 缓存是什么,你将需要那个时间段,所以一定要检查。将 DNS 更新为具有最短缓存时间,例如 1 或 5 分钟。等待缓存原来设置的时间段。执行您的 blue/green,更新 CNAME,等待 DNS 缓存时间过期缓存。