AWS NLB至ECS集群运行状况检查失败

时间:2019-05-21 21:34:28

标签: amazon-web-services amazon-ecs aws-load-balancer

我已经配置了网络负载平衡器,以通过端口80将TCP流量路由到ECS群集

ECS集群正在Fargate配置中运行ASP.NET Core 2.2 API任务。 API的基本路由为http://ip_address:80/api/v1/

首先,一切正常,我可以访问负载平衡器的DNS并将请求路由到适当的.NET API路由

但是,最终在NLB上进行运行状况检查失败,将容器排空并更换新容器。

使用应用程序负载平衡器,我只需配置运行状况检查以击中API上的/healthcheck路由,一切都会好起来的。

但是,不能以这种方式配置Network Ba​​lancer。

我的问题是:对ECS容器进行健康检查的策略是什么?

1 个答案:

答案 0 :(得分:0)

好的,所以答案很简单...

您只需在/路径上设置资源,以便NLB得到响应

我对asp.net核心的具体解决方案:

ASP.NET Core 2.2为此具有一个built in package。只需在Startup.cs类中添加以下内容

将服务添加到服务集合

public void ConfigureServices(IServiceCollection services)
{
    services.AddHealthChecks();
}

配置健康检查

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
    // Network Load Balancer hits this path for the health check
    app.UseHealthChecks("/", 80);
    ...
}