ALB 选择 Target group 实例的方式可以通过以下因素进行配置:
1.默认情况下,ALB 通过轮询方法向实例分发请求。这意味着,无论实例是否已回答之前的请求,它都会将下一个请求发送到下一个实例。
2.你可以使用会话粘滞来配置 ALB,以便在某个会话期间将所有请求发送到相同的实例。这可以通过设置目标组上的“Sticky sessions”选项来实现。
3.你还可以配置 ALB,使其根据某些特定条件选择实例。一些选项包括 IP 地址、HTTP 标头、请求路径等。你可以在目标组上设置规则来控制请求流量的分配。
例如,以下代码示例演示了如何将 ALB 配置为仅将请求发送到健康实例。
Resources:
Alb:
Type: AWS::ElasticLoadBalancingV2::LoadBalancer
Properties:
Name: alb-example
Subnets:
- subnet-12345678
- subnet-87654321
SecurityGroups:
- sg-123abc456def
Scheme: internet-facing
TargetGroup:
Type: AWS::ElasticLoadBalancingV2::TargetGroup
Properties:
Name: target-group-example
Protocol: HTTP
Port: 80
VpcId: vpc-12345678
HealthCheckIntervalSeconds: 30
HealthCheckTimeoutSeconds: 5
HealthyThresholdCount: 2
UnhealthyThresholdCount: 2
Matcher:
HttpCode: "200"
Targets:
- Id: i-0123456789abcdef
Port: 80
- Id: i-9876543210fedcba
Port: 80
TargetType: instance
Listener:
Type: AWS::ElasticLoadBalancingV2::Listener
Properties:
LoadBalancerArn:
Ref: Alb
Protocol: HTTP
Port: 80
DefaultActions:
- Type: forward
TargetGroupArn:
Ref: TargetGroup
在这个例子中,我们在目标组中设置了两个实例。我们还可以看到“Matcher”选项,这表明如果返回的 HTTP 状态代码为 200,实例将会被视为健康。