When I deployed CF in AWS, I put an ELB in front of my two Go Routers to balance the incoming traffic. After the CF deployment completes all the VMs are running. However, one of the Go Router is showed as out of service in the Instances
tab in the ELB dashboard.
To debug this problem I looked in these three locations:
- Check ELB itself
- Check if the Go Router is working
- Check networking between the Go Router and ELB
First I start by curl
ing the ELB without problems and one of the Go Router instance is in service, so ELB itself should not be a problem.
Second, I then run bosh vms
to verify the Go Router is running, ssh
into the Go Router VM and run monit summary
, all the processes are running.
Those quick checks lead me to look into the third possibility. I observed that the subnet which the "out of service" Go Router belongs to is not configured in the Availability Zones for the ELB. In order to make the ELB route traffic to an AZ we have to configure it in the Availability Zones.
The fix is pretty simple, go to AWS console, find Load Balancers
in EC2
dashboard, select the ELB we are debugging and then click Instances
Tab, click Edit Availability Zones
, add the subnet which the "out of service" Go Router belongs to, click Save
. Now I can see both of my Go routers are in Service in my ELB!