AWS DNS、缓存与性能优化(包括 AWS Route 53)相关知识点。
DNS (Domain Name System) 解析流程
一、DNS (Domain Name System) 解析流程

亚马逊 Route 53
一、亚马逊 Route 53 基本原理

- 托管区域 (Hosted zones) 存储对应域(及其子域)的所有 DNS 记录
二、亚马逊 Route 53 路由策略 (Routing Policy)

三、亚马逊 Route 53 功能
- 域名注册
- 托管区域(DNS 解析)
- 健康检查
Traffic Flow使用 Traffic Flow 来路由 DNS 流量,简化在大型复杂配置中创建和维护记录的过程。
Route 53 托管区域
一、Route 53 托管区域基本概念


- ⭐ 创建
私有托管区域需要指定关联的VPC,同时开启VPC的启用 DNS 解析和启动 DNS 主机名 私有托管区域可以使用任何域名
二、迁移到 Route 53 或从 Route 53 迁移到其他提供商

- 可以将一个 AWS 账户下的
VPC与另一个账户中创建的Route 53托管区域相关联- 使用创建托管区域的账户,授权另一个账户的
VPC与托管区域关联。 - 使用创建
VPC的账户,将VPC与托管区域关联。
- 使用创建托管区域的账户,授权另一个账户的
Route 53 记录 (Record) 和生存时间 (TTL)
一、Route 53 记录 (Record) 基本概念

- ⭐ 大部分权威 DNS 解析的服务商都不提供域名裸域又叫根域 (Root Record) 的 CNAME 解析
- ⭐ ALIAS 记录支持将流量路由到 AWS 服务,并支持在根域上创建别名记录
二、Route 53 生存时间 (TTL) 基本概念

- 在 TTL 内 DNS 记录会缓存在客户本地
- 缓存过期后客户端会再次请求
Route 53获取 IP 地址
Route 53 路由策略
一、简单路由策略 (Simple routing policy)

- ⚠ 简单路由策略 (Simple routing policy) 无法附加健康状况检查
二、加权路由策略 (Weighted routing policy)

- 加权路由策略 (Weighted routing policy) 适合软件新版本测试
将少部分流量路由到新版本。
- 可以关联健康状态检查
- 可以跨 AWS
区域分配流量
三、故障转移路由策略 (Failover routing policy)

- 可以关联健康状态检查
四、基于延迟的路由策略 (Latency routing policy)

- 基于用户到 AWS
区域的延迟 - 可以关联健康状态检查
五、地理位置路由策略 (Geolocation routing policy)

- 适用于内容本地化,或是网站或业务只服务于某些国家的需求
六、多值应答路由策略 (Multivalue answer routing policy)

亚马逊 CloudFront、源站和地理限制
一、Amazon CloudFront 基本概念

- 提供 DDoS 攻击防护,集成了
AWS Shiedl和WAF
二、Amazon CloudFront 源站 (Origins)

- 支持源站类型:
S3存储桶- 静态文件的上传读取场景
- ⭐ 通过配置源访问身份 (OAI, Origin Access Identity) 只允许通过
CloudFront访问存储桶内文件,防止用户对S3存储桶的直接访问
S3网站- 需要开启
S3存储桶的静态网站托管 (static website hosting) 配置
- 需要开启
- 自定义源站
- 可以通过指定一个主源和一个备用源实现高可用
- ⭐ 边缘节点没有内容的情况下
CloudFront才会访问源站获取内容并缓存
三、Amazon CloudFront 使用 S3 作为源站样例

- 使用
S3作为源站才能使用 AWS 私有专线回源
四、Amazon CloudFront 使用 EC2 或 ALB 作为源站样例

- ⭐
EC2必须能从公网被访问(可以限制来源 IP 仅为CloudFront边缘节点的公网 IP) - ⚠ 使用
EC2或ALB作为源站时是使用互联网回源的,而非 AWS 私有专线
五、CloudFront 和 S3 跨区域复制的区别

六、CloudFront 地理限制功能 (GEO Restriction)

- 根据第三方 GeoIP 数据库确定用户位置,并限制其访问
CloudFront 签名 URL (signed URLs) 和签名 Cookie (signed cookies)
一、CloudFront 签名 URL (signed URLs) 和签名 Cookie (signed cookies) 基本概念

- ⭐ 基本功能都是限制部分用户能否访问
CloudFront内容 - ⭐ 签名 URL (signed URLs) 适合限制对单个文件的访问
- ⭐ 签名 Cookie (signed cookies) 适合限制对多个文件的频繁访问
二、CloudFront 签名 URL (signed URLs) 工作流
签名 Cookie (signed cookies) 的工作流基本一样。

三、CloudFront 签名 URL 与 S3 预签名 URL (Presigned URLs) 的区别

CloudFront Lambda@Edge
一、CloudFront Lambda@Edge 基本概念


- 将
Lambda函数部署在CloudFront分配的边缘节点上 - 发生四种
CloudFront事件时,可以执行Lambda函数:- 查看器请求 (Viewer request)
- 源请求 (Origin request)
- 源响应 (Origin response)
- 查看器响应 (Viewer response)
- ⭐
Lambda@Edge没有缓存
二、CloudFront Lambda@Edge 认证和授权案例

- 检查认证和授权工作运行在世界各地的边缘节点上
三、CloudFront Lambda@Edge 其他使用案例

AWS Global Accelerator
一、AWS Global Accelerator 基本概念

- 大致流程:
- ⭐
Route 53的 ALIAS 记录指向Global Accelerator - 用户请求域名的 DNS 记录时,
Route 53就会返回两个静态的、任播 IP 地址 - 用户访问这两个 IP 中的其中一个,先到最近的边缘节点
- 之后再前往
Global Accelerator - 最后通过 AWS 全球网络被路由到最佳的应用程序节点
- ⭐
- ⭐ 只有用户到边缘节点的网络经过互联网,因此整体网络质量会高很多
架构模式之 DNS、缓存与性能优化

