Route 53 健康检查配置指南 🚀
场景: 确保您的应用程序始终可用,并在出现故障时自动切换到健康的备份实例。比如你有两个服务器,一个在美国,一个在欧洲。如果美国的服务器挂了,Route 53 会自动把流量导到欧洲。
步骤概览:
- 创建健康检查
- 配置 DNS 记录,关联健康检查
- 测试故障切换
第一步:创建健康检查 🩺
- 登录 AWS 管理控制台,进入 Route 53 服务。
- 在左侧导航栏选择 "Health Checks"。
- 点击 "Create health check"。
- 填写健康检查配置:
- Health check type: 选择 "HTTP", "HTTPS", "TCP",或者 "Calculated Health Check"(如果需要组合多个健康检查)。
* "HTTP/HTTPS": 检查 Web 服务器是否响应 HTTP/HTTPS 请求。
* "TCP": 检查 TCP 连接是否建立。
* "Calculated Health Check": 允许您基于其他健康检查的结果创建更复杂的健康检查逻辑。
- Protocol: 根据您的选择,选择 "HTTP" 或 "HTTPS"。
- Host name: 输入要检查的主机名或 IP 地址。
- Path: 指定要请求的路径(例如
/health),用于检查应用程序的健康状态。确保这个路径返回 200 OK 状态码。
- Port: 指定端口号(例如 80, 443)。
- Request interval: 选择检查频率(例如 30 秒)。
- Failure threshold: 指定在声明实例不健康之前允许的连续失败次数(例如 3 次)。
- Inverted: 如果希望健康检查的行为相反,则勾选此项。(不常用)
- Enable SNI: 如果您的服务器需要 SNI,则启用此选项。
- String matching: 可选,可以检查 HTTP 响应中是否包含特定字符串。
- Alarm when: 选择 "Health check status changes"。
- IAM role: 选择一个 IAM 角色,允许 Route 53 向 CloudWatch 发送警报。(如果没有,需要创建一个)
- SNS topic: 选择一个 SNS 主题,用于接收健康检查状态更改的通知。(如果没有,需要创建一个)
- 点击 "Create health check"。🎉
详细解释几个重要的配置项:
- Path (路径): 这是一个关键配置! 确保你的应用提供一个
/health 或者类似的健康检查接口,返回 200 OK。 这样 Route 53 才能准确判断你的应用是否健康。
- Failure threshold (失败阈值): 这个值决定了 Route 53 在判断你的服务不健康之前,允许的失败次数。 设置得太低可能会导致误判,太高则可能延迟故障切换。 通常 3 次是一个不错的选择。
- Request Interval (请求间隔): 这个值决定了 Route 53 多久检查一次你的服务。 越频繁的检查可以更快地发现问题,但也可能增加你的服务器负载。
第二步:配置 DNS 记录 📝
- 进入 Route 53 的 "Hosted Zones"。
- 选择你的域名。
- 点击 "Create record"。
- 配置 DNS 记录:
- Record name: 输入子域名 (例如
www)。
- Record type: 选择 "A" (或其他适用的记录类型)。
- Alias: 如果指向 AWS 资源,可以选择 "Alias",否则选择 "Value/Route traffic to"。
- Value/Route traffic to: 输入 IP 地址或域名。
- Routing policy: 选择 "Failover"。 🚨 重要!
- Primary/Secondary: 指定记录是 "Primary" 还是 "Secondary"。
- Associate with health check: 选择你之前创建的健康检查。 ✅
- Set ID: 为每个记录设置一个唯一的 ID。
- 创建另一个记录,作为 "Secondary" 记录,指向备份实例,并关联另一个健康检查。(如果你的备份实例也有健康检查)
- 点击 "Create records"。 🎊
解释 Failover 路由策略:
"Failover" 路由策略是实现故障自动切换的关键。 Route 53 会持续监控与 DNS 记录关联的健康检查。 如果 "Primary" 记录关联的健康检查失败,Route 53 会自动将流量切换到 "Secondary" 记录。
第三步:测试故障切换 🧪
- 模拟主服务器故障(例如,停止 Web 服务器)。
- 观察 Route 53 健康检查状态。 应该会变成 "Unhealthy"。
- 检查 DNS 解析。 流量应该会自动切换到备份服务器。 可以使用
dig 命令或在线 DNS 查询工具进行验证。
- 恢复主服务器。
- 观察 Route 53 健康检查状态。 应该会恢复到 "Healthy"。
- 等待 Route 53 将流量切换回主服务器。
一些额外的提示和技巧:💡
- CloudWatch 警报: 配置 CloudWatch 警报,以便在健康检查失败时收到通知。 这可以帮助您更快地响应问题。
- 监控: 定期监控 Route 53 健康检查和 DNS 解析,确保一切正常工作。
- 多区域部署: 考虑使用多区域部署来提高应用程序的可用性。
- 健康检查路径: 确保你的健康检查路径足够简单,但又能有效地反映应用程序的健康状态。
- TTL (Time To Live): 设置合理的 TTL 值。 较低的 TTL 值可以加快故障切换速度,但可能会增加 DNS 查询负载。
希望这个指南能帮助你成功配置 Route 53 健康检查! Good luck! 👍