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
curling 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!