I want to deploy Keepalived in the AWS autoscalling group. The issue that Keepalived need to know ip address of the each node in the cluster, that is difficult in the elastic environment, where we can't manage ip address, nodes can be added and removed. So we need to have some a service discovery.

What is the best way to implement service (node) discovery if you don't have a control on ip addresses?


Assuming this is a basic HTTP app the best way to register and deregister services with a load balancer is with an Elastic Load Balancer (ELB). Since you are already using an ASG this can be configured to be done automatically.

You can also specify the number of health checks that must pass before a node is put into service and the number that must pass before it is taken out of service.

Since you mentioned keepalive, the connection timeout can also be configured and you can optionally turn on connection draining.

  • Unfortunately, no. I need to deploy failover cluster where only one node can be master. Plus cluster components ned to communicate with each other. – Vadym Fedorov Jul 18 '15 at 5:16
  • That makes things more complicated and means an ELB is probably out of the question. You could use an EIP and the AWS SDK to automatically cutover in the case of failure. Alternatively you could just use DNS to cutover. – JaredHatfield Jul 19 '15 at 0:41
  • Yeap, I finally come to idea that for cluster that requires static is doesn't make sense to use ASG without service discovery like Consul – Vadym Fedorov Jul 19 '15 at 8:30

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.