0
votes

I have an Elastic Beanstalk instance with the following .ebextensions config file to setup a custom load balancer.

Resources:
  ApiLoadBalancer:
    Type: AWS::ElasticLoadBalancing::LoadBalancer
    Properties:
      ConnectionSettings:
         IdleTimeout: 900
      Listeners:
      - InstancePort: '80'
        InstanceProtocol: 'HTTP'
        LoadBalancerPort: '443'
        Protocol: 'HTTPS'
        SSLCertificateId: 'certificate-id'
      HealthCheck:
         HealthyThreshold: '3'
         Interval: '30'
         Target: 'HTTP:80/api/healthcheck'
         Timeout: '5'
         UnhealthyThreshold: '5'
      AvailabilityZones:
      - "us-east-1a"

However, whenever the beanstalk environment is rebuilt, my custom load balancer is created as defined, however the EC2 instances themselves are not attached to it.

How do I get the instances to use my custom load balancer?

1

1 Answers

1
votes

You need to configure elastic beanstalk load balancer via elastic beanstalk namespaces. Instead of setting up the whole new load balancer via Type: AWS::ElasticLoadBalancing::LoadBalancer, you should specify your load balancer configuration in this way (assuming that you want to use Classic Load Balancer, based on the posted configuration).

option_settings:
  aws:elb:listener:443:
    ListenerProtocol: HTTPS
    SSLCertificateId: arn:aws:acm:us-east-2:123456789012:certificate/12345678-12ab-34cd-56ef-12345678
    InstancePort: 80
    InstanceProtocol: HTTP
  aws:elb:listener:
    ListenerEnabled: false