Closed CharlieDigital closed 2 months ago
Is it possible to route the health check to the sidecar? What would that configuration look like? Is the sidecar already connected to the ALB as well?
Your configuration in the manifest seems fine to me at the first glance. The sidecar health
is listening on path '/health' on 7470, and the health check traffic is routed to that exact place. It should be the sidecar that is responding to the health check. Is that what you observed as well?
But stopping the Neo4j service causes the container to be restarted.
Sounds like running neo4j stop
would kill the main container, and you want to be able to restart the neo4j
without killing the container. Is that correct? In this case, would this help?
Your configuration in the manifest seems fine to me at the first glance. The sidecar health is listening on path '/health' on 7470, and the health check traffic is routed to that exact place. It should be the sidecar that is responding to the health check. Is that what you observed as well?
Appreciate the sanity check!
In following up with Neo4j, it seems like an issue with their container configuration and the solution is to customize the container to allow stopping the service.
I have a Neo4j Community container that I've deployed into ECS using a load balanced web service as Neo4j exposes a web front-end and this makes it easier to connect everything together.
An EFS volume is mounted to maintain the file system between deployments.
The ALB health check was initially pointed to Neo4j's port 7474, but there's a conundrum here as Neo4j Community does not support online backups. So if I
neo4j stop
, this the obviously also triggers the health check to fail and the container cycles before I can take the backup andneo4j start
again.My approach was to consider deploying a sidecar that would respond to the health check from the ALB and route the health check to the sidecar where I can just respond with 200 (for testing) or add some other custom logic to monitor the health status of the Neo4j container.
However, I'm not clear that this is possible.
The configuration seems correct:
The sidecar is listening on port
7470
and exposes the/health
endpoint which returns an HTTP 200.But stopping the Neo4j service causes the container to be restarted.
Manifest below: