我的任务是升级我们的AWS APIGateway用于响应请求的服务器/端点。我们使用VPC链接进行集成请求。这些服务器托管在AWS弹性豆柄上。
我们在API中只使用两种资源/方法:通过这个VPC链接的/middleware和中间件dev-4。
由于我们的客户严重依赖我们的API,所以我不能轻易地交换服务器。我可以创建新的服务器并将API指向这些服务器,但是我不希望API服务中有任何停机时间。您能推荐一种在不影响我们的客户的情况下进行这种API更改的方法吗?
Iv‘已经看到了几个使用金丝雀版本的例子,但它们似乎属于Lambda函数,而不是EC2服务器作为端点的VPC链接。
编辑--
AWS做出了回应,他们同意我应该将新服务器添加到网络负载均衡器中的目标组中,并取消旧服务器的注册。
发布于 2022-02-04 14:36:35
您需要更新服务器或端点吗?
如果端点,api网关有阶段,您的客户使用在某个阶段发布的端点。进行更改&发布新阶段,api网关将在几秒钟后发布新的端点。
如果是服务器,那么api网关与它没有多大关系。这取决于你如何运行服务器。检查AWS弹性豆柄蓝色/绿色部署:
https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.CNAMESwap.html
,因为AWSElasticBean秸秆在更新应用程序版本时执行就地更新,您的应用程序可能会在短时间内对用户不可用。要避免这种情况,请执行蓝色/绿色部署。为此,请将新版本部署到单独的环境中,然后交换两个环境的CNAME,以便立即将通信量重定向到新版本。
顺便问一下,请检查您的DNS缓存设置。DNS缓存可能会导致实际问题&停机时间。如果要在DNS上更改CNAME值,请确保客户端在很长时间内不缓存该CNAME值。现在检查一下那个cname的DNS缓存是什么,您将需要那个时间段,所以请确保检查。更新DNS,使其具有最小的缓存时间,如1或5分钟。等待最初为缓存设置的时间段。执行蓝色/绿色操作,更新CNAME,等待DNS缓存时间过期。
https://stackoverflow.com/questions/70987776
复制相似问题