Chef 12 High Availability and AWS


I am trying set up Chef 12 High Availability as delineated in the Chef

I am creating 3 instances in ec2.

  1. Primary Backend
  2. Secondary Backend
  3. Primary Frontend

On the primary backend I am adding a second IP to eth0. This will be my VIP
IP. I configure it to allow it to move to the secondary if it needs to.

I am creating four route53 records: (primary backend) (secondary backend) (backend vip) (primary frontend)

My chef-server.rb looks like this:
topology 'ha’
ha[‘provider’] = 'aws’
ha[‘aws_access_key_id’] = 'xxxxxx’
ha[‘aws_secret_access_key’] = 'xxxxxx’
ha[‘ebs_volume_id’] = 'vol-8ef6ae8d’
ha[‘ebs_device’] = ‘/dev/xvdg’

server ‘’,
:ipaddress =>
:role => ‘backend’,
:bootstrap => true

server ‘’,
:ipaddress =>,
:role => ‘backend’

backend_vip ‘’,
:ipaddress =>,
:device => ‘eth0’,
:heartbeat_device => ‘eth0’

server ‘’,
:ipaddress =>,
:role => ‘frontend’

If I paste the HA stuff into /etc/opscode/chef-server.rb on the primary
backend and then run chef-server-ctl reconfigure the process dies with

If I leave the HA config out and run chef-server-ctl reconfigure the
process completes but obviously I do not have HA.

I am wondering if I did the backend VIP stuff wrong. I thought about using
an EIP but those assume a public IP up front and it doesn’t seem to be the
correct solution.

What the heck am I doing wrong???