我在 Amazon Route 53 中对指向具有多个目标组的 Application Load Balancer 的别名记录使用运行状况检查。为什么我的别名记录没有标记为正常?
在为别名记录将评估目标运行状况设置为是时,Route 53 将评估别名目标值所指定的资源的运行状况。对于 Application Load Balancer,Route 53 将考虑与负载均衡器后面的目标组关联的运行状况检查。
当 Application Load Balancer 中的所有目标组都正常时,Route 53 才会将别名记录标记为正常。如果目标组包含至少一个正常实例,则目标组运行状况检查通过。然后,Route 53 会根据您的路由策略返回记录。例如,如果您使用基于延迟的路由,则 Route 53 会从您的 DNS 客户端或解析程序的位置返回延迟最短的记录。
如果 Application Load Balancer 中的任何目标组不正常,则别名记录无法通过 Route 53 运行状况检查。然后,Route 53 会根据您的路由策略返回正常记录之一。例如,如果您使用基于延迟的路由,则 Route 53 会从您的 DNS 客户端或解析程序的位置返回延迟最短的正常记录,而非延迟较短的不正常记录。
注意:如果负载均衡器后面的所有目标组都为空(无实例),则 Route 53 也会将记录视为不正常。
使用您的首先方法(如 dig 或 nslookup)来查询 Application Load Balancer 的域名。注意您的查询的输出。
如果除了 Application Load Balancer 的别名记录外,Route 53 还返回了其他记录,请检查负载均衡器后面的目标组:
- 如果目标组中的所有实例都不正常,则 Route 53 会将记录视为不正常。有关如何在 Elastic Load Balancing 控制台中执行运行状况检查、如何修改运行状况检查设置以及运行状况检查的原因代码的更多信息,请参阅目标组的运行状况检查。
- 如果负载均衡器后面的所有目标组都为空(其中无实例),则 Route 53 也会将记录视为不正常。请参阅向您的目标组注册目标来将实例添加到目标组。
故障排除示例
此表显示域 example.com 的示例 Route 53 配置。示例客户端/解析程序位于 us-east-1 区域中。示例 Application Load Balancer 包含 2 个目标组 TargetGroup1 和 TargetGroup2,每个目标组包含 2 个实例。示例配置使用基于延迟的路由。有指向 Application Load Balancer 的别名记录和标准 A 记录:
名称 | 类型 | 值 | 评估目标运行状况 | 可用区 |
---|---|---|---|---|
example.com | A | ALIAS ALB-XXXXXX.us-east-1.elb.amazonaws.com | 是 | us-east-1 |
example.com | A | 198.51.100.1 | - | us-west-2 |
在以下情况下,Route 53 返回 Application Load Balancer 别名记录:
- TargetGroup1 正常(所有实例都正常),并且 TargetGroup2 正常(所有实例都正常)
- TargetGroup1 正常,并且 TargetGroup2 为空(尚未向该组中添加任何实例)
- TargetGroup1 正常,并且 TargetGroup2 正常(1 个实例正常,1 个实例不正常)
- TargetGroup1 正常(1 个实例正常,1 个实例不正常),并且 TargetGroup2 正常(1 个实例正常,1 个实例不正常)
在以下情况下,Route 53 返回另一个 A 记录:
- TargetGroup1 或 TargetGroup2 不正常
- TargetGroup1 正常,TargetGroup2 不正常,并且附加的目标组 TargetGroup3 为空(无实例)