Elastic Beanstalk 实例未附加到自定义负载均衡器
Elastic Beanstalk instances not being attached to custom load balancer
我有一个带有以下 .ebextensions
配置文件的 Elastic Beanstalk 实例来设置自定义负载均衡器。
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"
但是,每当重建 beantalk 环境时,我的自定义负载均衡器都会按定义创建,但 EC2 实例本身并未附加到它。
如何让实例使用我的自定义负载均衡器?
您需要通过弹性 beantalk 命名空间配置弹性 beantalk 负载均衡器。您不应通过 Type: AWS::ElasticLoadBalancing::LoadBalancer
设置全新的负载均衡器,而应以这种方式指定您的负载均衡器配置(假设您要根据发布的配置使用 Classic Load Balancer)。
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
我有一个带有以下 .ebextensions
配置文件的 Elastic Beanstalk 实例来设置自定义负载均衡器。
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"
但是,每当重建 beantalk 环境时,我的自定义负载均衡器都会按定义创建,但 EC2 实例本身并未附加到它。
如何让实例使用我的自定义负载均衡器?
您需要通过弹性 beantalk 命名空间配置弹性 beantalk 负载均衡器。您不应通过 Type: AWS::ElasticLoadBalancing::LoadBalancer
设置全新的负载均衡器,而应以这种方式指定您的负载均衡器配置(假设您要根据发布的配置使用 Classic Load Balancer)。
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