{"action":"created","issue":{"url":"https://api.github.com/repos/hashicorp/vault/issues/443","repository_url":"https://api.github.com/repos/hashicorp/vault","labels_url":"https://api.github.com/repos/hashicorp/vault/issues/443/labels{/name}","comments_url":"https://api.github.com/repos/hashicorp/vault/issues/443/comments","events_url":"https://api.github.com/repos/hashicorp/vault/issues/443/events","html_url":"https://github.com/hashicorp/vault/issues/443","id":96361135,"number":443,"title":"Standby nodes should proxy traffic, not issue a redirect","user":{"login":"bkrodgers","id":831964,"avatar_url":"https://avatars.githubusercontent.com/u/831964?v=3","gravatar_id":"","url":"https://api.github.com/users/bkrodgers","html_url":"https://github.com/bkrodgers","followers_url":"https://api.github.com/users/bkrodgers/followers","following_url":"https://api.github.com/users/bkrodgers/following{/other_user}","gists_url":"https://api.github.com/users/bkrodgers/gists{/gist_id}","starred_url":"https://api.github.com/users/bkrodgers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bkrodgers/subscriptions","organizations_url":"https://api.github.com/users/bkrodgers/orgs","repos_url":"https://api.github.com/users/bkrodgers/repos","events_url":"https://api.github.com/users/bkrodgers/events{/privacy}","received_events_url":"https://api.github.com/users/bkrodgers/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/hashicorp/vault/labels/core","name":"core","color":"000000"},{"url":"https://api.github.com/repos/hashicorp/vault/labels/enhancement","name":"enhancement","color":"d4c5f9"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":10,"created_at":"2015-07-21T16:33:09Z","updated_at":"2016-02-09T20:03:33Z","closed_at":null,"body":"In issue #389, I asked for the ability to set the health check page to return 200 for standby nodes, so that they live in the load balancer and are ready to take over for a failed node as soon as a new election is made.  Thank you for quickly getting that change made.  However, now that .2 is out and I've tried it, I discovered it doesn't actually work they way I need it to.\r\n\r\nIt looks like Vault standby nodes don't proxy their traffic to the active node, they simply issue a redirect to the client.  That doesn't work, since i have all of my vault nodes behind a load balancer and not directly accessible from outside a private subnet.  Could we consider having Vault proxy instead?  As with my earlier request, what I'm trying to do is reduce the downtime when a node fails.  If only the active node is in the load balancer, Vault has to first detect the failure, elect a new leader, and then a minimum of 2 health checks (Amazon ELB's minimum) have to pass before the new node comes online.\r\n\r\nUltimately I'd still like to see Active/Active be a possibility (#390), but for now proxying instead of redirecting would help."},"comment":{"url":"https://api.github.com/repos/hashicorp/vault/issues/comments/182037322","html_url":"https://github.com/hashicorp/vault/issues/443#issuecomment-182037322","issue_url":"https://api.github.com/repos/hashicorp/vault/issues/443","id":182037322,"user":{"login":"jefferai","id":28627,"avatar_url":"https://avatars.githubusercontent.com/u/28627?v=3","gravatar_id":"","url":"https://api.github.com/users/jefferai","html_url":"https://github.com/jefferai","followers_url":"https://api.github.com/users/jefferai/followers","following_url":"https://api.github.com/users/jefferai/following{/other_user}","gists_url":"https://api.github.com/users/jefferai/gists{/gist_id}","starred_url":"https://api.github.com/users/jefferai/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jefferai/subscriptions","organizations_url":"https://api.github.com/users/jefferai/orgs","repos_url":"https://api.github.com/users/jefferai/repos","events_url":"https://api.github.com/users/jefferai/events{/privacy}","received_events_url":"https://api.github.com/users/jefferai/received_events","type":"User","site_admin":false},"created_at":"2016-02-09T20:03:33Z","updated_at":"2016-02-09T20:03:33Z","body":"> In the case of a failover event where the original primary goes down, the ELB will mark it as unhealthy and Route53 will redirect traffic to the Failover ELB who has a healthy instance in standby. this limits the downtime to only as long as it takes for that instances to elect itself the new primary.\r\n\r\nI believe it actually still takes as long as ELB takes to mark it unhealthy (minimum of ten seconds), whereas depending on how HA in Vault is set up and the nature of Vault becoming unavailable, the new active node should take over in < 1 second.\r\n\r\nThe proposed architecture has benefits with blue/green deployment strategies or if you want your Vault nodes in different availability zones, but still has higher theoretical downtime than need be.\r\n\r\nOf course, everything is theory and what matters is what you can tolerate. If you want absolute minimum downtime possible, relying on ELB health checks will not allow for this. If you want minimum downtime within the constraints of AWS, ELB is fine so long as health check settings are tuned appropriately."}}