文章目录
专题总览
专题内容总览和系列博客目录
https://blog.csdn.net/weixin_40815218/article/details/135590291
辅助资料(PDF)
https://download.csdn.net/download/weixin_40815218/88741566
Route 53 Section
什么是域名系统?
- 将:Amazon友好的主机名转换为机器 IP 地址的域名系统
- www.google.com => 172.217.18.36
- DNS 是互联网的支柱
- DNS 使用分层命名结构
.com example.com www.example.com api.example.com
DNS 术语
- 域名注册商:Amazon Route 53、GoDaddy、…
- DNS Records:A、AAAA、CNAME、NS、…
- Zone File (区域文件):包含 DNS 记录
- Name Server (名称服务器):解析 DNS 查询(权威或非权威)
- 一级域名 (TLD - Top Level Domain):.com、.us、.in、.gov、.org…
- 二级域名 (SLD - Second…):amazon.com、google.com、…
DNS 的工作原理
Amazon Route 53
- 高度可用、可扩展、完全托管和有权威的 DNS 解析服务
- 有权威性 = 客户可以更新 DNS 记录
- Route 53 也是域名注册商
- 能够检查资源的健康度
- 唯一提供 100% 可用性 SLA(服务级别协议) 的 AWS 服务
- 为什么选择 Route 53 ? 虽然和传统 DNS 服务(基于 UDP)一样使用默认端口 53,但 Route 53 不仅支持 UDP,还支持 TCP 和 HTTPS,提供更强的解析功能和安全性
Route 53 - Records
- 描述了如何为一个域名路由流量
- 每条记录包含:
- 域名/子域名 — e.g. example.com
- Record Types — e.g. A 或 AAAA
- 目标值 — e.g. 12.34.56.78
- 路由策略 — Route 53 如何响应查询
- TTL — 记录在 DNS 解析器中缓存的时间
- Route 53 支持以下 DNS 记录类型:
- (必须知道)A /AAAA / CNAME / NS
- (高级)CAA/DS/MX/NAPTR/PTR/SOA/TXT/SPF/SRV
Record Types
- A – 将主机名映射到 IPv4
- AAAA – 将主机名映射到 IPv6
- CNAME – 将一个主机名映射到另一个主机名
- 目标是必须具有 A 或 AAAA 记录的域名
- 无法为 DNS 命名空间的顶级节点(Zone Apex)创建 CNAME 记录
- 示例:您不能为 example.com 创建,但可以为 www.example.com 创建
- NS – 托管区域的名称服务器
- 控制域的流量路由方式
Hosted Zones
- Hosted Zones 是 AWS 托管的 DNS 区域,它包含了一个或多个 DNS 记录集合,并定义了在该命名空间内的 DNS 记录集合。
- Hosted Zones 支持多个版本的 DNS 记录、DNSSEC 等安全性功能,并提供一组 Name Server(NS)记录用于更新托管区域的 DNS 服务器信息。
- 公共托管区域 - 包含指定如何在 Internet 上路由流量的记录(公共域名)
- application1.mypublicdomain.com
- 私有托管区域 - 包含指定如何在一个或多个 VPC 中路由流量的记录(私有域名)
- application1.company.internal
- 每月需为每个托管区域支付 0.5 美元
公共托管区 vs 私有托管区
Records TTL(生存时间)
- High TTL – e.g. 24 小时
- Route 53 流量减少
- 可能过时的记录
- Low TTL – e.g. 60 秒
- Route 53 流量增加($$)
- 记录过时的时间更短
- 易于更改记录
- 除别名记录外,TTL 对每条 DNS 记录都是强制生效的
CNAME vs Alias
- AWS 资源(负载均衡器、CloudFront…)通常会暴露一个 AWS 主机名:
- e.g. lb1-1234.us-east-2.elb.amazonaws.com
- CNAME:
- 将主机名映射到任何其他主机名。 (app.mydomain.com => blabla.anything.com)
- 仅适用于非根域(e.g. something.mydomain.com)
- Alias:
- 将主机名映射到 AWS 资源 (app.mydomain.com => blabla.amazonaws.com)
- 适用于根域和非根域(e.g. mydomain.com)
- 免费
- 本地健康检查
Alias Records
- DNS 功能的扩展
- 自动识别资源 IP 地址的变化
- AWS 资源 (IPv4 / IPv6) 的别名记录始终为 A/AAAA 类型
- 无法设置 TTL
Alias Records Targets
- 不能为 EC2 DNS 名称设置 Alias 记录
Route 53 – Routing Policies
- 定义 Route 53 如何响应 DNS 查询
- 不要被“路由”这个词误导
- 它与路由流量的负载均衡器路由不同,DNS 不路由任何流量,它只响应 DNS 查询
- Route 53 支持以下路由策略
- Simple
- Weighted(加权)
- Failover(故障转移)
- Latency(基于延迟)
- Geolocation(地理定位)
- Multi-Value Answer(多值答案)
- Geoproximity(地理邻近性,使用 Route 53 Traffic Flow 功能)
Simple
- 通常,将流量路由到单个资源
- 但可以在同一记录中指定多个值
- 如果返回多个值,则客户端会随机选择一个值
- 启用 Alias 时,只能指定一个 AWS 资源
- 无法与健康度检查关联
Weighted(加权)
- 控制发送至每个特定资源的请求的百分比
- 为每个记录分配相对权重:
- 相对权重 t r a f f i c ( % ) = 指定记录的权重 所有记录的总权重 相对权重\space traffic (\%) = \frac{指定记录的权重}{所有记录的总权重} 相对权重 traffic(%)=所有记录的总权重指定记录的权重
- 权重之和不需要达到 100
- DNS 记录必须具有相同的名称和类型
- 可以与健康检查相关联
- 使用案例:区域之间的负载平衡、测试新的应用程序版本…
- 为记录分配权重 0 以停止向资源发送流量
- 如果所有记录的权重为0,则所有记录都有相同的概率返回
Latency-based(基于延迟)
- 重定向到离我们最近的延迟最少的资源
- 当用户优先考虑延迟时非常有用
- 延迟取决于用户和 AWS 区域之间的流量
- 德国用户可能会被定向到美国(如果这是最低延迟)
- 可与健康检查关联(具有故障转移功能)
Route 53 – Health Checks
- HTTP 健康检查仅针对公共资源
- 健康检查 => 自动 DNS 故障转移:
- 监控端点的健康检查(应用程序、服务器、其他 AWS 资源)
- 监控其他健康检查的健康检查(计算健康检查)
- 监控 CloudWatch 警报的运行状况检查(完全控制!!) 例如,DynamoDB 的节流、RDS 上的警报、自定义指标…(对私有资源有帮助)
- 健康检查与 CW 指标集成
Health Checks – Monitor an Endpoint
- 大约 15 个 global health checkers 将检查端点健康状况
- 健康/不健康阈值 – 3(默认)
- 间隔 – 30 秒(可设置为 10 秒 – 成本更高)
- 支持的协议:HTTP、HTTPS 和 TCP
- 如果 > 18% 的 checkers 报告端点运行状况良好,则 Route 53 认为其运行状况良好,否则是不健康的
- 能够指定 Route 53 使用的位置
- 仅当端点响应 2xx 和 3xx 状态代码时,健康检查才会通过
- 可以根据响应的前 5120 字节中的文本将运行状况检查设置为通过/失败
- 配置路由器/防火墙以允许来自 Route 53 运行状况检查器的传入请求
Route 53 – Calculated Health Checks
- 将多个运行状况检查的结果合并为单个运行状况检查
- 可以使用 OR\AND\NOT
- 可监控多达 256 项 子健康度检查
- 指定需要通过多少健康检查才能使父级通过
- 用途:维护网站时不会导致所有健康度检查失败
Health Checks – Private Hosted Zones
- Route 53 健康度检查 程序位于 VPC 外部
- 他们无法访问专用端点(专用VPC 或本地资源)
- 可以创建 CloudWatch 指标并关联 CloudWatch 警报,然后创建健康度检查来检查警报本身
Failover (故障转移,主动-被动)
Geolocation(地理定位)
- 与 Latency-based(基于延迟)不同!
- 此路由基于用户位置
- 按大陆、国家或美国州指定位置(如果有重叠,则选择最精确的位置)
- 应创建“默认”记录(以防位置不匹配)
- 使用案例:网站本地化、限制内容分发、负载平衡……
- 可以与健康检查相关联
Geoproximity(地理邻近性)
- 根据用户和资源的地理位置将流量路由到您的资源
- 能够根据定义的偏差将更多流量转移到资源
- 要更改地理区域的大小,请指定偏差值:
- 扩展(1 ~ 99)——更多资源流量
- 收缩(-1 ~ -99)——资源流量减少
- 资源可以是:
- AWS 资源(指定AWS 区域)
- 非AWS 资源(指定纬度和经度)
- 必须使用 Route 53 Traffic Flow 才能使用此功能
Multi-Value Answer(多值答案)
- 将流量路由到多个资源时使用
- Route 53 返回多个值/资源
- 可以与健康检查关联(仅返回健康资源的值)
- 每个多值查询最多返回 8 条健康记录
- 多值不能替代 ELB
域名注册商 vs DNS 服务
- 通常通过支付年费的方式向域名注册商购买或注册域名(例如,GoDaddy、Amazon Registrar Inc…)
- 通常由域名注册商提供 DNS 服务来管理 DNS 记录
- 但用户也可以使用其他 DNS 服务来管理 DNS 记录,e.g. 从 GoDaddy 购买域名并使用 Route 53 服务来管理 DNS 记录
GoDaddy 作为注册商 & Route 53 作为 DNS 服务
Amazon Route 53 的第 3 方注册商
- 如果在第 3 方注册商处购买域名,您仍然可以使用 Route 53 作为 DNS 服务提供商
- 在 Route 53 中创建托管区域
- 更新第 3 方网站上的 NS 记录以使用 Route 53 名称服务器
- 域名注册商!= DNS 服务
- 但每个域名注册商通常都附带一些 DNS 功能