前言

官网: https://aws.amazon.com/certification/certified-solutions-architect-associate/


知识点

1. AWS Cloud Overview

AWS Regions

  • A Region is a cluster of data centers 区域是数据中心集群
    • Compliance(合规性) - 数据驻留和法规要求。
    • Proximity(距离) - 靠近用户,降低延迟。
    • Available Services(可用服务) - 并非所有服务在所有区域都可用。
    • Pricing(定价) - 不同区域价格可能不同。


AWS Availability Zone (AZ)

  • 一个Region包含3-6个物理隔离的AZ,每个AZ有独立的电源、网络和连接。
  • 跨账户协调AZ - 必须使用AZ ID(如use1-az1),因为AZ名称(如us-east-1a)在不同账户中映射到不同的物理位置。
    • 账户A的us-west-2a和账户B的us-west-2a可能是不同的物理AZ。


AWS Edge Locations

  • 在全球多个位置部署,用于内容分发和缓存。
  • 离用户越近,交付速度越快,降低延迟。


2. IAM

AWS IAM

  • Root Account(根账户) - 默认创建,拥有完全权限,不要与他人共享。
  • Users(用户) - 组织内的个人,可以属于多个组。
  • Groups(组) - 只能包含用户,不能包含其他组。


IAM Permissions

  • 定义用户或组的访问权限
  • 最小权限原则(Least Privilege Principle) - 只授予完成任务所需的最小权限,避免过度授权。


IAM Polices

  • 定义操作权限,与执行方法无关。

  • 策略结构 - Statements 必须包含:

    • Effect - Allow 或 Deny
    • Principal - 谁可以访问
    • Action - 允许或拒绝的操作
    • Resource - 作用于哪些资源
  • Inline Policy (内联策略) - 直接分配给单个用户、组或角色的策略。

注意: IAM 唯一支持的基于资源的策略是信任策略 (Trust Policy)。


IAM MFA

  • Protect Root Accounts and IAM Users 保护 Root 账户和 IAM 用户
  • MFA options:
    • Virtual MFA Device (虚拟 MFA 设备) - 使用手机应用 (如 Google Authenticator、Authy)
    • U2F Security Key (U2F 安全密钥) - 物理 USB 设备 (如 YubiKey)


IAM CLI & SDK

访问 AWS 的三种方式

  • AWS Management Console (控制台) - 网页界面
  • AWS CLI (命令行) - 终端命令行工具
  • AWS SDK (软件开发工具包) - 编程接口

  • AWS CLI, AWS SDK 由 Access Keys 保护
  • 考试技巧: 如果题目要求使用命令行设置属性 (如 DeleteOnTermination)、或不确定答案时,选择 CLI 选项。

IAM Roles

  • 授权 AWS 服务去做某些事 (比如 EB 需要 EC2 Role 和 Service Role)
  • 常见的 Role
    • EC2 Instance Role - 允许 EC2 实例访问其他 AWS 服务
    • Lambda Function Role - 授予 Lambda 函数执行权限
    • Service Role - 如 Elastic Beanstalk 需要 EC2 Role 和 Service Role


IAM Security Tools

  • IAM Credentials Report (凭证报告) - 账户级别报告,列出所有用户及其凭证状态 (密码、访问密钥、MFA 等)。
  • IAM Access Advisor (访问顾问) - 用户级别工具,显示用户被授予的服务权限和最后访问时间。


IAM Extra

  • Trust Policy (信任策略) - IAM 唯一的基于资源的策略,定义哪些主体可以担任该角色。
  • AWS Organizations SCP (服务控制策略) - 针对 Organization 的策略,指定组织或 OU 的最大权限,限制成员账户能做什么。
  • Access Control List (ACL, 访问控制列表) - 管理其他账户的主体对资源的访问权限,控制跨账户访问。
  • Permissions Boundary (权限边界) - 设置 IAM 实体 (用户或角色) 通过身份策略可以获得的最大权限上限。

3. EC2 Fundamentals

AWS EC2 (Elastic Compute Cloud)

  • 属于 Infrastructure as a Service (IaaS),绑定到特定 AZ。
  • User Data (用户数据) - EC2 启动时自动运行的脚本 (如安装 Apache)。
    • 默认只在首次启动时运行
    • 默认以 root 用户权限执行



EC2 Instance Type

  • 一共 7 种 EC2 Instance Type, 但 4 种用的最多

    • General Purpose, Compute Optimized, Memory Optimized, Storage Optimized
  • General Purpose (通用型) - 平衡的计算、内存和网络资源,适合 Web 服务器、代码仓库。

  • Compute Optimized (计算优化型) - 高性能处理器,适合批处理 (Batch)、媒体转码、高性能计算 (HPC)、科学建模。

  • Memory Optimized (内存优化型) - 大内存处理,适合内存数据库、分布式缓存、实时大数据分析。

  • Storage Optimized (存储优化型) - 本地存储的高速读写,适合 OLTP 系统、NoSQL 数据库、数据仓库。


EC2 Security Groups

  • Control how traffic is allowed into or out of EC2 instance (控制 EC2 实例的入站和出站流量,类似防火墙)
    • Can be attached to multiple instances (可以附加到多个实例,可复用)
    • Locked down to Region / VPC 锁定到特定 Region / VPC
  • 默认拒绝所有入站流量,允许所有出站流量
  • Inbound Rule (入站规则) 来源可以是: IP address (IP 地址), CIDR block (CIDR 块) , Security Group (安全组)


EC2 Instance Purchasing Options

  • On-Demand Instances (按需实例) - 按秒计费,适合短期紧急使用,无需承诺。
  • Reserved Instances (预留实例) - 1-3 年,最高 72% 折扣,在 AZ 中预留容量。
    • Standard RI - 固定实例类型,折扣随年限增加
    • Convertible RI - 可更改实例类型,66% 折扣
  • Savings Plans (储蓄计划) - 1-3 年,承诺使用量,最高 72% 折扣,超出承诺按 On-Demand 计费。
    • Compute Savings Plan - 66% 折扣,支持 Lambda 和 Fargate
  • Spot Instances (竞价实例) - 最便宜,90% 折扣,但可能随时被中断,适合容错工作负载。
  • Dedicated Host (专用主机) - 最贵,完全控制物理服务器和实例放置,满足合规要求。
  • Dedicated Instance (专用实例) - 硬件专用但不完全锁定给你,与其他账户隔离。
  • Capacity Reservation (容量预留) - 在 AZ 中预留容量,适合每天只需几小时 EC2 的场景。


EC2 Spot Instance

使用 AWS 闲置容量的低价实例

  • 取消规则
    • 只能在 open、active 或 disabled 状态下取消 Spot 请求
    • 必须先取消请求,再终止实例 (Cancel ≠ Terminate)
  • 请求类型
    • One-time (一次性) - 满足后请求自动关闭
    • Persistent (持久性) - 实例中断后自动重新请求

  • Spot Fleets (竞价集群) - 自动请求最低价格的 Spot 实例,可混合 Spot + On-Demand。
    • 自动获取最便宜的 Spot 实例
    • 维持目标容量,保证一定数量的实例运行


4. EC2 SAA Level

Elastic IP

IP 地址类型

  • Public IP (公网 IP) - 全网唯一,EC2 重启后会改变
  • Private IP (私网 IP) - 私有网络内唯一,重启后不变
  • Elastic IP (弹性 IP) - 固定的公网 IP,绑定到账户,重启后不变

为什么需要 Elastic IP

  • EC2 的公网 IP 会在停止/重启后改变
  • Elastic IP 可以快速重新映射到另一个实例
  • 使用 Private IP 在私有网络内通信可以节省成本

注意: 未使用的 Elastic IP 会产生费用,建议使用负载均衡器或 DNS 代替。


EC2 Placement Groups

  • 控制实例在物理硬件上的分布策略。

Cluster (集群) - 单个 AZ 内低延迟高吞吐,适合 HPC (高性能计算)。

  • 优点:网速快,低延迟
  • 缺点:AZ 故障时所有实例都受影响

Spread (分散) - 高可用性,关键应用,实例分布在不同物理硬件。

  • 优点:风险小,硬件故障隔离
  • 缺点:每个 AZ 最多 7 个实例
  • 适合少量关键实例需要相互隔离的场景

Partition (分区) - 在 AZ 内将实例分散到多个分区,每个分区有独立硬件。

  • 每个 AZ 最多 7 个分区
  • 每个分区可有多个实例,总数可达 100+
  • 可跨多个 AZ
  • 优点:风险小,限制低
  • 适合大数据应用 (Hadoop、Cassandra、Kafka)


Elatic Network Interfaces (ENI, 弹性网络接口)

  • VPC 中的虚拟网卡
  • 可以附加到 EC2 实例,提供网络连接
  • 绑定到特定 AZ,不能跨 AZ 使用
  • 可以在实例间移动,实现故障转移


EC2 Hibernate

  • EC2 Hibernate: 加速 EC2 实例启动
  • 将内存 (RAM) 状态保存到 EBS 卷, 再次启动时从保存的状态恢复,而不是重新启动
  • 要求: Root Volume 必须是 EBS 卷


5. EC2 Instance Storage

AWS EBS (Elastic Block Store)

  • 类似网络硬盘,可以附加到 EC2 实例
  • 绑定到特定 AZ,不能跨 AZ 使用
  • 可移植性: 可以从一个 EC2 实例卸载,附加到同 AZ 内另一个实例
  • Root Volume (根卷) - 默认在实例终止时删除
  • Other EBS Volumes (其他卷) - 默认在实例终止时不删除


EBS Snapshots

  • Make a backup of EBS volume (备份 EBS)
  • 可以将这个 snapshot 用在其他 AZ 或者 Region 上

  • EBS Snapchot Archive: 便宜 75%
  • Recycle Bin: Setup rules to retain deleted snapshots (可以 recover)


AWS AMI (Amazon Machine Image)

  • 预配置的 EC2 实例模板
  • 为特定 Region 构建, 可以跨 Region 复制
  • 当 AMI 从 Region A 复制到 Region B 时,会自动在 Region B 创建快照 (Snapshot)。


EC2 Instance Store

  • Block-level storage, 物理硬盘 (Physical drive, temporary storage)
  • High random I/O performance, good for cache & buffer at low cost (重要)
  • EC2 Instance Store lose when stopped (Ephemeral, 数据在 Instance Store 关闭时消失)

  • 不能从一个实例卸载并附加到另一个实例
  • 从实例创建 AMI 时,Instance Store 上的数据不会被保留
  • 实例重启数据保留,但停止或故障数据丢失

适合需要高性能临时存储的场景,不适合持久化数据。


EBS Volume Types

General Purpose SSD (gp2 / gp3) - 通用型,性价比高。

  • 平衡的价格和性能
  • 适合大多数工作负载

Provisioned IOPS SSD (io1 / io2) - 高性能 SSD。

  • 比 gp 贵,但 IOPS 更高
  • 支持 Multi-Attach (多个 EC2 同时挂载)
  • 适合关键业务应用和数据库

Hard Disk Drives (HDD) - 机械硬盘,吞吐量优化。

  • st1 (Throughput Optimized) - 数据密集型工作负载
  • sc1 (Cold HDD) - 访问频率低的数据
  • 不能用作 EC2 启动卷

所有类型都不超过 300,000 IOPS。


EBS Multi-Attach

  • 将同一个 EBS 卷同时挂载到多个 EC2 实例
    • 只支持同一个 AZ 内的实例
    • 仅适用于 io1 / io2 家族 (Provisioned IOPS SSD)
  • 实现高可用性集群应用, 多个实例需要同时访问相同数据


EBS Encryption

  • 全链路加密保护
    • 静态数据加密 (Data at rest)
    • 传输中数据加密 (Data in flight)
    • 快照加密 (Snapshot)
    • 从加密快照创建的卷也自动加密

加密未加密卷的步骤

  • 为未加密卷创建快照 (Snapshot)
  • 加密该快照 (复制快照时启用加密)
  • 从加密快照创建新的 EBS 卷
  • 将新的加密卷附加到原实例

使用 AWS KMS 密钥管理,对性能影响minimal。


EBS RAID (磁盘阵列)

组合多个 EBS 卷以提升性能或容错

RAID 0 (条带化) - 优先考虑 I/O 性能。

  • 将数据分散到多个卷,提高吞吐量和 IOPS
  • 无冗余,一个卷故障则全部数据丢失
  • 适合需要高性能但不关键的数据

RAID 1 (镜像) - 优先考虑容错能力 (fault tolerance)。

  • 数据在多个卷上镜像复制
  • 提供冗余,一个卷故障不影响数据
  • 性能提升有限,但可靠性高
  • 适合关键数据保护

选择取决于优先级:性能选 RAID 0,可靠性选 RAID 1。Retry


AWS EFS (Elastic File System)

  • 托管的 NFS 网络文件系统
    • 可挂载到多个 EC2 实例,支持并发访问
    • 自动扩展容量,无需容量规划
    • 可跨 AZ、Region 和 VPC 访问 (重要)
    • 使用 VPC Security Group 或 IAM Policy 控制访问
  • EFS-IA (Infrequent Access) - 低成本存储层,适合不常访问的数据,支持 POSIX。

  • NFS 有 2 种 Performance Mode
    • General Purpose - 默认,低延迟 (Web 服务器)
    • Max I/O - 高延迟但高吞吐量和并行性 (Big Data、媒体处理)
  • NFS 有 3 种 Throughput Mode (重要)
    • Bursting - 突发模式,快速但有限制
    • Provisioned - 设置固定吞吐量上限 (大量文件迁移时使用)
    • Elastic - 根据工作负载自动扩展

成本对比 (100GB 文件): EBS > EFS > S3 (价格从高到低)


6. ELB & ASG

Scalability & High Availability

  • Vertical (竖直) Scale: Increase the size of the Instance (但是有 hardware limit)
  • Horizontal (水平) Scale: Increase the number of the Instance
  • High Availability: Rrunning application in at least 2 AZ (Disaster recovery, DR, 重要)

AWS ELB (Elastic Load Balancer)

  • 负载均衡器,分发流量到多个 EC2 实例。
  • 跨 AZ 实现高可用性,处理下游实例故障。Health Check 检测实例健康状态 (ASG 用 EC2 based,ALB 用 ALB based)。
  • ELB 部署在 public subnet,ASG 部署在 private subnet。ELB 不能跨 Region 分发流量。

三种类型

  • ALB (Application Load Balancer) - HTTP/HTTPS,Layer 7,提供静态 DNS
  • NLB (Network Load Balancer) - TCP/UDP,Layer 4,提供静态 DNS 和静态 IP,超高性能
  • GWLB (Gateway Load Balancer) - Layer 3,用于安全设备 (防火墙、IDS/IPS,要特别注意)


Application Load Balancer (ALB)

  • Layer 7 负载均衡器,处理 HTTP/HTTPS 流量。
  • 路由功能: 基于 Path (/home)、Hostname、Query String (?platform=mobile)、Headers 或 Client IP 路由到不同目标组。
    • 添加 “X-Forwarded-For” header 包含客户端真实 IP
    • 可配置 HTTP 到 HTTPS 的自动重定向 (重要)
    • 无法分配 Elastic IP
  • Target Groups (目标组): EC2 实例、ECS 任务、Lambda 函数、IP 地址。


通过 listener rule 实现流量重定向和路由策略。


Network Load Balancer (NLB)

  • Layer 4 负载均衡器,处理 TCP/UDP 流量。
  • 性能特点: 速度极快,处理大量请求,最适合低延迟和高吞吐量场景 (如银行、游戏应用)。
  • 静态 IP 支持: 每个 AZ 一个静态 IP,或可使用 Elastic IP (这是 NLB 独有特性)。
  • Health Checks: 支持 HTTP、TCP 和 HTTPS 健康检查。

路由规则: 如果使用实例 ID 指定目标,流量会路由到实例主网络接口的主私有 IP 地址。


Gateway Load Balancer (GWLB)

  • Layer 3 负载均衡器,专门用于安全和第三方网络设备。
  • 用途: 在多个 spoke VPC 中以简化和可扩展的方式执行流量的内联检查 (inline inspection)。部署第三方安全设备如防火墙、IDS/IPS、深度包检测系统。
  • 协议: 使用 GENEVE 协议,端口 6081。
  • 实现透明网络流量检查,所有流量先经过安全设备处理后再转发到目标。


Sticky Sessions (Session Affinity)

  • 同一客户端始终路由到负载均衡器后的同一实例。
  • 用途: 确保用户不会丢失会话数据 (如登录状态、购物车信息)。

Cookie 类型

  • Application-based Cookies (应用 Cookie) - 自定义 Cookie 名称,不能使用 AWSALB、AWSALBAPP、AWSALBTG 这些保留名称。
  • Duration-based Cookies (基于持续时间的 Cookie) - ALB 使用 AWSALB,CLB 使用 AWSELB。

通过 Cookie 实现会话保持,但可能导致后端实例负载不均衡。


Cross Zone Load Balancing

  • ELB 在所有 AZ 的所有已注册实例之间均匀分配流量。
    • 启用时: 所有实例收到的流量完全相同,无论在哪个 AZ。
    • 未启用时: 流量先在 AZ 之间平均分配,然后在每个 AZ 内部的实例间平均分配,可能导致实例负载不均。
  • ALB 默认启用,NLB 默认禁用。


SSL Certificates

  • 允许客户端和负载均衡器之间的流量加密传输 (HTTPS)。
  • 使用 ACM (AWS Certificate Manager) 管理 SSL 证书。
  • SNI (Server Name Indication) - 在一个 Web 服务器上加载多个 SSL 证书。
    • 如果题目涉及管理多个 SSL 或 TLS 证书,选择 SNI。

  • ALB 和 NLB 都支持 SNI,CLB 不支持。通过 SNI 可以在单个负载均衡器上托管多个域名的 HTTPS 应用。


Connection Draining

  • 等待现有连接完成后再注销实例。
  • 当实例取消注册或变为不健康状态时,负载均衡器停止向该实例发送新请求,但允许已有的进行中请求完成。
  • 确保用户请求不会中断,优雅地移除实例。可配置超时时间 (1-3600 秒,默认 300 秒)。


AWS ASG (Auto Scaling Group)

  • 自动扩展组,根据需求自动调整 EC2 实例数量,服务免费。
  • 核心功能: 与 ELB 配合,基于服务器压力自动 scale out/in。保证最少 (min) 和最多 (max) 实例数量。在 Region 内根据可用 AZ 进行扩展。
  • 实例管理: 当实例 unhealthy 时,ASG 会终止并替换该实例。在单个 AZ 内,优先终止最早启动的实例。
  • 终止策略
    • 不均衡情况 - 先启动新实例,再终止旧实例
    • 不健康情况 - 先终止不健康实例,再创建新实例
  • Scheduled Action: 如果需要在特定时间 (如节日前) 扩展,使用 ASG scheduled action。

  • Launch Template vs Launch Configuration:

    • Launch Template - 定义生成什么类型的实例 (Spot、On-Demand 等),支持版本控制
    • Launch Configuration - 定义实例配置信息 (AMI、Security Group 等),不可修改
  • 更新 Launch Template: 需要创建新版本,无需删除旧版本。

  • ASG 不 terminate Instance 的情况
    • The health check grace period for the instance has not expired 健康检查宽限期未过期
    • The instance maybe in Impaired status 实例处于 Impaired 状态
    • The instance has failed the Elastic Load Balancing (ELB) health check status 实例未通过 ELB 健康检查

Scaling Policies

ASG 自动调整实例数量的规则。

Dynamic Scaling (动态扩展)

  • Target Tracking Scaling - 根据目标指标自动调整,如保持 CPU 使用率在 50%,或根据 SQS 队列长度扩展。
  • Simple/Step Scaling - 与 CloudWatch Alarm 关联,当告警触发时按步骤增加或减少实例。
  • Scheduled Actions - 基于时间表扩展,如在感恩节或黑色星期五提前增加容量。

Predictive Scaling (预测性扩展)

  • 使用机器学习预测未来负载,提前安排扩展计划,适合有规律的流量模式。


7. AWS Fundamentals

AWS RDS (Amazon Relational Database Service)

  • 使用 RDS 的优势 (对比在 EC2 上自建数据库)
    • 自动配置、自动扩展、自动备份
    • 支持 Read Replicas (最多 15 个) 和 Multi-AZ
  • RDS Reserved Instances - 类似 EC2 RI,提供成本优惠。
  • RDS Read Replica (只读副本) - 提高读取性能,不是扩展存储容量。
    • 主数据库加密时,副本也自动加密
    • 适合报表、分析等读密集型工作负载
    • 不提供高可用性 (Multi-AZ 才是)
    • Cross-Region Read Replica - 灾难发生时可作为数据库备份
  • RDS Multi-AZ (多可用区) - 提供高可用性
    • 同步复制数据到不同 AZ 的备用实例
    • 主库故障时自动切换到备用库
    • 更新时主库和备用库一起更新 (会有短暂停机)
  • 支持的数据库引擎: MySQL、PostgreSQL、MariaDB、Oracle、MS SQL Server、Amazon Aurora。

  • Storage Auto Scaling (存储自动扩展)
    • 适合工作负载不可预测的应用。

  • 灾难恢复策略
    • 在不同 Region 创建 Read Replica,并在该副本上启用 Multi-AZ
  • IAM Database Authentication - 可以使用 IAM 凭证访问 RDS。
  • 迁移路径: 可以从 RDS Read Replica 迁移到 Aurora Read Replica,最小化变更。

Read Replicas vs. Multi AZ

  • Read Replicas (只读副本) - 提升可扩展性和读取性能。
    • 异步复制 (Async Replication)
    • 可在同一 AZ、跨 AZ 或跨 Region 部署
    • 同 Region 内复制免费,跨 Region 复制收费

  • 用途:生产数据库处理日常操作,Read Replica 处理数据分析和报表

  • Multi-AZ (多可用区) - 提供高可用性和灾难恢复。
    • 同步复制 (Sync Replication)
    • 主数据库故障时,RDS 自动将 CNAME 更新指向备用数据库
    • 应用无需修改连接字符串,自动故障转移
    • 不用于扩展读取性能,仅用于容错


关键区别: Read Replicas 侧重性能,Multi-AZ 侧重可用性。


RDS Custom

  • 可以访问底层数据库和操作系统。
  • 仅支持 Oracle 和 Microsoft SQL Server。
  • 适合需要自定义配置、安装补丁或特殊软件的场景,同时保留 RDS 的部分托管优势。


AWS Aurora

  • AWS 专有的高性能关系型数据库。
    • 支持 PostgreSQL 和 MySQL 兼容
    • 无需管理存储,自动扩展
    • 通常比 RDS 快 5 倍 (MySQL) 或 3 倍 (PostgreSQL)
  • Aurora Serverless - 自动启动、关闭和扩展容量,适合间歇性、不可预测的工作负载。

  • 高可用性和读取扩展 (Aurora Read Replica)
    • 1 个主实例 (写入) + 最多 15 个只读副本 = 共 16 个实例
    • Aurora 没有 standby database,Aurora Replica 可作为故障转移目标
    • Replica 按 Tier (优先级) 排序,故障时优先级高的被提升为主实例


考试要点

  • 网络请求激增 → 选择 Aurora Replica
  • Aurora Auto-Scaling → 选择 Aurora Serverless
  • 测试数据库 (Test Database) → 选择 Aurora Database Cloning (快速克隆,成本低)

Aurora Advanced

  • Aurora Replicas Auto Scaling (副本自动扩展)
    • 类似 EC2 Auto Scaling,根据负载自动增减副本数量。

  • Aurora Custom Endpoints (自定义端点)
    • 为特定副本子集创建端点,可在特定副本上运行数据分析,避免影响生产工作负载。

  • Aurora Serverless (无服务器) - 自动实例化数据库和自动扩展容量 (重要)。
    • 适合间歇性、不可预测或开发测试工作负载

  • Aurora Global (全球数据库) - 跨 Region 复制延迟小于 1 秒。
    • 保证至少有一个副本可用 (重要)
    • 提供快速的本地读取和低延迟
    • 适合全球分布式应用

  • Aurora Machine Learning
    • 集成 SageMaker 和 Comprehend,直接在数据库中进行 ML 预测。

  • Aurora Database Cloning (数据库克隆) - 快速创建数据库副本。
    • 比 snapshot & restore 快得多
    • 使用写时复制 (copy-on-write) 协议,节省存储
    • 创建测试数据库时选择此方案


Backup & Monitoring

  • RDS Backups (两种备份方式)
    • Automated Backups (自动备份) - 每天自动备份,可设置保留期
    • Manual DB Snapshots (手动快照) - 用户手动触发,永久保留直到手动删除
  • 省钱技巧: 使用完数据库后创建 snapshot,然后终止数据库。需要时从 snapshot 恢复,避免持续运行成本。

  • Aurora Backups (与 RDS 相同)
    • Automated Backups - 每天自动备份
    • Manual DB Snapshots - 手动备份

  • RDS & Aurora Restore Options (恢复选项)
    • 基本方式 - 从 snapshot 恢复
    • 从本地迁移 - 创建本地数据库备份,上传到 S3,从 S3 恢复到 RDS/Aurora
  • 恢复会创建新的数据库实例,不会覆盖原有实例


RDS Security

  • At-rest Encryption (静态加密) - 使用 AWS KMS (Key Management Service) 加密存储数据
    • 主数据库加密后,备份、快照和副本也自动加密
  • In-flight Encryption (传输加密) - 使用 AWS TLS Certificates 加密传输中的数据。
    • 客户端和数据库之间的连接加密
  • IAM Authentication (IAM 身份验证) - 使用 IAM 角色连接数据库,无需密码。
    • 更安全,集中管理访问权限


RDS Proxy

  • 在应用和 RDS/Aurora 之间建立代理层
  • 缓解数据库压力,最小化打开的连接数
  • 允许应用共享和池化数据库连接,提高数据库效率
  • 减少 RDS & Aurora 故障转移时间最多 66%
  • 无需修改代码 (重要)
  • Serverless,自动扩展, 高可用性 (Multi-AZ)
  • 不可公开访问,必须通过 VPC 访问


AWS ElastiCache

  • 管理 Redis 或 Memcached, 解决数据库高频读取问题 (重要)
  • 内存数据库,高性能低延迟,适合计算密集型场景
  • 减轻数据库读密集型工作负载的压力
  • 帮助应用实现无状态架构
  • 处理 S3 的是 CloudFront,不是 ElastiCache。

  • DB Cache (数据库缓存)
    • 从 ElastiCache 获取数据,未命中时从 RDS 读取并存入缓存。

  • User Session (用户会话)
    • 将会话数据写入 ElastiCache,用户在不同实例间保持登录状态。

Redis vs. Memcached

  • Redis - 持久化、高可用性 (非常重要)

    • 支持 Read Replicas
    • 支持 Multi-AZ (高可用)
    • 支持备份和恢复
    • 单线程,但功能丰富
  • Memcached - 简单、高性能

    • 不支持高可用性
    • 无备份功能
    • 有数据丢失风险
    • 支持 Multi-threading (多线程)
    • 适合简单缓存场景


ElastiCache SAA

身份验证

  • ElastiCache for Redis 支持 IAM Authentication
  • Memcached 支持 SASL-based authentication
  • 注意: IAM Database Authentication 不支持 Oracle

ElastiCache 使用模式

  • Lazy Loading (延迟加载) - 需要时才加载到缓存,缓存未命中时从数据库读取
  • Write Through (写入穿透) - 写入数据库时同时写入缓存
  • Session Store (会话存储) - 存储用户会话数据

  • ElastiCache 使用场景
    • Gaming Leaderboards (游戏排行榜) - 使用 Redis Sorted Sets (重要)
    • Session Data Management (会话数据管理) - 管理和存储用户会话,实现无状态应用


8. Route 53

AWS Route 53

AWS 托管的 DNS (域名系统) 服务

  • 用户可以更新 DNS 记录 (高可用、可扩展)
  • 也是域名注册商 (Domain Registrar)

  • Route 53 Records (记录组成)
    • Domain Name (域名), Record Type (记录类型), Value (值), Routing Policy (路由策略), TTL (生存时间)

  • Route 53 Record Types (记录类型)
    • A - 映射到 IPv4 地址
    • AAAA - 映射到 IPv6 地址
    • CNAME - 将主机名映射到另一个主机名
    • NS - 托管区域的名称服务器

  • Route 53 Hosted Zones (托管区域)
    • Public Hosted Zones (公共托管区域) - 公共域名,互联网可访问s
    • Private Hosted Zones (私有托管区域) - 私有域名,仅 VPC 内可访问

注意: 私有托管区域需要启用 VPC 的 DNS hostnames 和 DNS resolution 设置。


Route 53 TTL

  • TTL: 指定 DNS 记录在客户端缓存中保留的时间长度。
    • TTL 越高,客户端缓存时间越长,减少对 Route 53 的查询,降低成本
    • TTL 越低,DNS 记录更新更快生效,但增加 DNS 查询次数
  • 重要: 后端更新 DNS 记录不代表缓存立即更新,需要等待 TTL 过期后客户端才会获取新值。


CNAME vs Alias

  • CNAME (规范名称记录) - 将主机名指向另一个主机名。
    • 从 acme.example.com 到 zenith.example.org 或者 example.com 到 example.net
  • Alias (别名记录) - 将主机名指向 AWS 资源。
  • 使用建议: 指向 AWS 资源时优先使用 Alias,更简单且免费。



Health Checks

  • 重要限制: Health Checks 仅适用于公共资源,无法直接检查私有资源。
  • Health Check 检测类型
    • Endpoints (端点) - 监控应用、服务器或其他 AWS 资源的健康状态
    • Calculated Health Checks (计算健康检查) - 监控其他 Health Checks 的状态,组合多个检查结果
    • CloudWatch Alarms (CloudWatch 告警) - 基于 CloudWatch 指标状态进行健康检查
  • 用途: 与 Route 53 路由策略配合,实现故障转移和负载均衡。


Routing Policy (Simple)

  • 定义 Route 53 如何响应 DNS 查询, 共有 7 种路由策略

  • Simple (简单路由) - 将流量路由到单个资源
    • 最基础的路由策略
    • 可以指定多个值 (多个 IP 地址)
    • 如果返回多个值,客户端随机选择一个
    • 不支持健康检查
  • 使用场景: 单一资源或不需要健康检查的简单配置。


Routing Policy (Weighted)

  • 加权路由策略 - 按百分比控制流量分配。
    • 为每个资源分配权重,控制发送到各资源的请求百分比
    • 权重计算:资源权重 / 所有权重总和 = 流量百分比
    • 支持健康检查,不健康的资源不接收流量
    • 权重可设为 0 来停止发送流量到某资源


Routing Policy (Latency)

  • 延迟路由策略 - 将流量路由到延迟最低的资源。
    • 根据用户和 AWS Region 之间的网络延迟进行路由
    • 自动将用户重定向到延迟最低的资源
    • 支持健康检查
  • 工作原理: Route 53 测量用户到各 AWS Region 的延迟,选择延迟最低的资源响应。


Routing Policy (Failover)

  • 故障转移路由策略 - 主备切换机制 (重要)。
    • 配置一个 Primary (主) 实例和一个 Secondary (备用) 实例
    • 正常情况下流量发送到 Primary 实例
    • Primary 实例不健康时,自动切换到 Secondary 实例
    • 必须配置健康检查
  • 考题提到 failover 时,选择 active-passive failover routing policy


Routing Policy (Geolocation)

  • 地理位置路由策略 - 基于用户地理位置路由。
    • 根据用户的地理位置 (国家、大陆、州) 路由流量
    • 需要创建一个 “Default” 记录,处理未匹配的位置
    • 支持健康检查


Routing Policy (Geoproximity)

  • 地理邻近路由策略 - 基于地理位置路由,并可调整流量偏向。
    • 根据用户和资源的地理位置路由流量
    • 支持 bias (偏向值) 调整流量分配 (重要)
    • 必须使用 Route 53 Traffic Flow 功能


Routing Policy (IP-Based)

  • 基于 IP 的路由策略 - 根据客户端 IP 地址路由。
    • 定义客户端 IP 地址的 CIDR 块列表
    • 根据客户端 IP 范围将流量路由到特定资源
    • 支持健康检查


Routing Policy (Multi-Value)

  • 多值路由策略 - 将流量路由到多个资源。
    • 返回多个健康资源的 IP 地址 (最多 8 个)
    • 支持健康检查,只返回健康资源
    • 客户端选择其中一个 IP 地址使用
    • 类似 Simple 路由,但支持健康检查
  • 重要: 不是 ELB 的替代品,只是提供简单的客户端负载分配。


9. Beanstalk

Instantiate App

  • EC2 Instance (EC2 实例)
    • Golden AMI (黄金镜像) - 预先安装所有应用和依赖,直接启动 EC2 实例,启动最快
    • User Data (用户数据) - 用于动态配置 (记住是 dynamic),启动时执行脚本
  • RDS Database (RDS 数据库)
    • 从 Snapshot 恢复, 数据和架构 (Schema) 已就绪,快速恢复
  • EBS Volume (EBS 卷)
    • 从 Snapshot 恢复, 快速获得预配置的存储卷
  • 最佳实践: Golden AMI + User Data 结合使用,静态配置用 AMI,动态配置用 User Data。


Elastic Beanstalk

  • 应用部署和管理的 PaaS 服务
  • 核心理念: 开发者只需负责代码,其他一切 (容量配置、负载均衡、扩展、监控) 都由 AWS 自动管理。

  • Web Server Tier vs. Worker Tier
    • Web Server Tier (Web 服务器层): 处理 HTTP/HTTPS 请求, 面向用户的 Web 应用, 使用 ELB + Auto Scaling
    • Worker Tier (工作层): 处理后台任务和异步操作, 从 SQS 队列读取消息处理, 不直接响应 HTTP 请求
  • 架构: 两层可以配合使用,Web Server Tier 接收请求,Worker Tier 处理耗时任务。


10. AWS S3

AWS S3 (Simple Storage Service)

S3 Buckets (存储桶)

  • S3 服务是全球性的,但 Bucket 是区域性的
  • 在 “buckets” 中存储对象 (文件)
  • Bucket 名称必须全球唯一
  • Bucket 在区域级别定义

Objects (对象)

  • 每个对象有一个 key (键),即完整路径 (prefix + object name)
  • 最大对象大小 5TB
  • 单次上传限制 5GB,超过需使用 Multi-Part Upload
  • 也可使用 S3 Transfer Acceleration 加速上传

S3 重要特性

  • S3 总是返回对象的最新版本 (重要)
  • S3 无法加密 metadata
  • S3 是 serverless 服务
  • S3 sync 命令 - 使用 CopyObject API 在 S3 buckets 间复制对象

重要考试要点

  • 处理静态内容 → S3 + CloudFront (重要)
  • S3 图片上传场景 → 选择 S3 Event Notification,不是 EventBridge (重要)
  • S3 传输性能问题 → 给 S3 bucket 添加 prefix (前缀)
  • S3 不是数据库,与数据库功能不相关

对象所有权: 默认情况下,S3 对象归上传它的 AWS 账户所有,即使 bucket 属于另一个账户 (重要)


S3 Bucket Policy

  • User-Based Security (基于用户的安全)
    • IAM Policies (IAM 策略) - 控制 IAM 用户可以调用哪些 API (重要)
  • Resource-Based Security (基于资源的安全)
    • Bucket Policies (存储桶策略) - Bucket 级别的访问规则,如设置对象公开访问 (重要)
    • Object ACL (对象访问控制列表) - 对象级别的访问控制,较少使用
    • Bucket ACL (存储桶访问控制列表) - Bucket 级别的访问控制,较少使用
  • Encryption: 使用加密密钥加密 S3 中的对象

  • S3 Bucket Policies 结构 (JSON 格式)
    • Resources (资源) - 指定 buckets 和 objects
    • Effect (效果) - Allow (允许) / Deny (拒绝)
    • Actions (操作) - 允许或拒绝的 API 操作
    • Principal (主体) - 应用策略的账户或用户


S3 Versioning

  • 在 Bucket 级别启用, 默认状态为 null (未启用), 启用后为每个对象保存所有版本
  • 最佳实践: 版本控制是最佳实践 (重要)
    • 可以回滚到之前的版本
    • 防止误删除对象 (accidental deletion)
    • 删除操作只是添加删除标记,不真正删除对象
    • 可以恢复被删除的对象
  • 重要限制: 一旦启用版本控制,Bucket 无法恢复到未版本化状态 (重要)

版本管理

  • 每次上传相同 key 的对象会创建新版本
  • 可以永久删除特定版本
  • 存储成本增加,因为保留所有版本

S3 Replication (CRR & SRR)

  • CRR (Cross-Region Replication) - 跨区域复制
    • 将对象复制到不同 Region 的 Bucket
    • 用途:合规性要求、降低访问延迟、灾难恢复
  • SRR (Same-Region Replication) - 同区域复制
    • 将对象复制到同一 Region 的不同 Bucket
    • 用途:创建测试环境、日志聚合、生产和测试账户间复制

启用要求

  • 必须启用版本控制 (源和目标 Bucket 都要)
  • 复制是异步的
  • 必须授予 S3 适当的 IAM 权限

复制限制

  • 只复制新对象 - 启用复制后上传的对象才会被复制。
    • 现有对象需要使用 S3 Batch Replication 进行复制
      -不支持链式复制 (No Chaining)
    • Bucket A → B → C 不会自动复制 A 的内容到 C
    • 需要分别设置 A → B 和 A → C 的复制规则


S3 Storage Classes

  • 共 7 种存储类别: 1 个 General + 2 个 IA + 3 个 Glacier + 1 个 Intelligent

  • S3 Standard - General Purpose (标准通用型)
    • 用于频繁访问的数据
    • 最常见的存储类别
    • 高持久性、高可用性、低延迟

S3 Infrequent Access (IA) - 不频繁访问: 适合访问频率低,但需要时必须快速访问的数据

  • Standard-IA (标准不频繁访问)
    • 多 AZ 存储,高可用性
    • 成本低于 Standard
    • 最少存储 30 天
  • One Zone-IA (单区域不频繁访问)
    • 单 AZ 存储,成本更低
    • 不适合高可用性需求 (因为 AZ 可能故障)
    • 从 Standard 转到 One Zone-IA 最少需要 30 天
    • 如果要求 “访问始终可用”,不能选 One Zone-IA,因为 AZ 可能 down

S3 Glacier Storage Classes (Glacier 存储类别) - 归档专用: 低成本归档和备份存储,定价 = 存储费用 + 检索费用

  • S3 Glacier Instant Retrieval (即时检索)
    • Glacier 中最快但也最贵
    • 毫秒级检索
    • 最少存储 90 天
  • S3 Glacier Flexible Retrieval (灵活检索)
    • 三种检索模式
      • Expedited (加急) - 1-5 分钟
      • Standard (标准) - 3-5 小时
      • Bulk (批量) - 5-12 小时
    • 最少存储 90 天
  • S3 Glacier Deep Archive (深度归档)
    • 存储时间最久,成本最低
    • 两种检索模式
      • Standard (标准) - 12 小时
      • Bulk (批量) - 48 小时
    • 最少存储 180 天

  • S3 Intelligent-Tiering (智能分层)
    • 根据使用情况自动在访问层之间移动对象
    • 自动将对象移到不同的存储类别,无需手动管理
    • 无检索费用
    • Intelligent-Tiering 在 Standard 和 Standard-IA 之间自动转换
    • 不能从低层级向高层级转移


11. AWS S3 Advance

S3 Lifecycle Rules

  • 自动管理对象在不同存储类别间的转换
    • 在存储类别之间转换对象 (如从 Standard-IA 到 Glacier)
    • 转换需要 Lifecycle Rules (重要)
    • 例如:从 Snowball 导入到 S3 后转到 Glacier 需要 Lifecycle Rule

两种操作类型

  • Transition Actions (转换操作): 配置对象转换到另一个存储类别 - 创建 60 天后转到 Standard-IA
  • Expiration Actions (过期操作): 配置对象在一段时间后过期 (自动删除) - 365 天后删除旧版本对象

  • S3 Analytics (S3 分析)
    • 帮助决定何时将对象转换到合适的存储类别
    • 不支持 One Zone-IA 和 Glacier


S3 Requester Pays

  • 由请求者而非存储桶拥有者支付请求费用
    • 请求者支付数据传输和请求费用
    • 存储桶拥有者只支付存储费用
    • 请求者必须是 AWS 用户 (经过身份验证)
  • 注意: 启用后,所有请求必须包含 x-amz-request-payer 头部。


S3 Event Notifications

  • 自动响应 S3 中发生的特定事件。
    • 对 S3 事件自动做出反应 (如对象创建、删除、恢复等)
    • 例如:图片上传后自动触发处理
    • 需要配置适当的 IAM 权限
  • 支持的目标 (Destination)
    • SNS (Simple Notification Service) - 发送通知
    • SQS (Simple Queue Service) - 消息队列
    • Lambda Function - 执行函数
  • 考试要点: 大部分与 S3 事件相关的场景选择 S3 Event Notifications,而不是 EventBridge


S3 Performance

For Upload (上传优化) - (重要)

  • Multi-Part Upload (多部分上传)
    • 文件大于 5GB 时必须使用
    • 文件大于 100MB 推荐使用
    • 并行上传多个部分,提高速度
    • 失败时只需重传失败的部分
  • S3 Transfer Acceleration (传输加速)
    • 将文件传输到 AWS Edge Location,再通过 AWS 内部网络传到目标 S3
    • 加速远距离上传和下载
    • 可以与 Multi-Part Upload 一起使用
    • S3TA 可加速 S3 的上传和下载

For Download (下载优化)

  • S3 Byte-Range Fetches (字节范围获取)
    • 并行化 GET 请求
    • 只检索部分数据 (重要)
    • 请求失败时只需重试特定字节范围


S3 Select & Glacier Select

  • 使用简单的 SQL 语句在服务器端过滤数据
  • 只检索需要的数据,而不是下载整个对象
  • 400% Faster, 80% Cheaper (性能优化)

对比: 不使用 S3 Select 需要下载完整文件再过滤,浪费带宽和时间。


S3 Batch Operations

  • 对现有 S3 对象执行批量操作
    • 对大量 S3 对象执行批量操作
    • 一次性处理数十亿个对象
  • 常见操作: 批量加密未加密的对象, 批量复制对象到另一个 bucket
  • 使用场景: 大规模数据迁移、合规性更新、批量处理。


12. AWS S3 Security

S3 Encryption

  • 共 4 种加密方法
    • SSE-S3 - 免费
    • SSE-KMS - 收费
    • SSE-C
    • Client-Side Encryption

Server-Side Encryption (服务器端加密)

  • SSE-S3 (S3 托管密钥)
    • 新 buckets 和对象默认启用
    • AWS 管理加密密钥
    • 每个对象使用唯一密钥加密
    • 使用 AES-256 加密标准
    • Header: x-amz-server-side-encryption: AES256
    • SSE-S3 没有自动密钥轮换,需要 SSE-KMS (重要)

  • SSE-KMS (KMS 托管密钥)
    • 用户控制密钥并可在 CloudTrail 中审计密钥使用情况
    • 可以管理密钥轮换
    • 提供额外的安全层
    • Header: x-amz-server-side-encryption: aws:kms
    • 有 API 调用限制 (可能影响高吞吐量应用)

  • SSE-C (客户提供密钥)
    • 用户自己管理加密密钥
    • AWS 不存储密钥
    • 必须使用 HTTPS
    • 每次请求必须提供密钥
    • 适用场景:用户需要使用自己的密钥,但希望在 AWS 端进行加密

  • Client-Side Encryption (客户端加密)
    • 用户完全管理密钥和加密周期
    • 数据在发送到 AWS 之前已加密
    • AWS 只存储加密后的数据

  • Encryption in Transit (传输加密) - SSL/TLS
    • 使用 HTTPS 端点加密传输中的数据
    • 可使用 Bucket Policy 中的 aws:SecureTransport 条件强制使用 HTTPS


S3 CORS

  • CORS (Cross-Origin Resource Sharing)
    • 允许一个域的 Web 应用访问另一个域的资源
    • 浏览器安全机制,防止恶意跨域请求

  • S3 CORS 工作原理
    • 当客户端对 S3 bucket 发起跨域请求时,需要配置正确的 CORS 头部
    • 必须在目标 S3 bucket 上启用 CORS 配置
  • CORS 配置选项
    • 可以允许特定源 (origin)
    • 可以使用 * 允许所有源
    • 指定允许的 HTTP 方法 (GET, PUT, POST 等)
    • 指定允许的头部


S3 MFA Delete

  • MFA Delete: 防止意外删除的额外安全层
    • 防止不小心删除文件
    • 用户需要先验证身份才能删除对象 (重要)
    • 必须启用版本控制 (Versioning)
    • 只能通过 AWS CLI 配置,无法通过控制台
  • 重要限制: 只有 bucket owner (root 账户) 可以启用/禁用 MFA Delete (重要)


S3 Access Logs

  • 对 S3 的任何请求都会被记录到另一个 S3 bucket
  • 详细记录访问信息:请求者、bucket 名称、请求时间、操作类型、响应状态等
  • 使用场景: 数据分析 - 分析访问模式和使用情况


S3 Pre-signed URLs

  • 生成带有过期时间的临时 URL
  • 允许未经身份验证的用户临时访问私有 S3 对象
  • URL 过期后自动失效


Glacier Vault Lock & S3 Object Lock

  • S3 Glacier Vault Lock
    • 采用 WORM (Write Once Read Many) 模型
    • 信息一旦写入就无法修改或删除
    • 对象完全不可删除和修改
  • 存储敏感数据, 使用 Vault Lock Policy 管理访问, 锁定后策略无法更改, 即使是 AWS 也无法修改

  • S3 Object Lock
    • 必须启用版本控制 (Versioning) (重要)
    • 阻止对象版本在一段时间内被删除
    • 两个 Retention mode (重要)
      • Compliance: 所有人都无法删除,包括 root 用户
      • Governance: 有特定权限的用户可以删除
    • Legal Hold: 防止对象版本被修改或删除, 只有移除 Legal Hold 才能删除对象


S3 Access Points

  • 简化 S3 bucket 的安全管理
  • 为不同用户群体创建独立的访问入口
    • Finance 团队只能访问 /finance 前缀的对象
    • Analytics 团队只能访问 /analytics 前缀的对象
  • 每个 Access Point 有独立的权限策略


S3 Object Lambda

  • 在检索对象之前使用 Lambda 函数转换数据。
    • 使用 AWS Lambda 在对象到达调用者之前修改对象
    • 动态转换数据,无需创建多个副本
    • 保持原始数据不变
  • 需要 S3 Access Point, 需要 S3 Object Lambda Access Point, Lambda 函数执行转换逻辑
  • 使用场景: 给图片添加水印


13. CloudFront & AWS Global Accelerator

AWS CloudFront

  • Content Delivery Network (CDN) - 可以服务静态和动态内容
    • 提升读取性能,内容缓存在边缘节点
    • 全球分布的边缘位置网络
  • 安全特性
    • 防止 DDoS 攻击 (配合 AWS Shield)
    • 可指定 primary & secondary origins 实现高可用和故障转移
  • CloudFront Origins (源)
    • S3 Bucket - 使用 OAC (Origin Access Control) 保护 (重要,涉及 S3 问题时必选)
    • Custom Origin (HTTP) - 自定义 HTTP 端点 (如 ALB、EC2、任何 HTTP 后端)
  • 加密选项: CloudFront 需要加密时,选择 Field-Level Encryption (字段级加密),不是 KMS
    • Field-level Encryption 允许用户安全上传敏感信息到 Web 服务器
    • 在边缘节点加密特定字段

CloudFront vs. S3 Cross Region Replication (CRR)

  • CloudFront
    • 使用全球边缘网络
    • 有 TTL (缓存过期时间)
    • 适合静态内容
    • 内容缓存在边缘节点
  • S3 Cross Region Replication
    • 每个 Region 都要单独设置
    • 没有 TTL
    • 适合动态内容
    • 近实时更新,只读

其他重要特性

  • Price Classes (价格等级):
    • 不同地区价格不同
    • 可用于降低成本
  • 性能优化
    • CloudFront 允许 Proxy methods 和 Dynamic content 跳过 regional edge cache
    • 提高动态内容传输速度
  • 访问控制
    • WAF - 阻止 IP 地址
    • OAI (Origin Access Identity) - 保护 S3 源 (重要)
      • 也可用于 CloudFront 和 S3 之间的安全通信
    • CloudFront Signed URLs - 限制对文档的访问 (如订阅内容)
    • CloudFront Signed Cookies - 限制多个文件的访问
  • HTTPS 强制
    • 可配置 CloudFront 要求客户端必须使用 HTTPS, 提高传输安全性

CloudFront Geo Restriction

  • 根据用户的地理位置限制内容访问
  • 基于国家/地区进行访问控制
  • 两种模式
    • Allowlist (白名单) - 只允许特定国家/地区访问
    • Blocklist (黑名单) - 阻止特定国家/地区访问
  • 重要限制: CloudFront Geo Restriction 无法与 VPC 一起使用


CloudFront Cache Invalidation

  • 让 CloudFront 跳过 TTL,立即更新缓存
    • 比如你更新了后端, 但是 CloudFront 不会立即更新, 需要 CloudFront Invalidation 来跳过 TTL 来立即更新


AWS Global Accelerator

  • 利用 AWS 内部网络优化全球应用性能。
    • 提供 2 个全球静态 Anycast IP 地址 (重要)
    • 提高应用的全球可用性和性能, 支持自动故障转移
  • 改善基于 TCP 或 UDP 的应用性能
  • 流量通过 AWS 骨干网传输,减少延迟
  • 自动健康检查和故障转移
  • 成本较高,因为增加了额外的基础设施层 (对比 CloudFront 不是 cost-effective 的选择)

AWS Global Accelerator vs. CloudFront

  • CloudFront (CDN)

    • 内容在边缘节点缓存
    • 适合可缓存内容 (图片、视频)
    • 也支持动态内容 (API 加速、动态网站交付)
    • 有 TTL 和缓存机制
  • Global Accelerator (网络加速)

    • 适合 TCP 或 UDP 协议
    • 适合非 HTTP 用例 (游戏、IoT、VoIP)
    • 提供静态 IP 地址
    • 无缓存,实时路由
  • 静态内容/HTTP → CloudFront

  • 游戏/IoT/需要静态 IP → Global Accelerator

  • 成本敏感 → CloudFront

  • 需要固定 IP 地址 → Global Accelerator


14. AWS Storage Extra

AWS Snow Family

  • 整个 Snow Family 都是物理硬件设备
  • 两大用途:数据迁移 (进出 AWS) 和 边缘计算 (在边缘处理数据)
    • Snowcone: 体积最小,便携性强, 适合带到特殊环境, 8TB HDD 或 14TB SSD
    • Snowball Edge: 推荐处理 10-100 TB 数据, 两种类型
      • Storage Optimized (存储优化) - 80TB 可用存储
      • Compute Optimized (计算优化) - 支持 storage clustering (存储集群),42TB 可用存储,更强的计算能力
      • 公式记忆: Terabytes + low costs + limited time = AWS Snowball devices
    • Snowmobile: 不算在 Edge Computing 里, 推荐处理 10 PB 以上数据

  • Edge Location: 比如海上或者矿洞里, 没有网络的情况下
    • 所以需要 Edge Computing 和 Snow Family
  • 管理工具: AWS OpsHub - 用来管理 AWS Snow Family 设备的图形化界面。
  • Snowball to Glacier
    • 必须使用 S3 Lifecycle Policy
    • Snowball 兼容 S3,但不能直接写入 Glacier
    • 工作流程: Snowball → S3 → (Lifecycle Policy) → Glacier
    • 这里的 Glacier 指整个 Glacier Family (包括 Glacier Instant Retrieval、Glacier Flexible Retrieval、Glacier Deep Archive)


AWS FSx

  • AWS 上的第三方高性能文件系统
    • FSx for Windows File Server: Windows 原生文件系统, 支持 SMB 协议和 Windows NTFS
    • FSx for Lustre (Linux): 高性能并行文件系统, 适合 HPC (高性能计算), 可以与 S3 集成, 支持处理”热数据”(并行分布式处理)和”冷数据”(存储在 S3)
    • FSx for NetApp ONTAP: 企业级文件系统, 支持 NFS、SMB、iSCSI 协议, 兼容 Linux、Windows、macOS
    • FSx for OpenZFS: OpenZFS 文件系统

  • FSx for Lustre - 两种部署选项
    • Scratch File System (临时文件系统): 临时存储, 数据不复制, 成本最低
    • Persistent File System (持久文件系统): 长期存储, 数据在同一 AZ 内复制 (重要), 高可用性

  • FSx for Windows: Windows 应用、企业文件共享
  • FSx for Lustre: 机器学习、HPC、视频处理、基因组学
  • FSx for NetApp ONTAP: 混合云、企业应用
  • FSx for OpenZFS: 数据密集型应用

AWS Storage Gateway

  • 本地和云存储之间的桥梁
    • 混合云 (Hybrid Cloud) 解决方案 (重要)
    • 连接本地数据中心和 AWS 云存储
    • 保留从本地访问 AWS 数据的能力
  • 提到 NFS 的就是 File Gateway, 问 S3 大部分都是 File Gateway
  • 重要区分
    • DataSync - 用来迁移/移动数据 (一次性或定期同步)
    • File Gateway - 用来维持持续访问能力 (重要)
    • File Gateway - 文件存储
    • Volume Gateway - 块存储 (重要)

4 种 Gateway 类型 (Storage Gateway 是泛指下面这 4 个 Gateway 的总称)

  • S3 File Gateway

    • 从本地访问 S3 Buckets
    • 支持 NFS 和 SMB 协议
    • 文件存储 (File Storage)
    • 使用场景:文件共享、备份、归档
  • FSx File Gateway

    • 从本地访问 Amazon FSx for Windows File Server
    • 支持 SMB 协议和 NTFS
    • 为 Windows 文件系统提供低延迟访问
  • Volume Gateway

    • 从本地访问 S3 和 EBS
    • 支持 iSCSI 协议
    • 块存储 (Block Storage) (重要)
    • 两种模式
      • Cached Volumes (缓存卷): 主数据存储在 S3, 本地缓存最近访问的数据
      • Stored Volumes (存储卷): 整个数据集保存在本地, 定期备份到 S3 (快照)
  • Tape Gateway (磁带网关)

    • 从本地访问存档在 AWS Glacier 的虚拟磁带
    • 替代物理磁带备份
    • 如果问题里提到 Tape, 就是 Tape Gateway

AWS Transfer Family

  • 使用 FTP 协议传输文件到/从 S3 或 EFS
    • 提供托管的文件传输服务
    • 将文件传输到 S3 或 EFS
    • 无需管理基础设施
  • 支持的三种协议 (重要)
    • FTP (File Transfer Protocol) - 未加密
    • FTPS (File Transfer Protocol over SSL) - 使用 SSL/TLS 加密
    • SFTP (SSH File Transfer Protocol) - 使用 SSH 加密
  • 考试要点: 如果问到关于 FTP 或 SFTP 的问题,选择 AWS Transfer Family


AWS DataSync

  • 自动化数据传输和同步服务
    • 可以从本地或 AWS 传输大量数据 (双向)
    • 简化、自动化和加速数据复制
    • 在本地存储系统和 AWS 存储服务之间,以及 AWS 存储服务之间传输数据
  • 传输路径
    • 本地到 AWS: 本地 → S3、EFS、FSx, 需要安装 DataSync Agent
    • AWS 到 AWS: S3 ↔ EFS ↔ FSx 等之间, 不需要 Agent
  • 关键特性
    • 定期复制任务: 可以设置计划任务 (如每周五复制一次)
    • 保留元数据 (重要): 文件权限和元数据都会被保留, POSIX 权限
  • 重要区分
    • DataSync - 用来迁移/移动数据 (一次性或定期)
    • File Gateway - 用来维持持续访问能力

  • DataSync - 批量数据传输,定期同步
  • Storage Gateway - 持续混合云访问
  • Snow Family - PB 级离线数据传输
  • Transfer Family - FTP/SFTP 协议文件传输

15. SQS, SNS, Kinesis, Active MQ

AWS SQS

  • 完全托管的消息队列服务
    • 用来解耦应用程序 (如视频处理,属于多对多模型)
    • 自动扩展 (无限吞吐量、无限消息数、可重试)
    • 遇到 decouple microservices (但没有第三方要求) 就选 SQS
    • 遇到 parallel 处理选 SQS 而不是 SNS
  • 重要特性
    • Standard SQS 允许 S3 作为 event notification destination, FIFO 不行
    • 可以有多个 consumer 并行处理消息
    • Consumer 处理完消息后删除

  • 特殊场景
    • 遇到 SQS 消息处理失败 → 选择 DLQ (死信队列) 解决 (重要)
    • 遇到需要处理高吞吐量 request-response 消息模式 → 选择 temporary queue (重要)
    • 遇到需要延迟新消息交付 → 选择 delay queue

  • SQS Message Visibility Timeout (重要)
    • Visibility Timeout 过高: Consumer 崩溃后重新处理需要很长时间
    • Visibility Timeout 过低: 会导致重复处理 (duplicate)
    • 防止读取重复要增加 Timeout (重要)
    • 使用 ChangeMessageVisibility API 动态增加超时

  • SQS 优先级处理
    • 创建两个 SQS standard 队列
    • 设置 EC2 实例优先轮询高优先级队列

  • 转换为 FIFO Queue
    • 删除现有 SQS 重新创建为 FIFO
    • 确保名称以 .fifo 结尾
    • 确保吞吐量不超过 3000 消息/秒

SQS Long Polling

  • 减少延迟和 API 调用次数
    • 减少 API 请求次数, 提升性能
    • 最小化 SQS 使用成本 (省钱)
    • 降低延迟
  • 工作原理
    • Consumer 请求消息时等待一段时间 (最长 20 秒)
    • 如果队列中有消息立即返回
    • 如果队列为空, 等待直到消息到达或超时
  • 重要限制: Long Polling 不能处理 SQS 重复消息问题, 防止重复还是要用 Visibility Timeout


SQS FIFO Queue

  • 先进先出队列, 保证消息顺序
    • 按顺序传递消息 (SNS 也可以做到)
    • 默认支持最多 300 消息/秒
    • 高吞吐量模式: 最多 3000 消息/秒
    • 确保消息只被处理一次 (无重复)
  • Consumer 并发处理
    • 没有 GroupID: 只能有 1 个 consumer 顺序处理
    • 有 GroupID: 可以有多个 consumer 并行处理不同组
  • Message Group ID
    • 同一 Group ID 的消息按顺序处理
    • 不同 Group ID 的消息可以并行处理


AWS SNS

  • 发布/订阅消息服务
    • 发送一条消息到多个接收者 (如给用户发 email)
    • Publisher & Subscriber 模型 (属于一对多模型)
    • 完全托管的推送通知服务
    • Subscriber 类型: SQS, Lambda, Kinesis Data Firehose, HTTPS endpoints


Fan Out Pattern

  • SNS 到多个 SQS 的消息分发模式
    • 在 SNS 推送一次消息
    • 所有订阅的 SQS 队列接收消息
    • SNS 传递消息给多个 SQS 来接收
  • 核心优势
    • 完全解耦 (Fully decoupled)
    • 无数据丢失 (No data loss)
    • 可以进行消息过滤 (Message Filtering)
  • 消息过滤
    • 根据不同的 Filter Policy 过滤消息
    • 每个 SQS 队列可以设置不同的订阅过滤策略
  • Kinesis Fan Out
    • Kinesis 也可以使用 Fan Out Pattern, 使用 Shard 实现
    • Enhanced Fan-Out: 每个消费者独立的吞吐量


AWS Kinesis

  • 实时流数据处理服务
    • 实时摄取、处理和缓冲流数据
    • 处理大规模实时数据流

Kinesis 服务

  • Kinesis Data Streams

    • 捕获、处理和存储数据流
    • 实时数据流处理
    • 数据保留 1-365 天
    • 需要手动管理容量 (Shards)
  • Kinesis Data Firehose

    • 将数据流加载到 AWS 数据存储
    • 目标: S3、Redshift、OpenSearch、第三方服务
    • 完全托管, 自动扩展
    • 近实时传输 (60 秒延迟或 1 MB 数据)
  • 当 Kinesis Data Streams 作为数据源写入 Kinesis Data Firehose 时不需要 agent

  • Kinesis Agent 不能写入已将 Kinesis Data Streams 设置为源的 Kinesis Firehose


Kinesis Data Streams

  • 实时数据流捕获和处理服务
    • 可以重新处理和重放流数据 (Replay, 处理数据, 重要)
    • 处理实时数据流, 如点击流、交易数据、媒体 (金融数据)
    • 每秒从多个来源连续收集数 GB 的数据
  • Consumer 类型: Lambda, Kinesis Firehose, Kinesis Data Analytics
  • 重要特性
    • 数据写入后不能删除 (Immutability)
    • 数据保留 1-365 天
    • 实时处理延迟约 200ms
  • 考试要点: 如果问到 Kinesis Data Stream 加上 SQL, 答案里一定有 Kinesis Data Analytics

  • 数据分区
    • 相同 partition key 的数据进入同一个 shard
    • 保证同一 partition 内的数据有序

Capacity Mode (容量模式)

  • Provisioned Mode (预配置模式)

    • 手动选择 shard 数量
    • 手动扩展
    • 可预测成本
  • On-Demand Mode (按需模式)

    • 无需预配置或管理容量
    • 自动扩展
    • 按实际使用付费

  • 性能问题解决: 遇到 ProvisionedThroughputExceededException 问题 → 选择 batch messages 解决

Kinesis Data Firehose

  • 将流数据加载到数据存储和分析工具
    • 提供将数据流传输到数据存储或数据分析工具的功能
    • 托管服务, 自动扩展, Serverless
    • 支持数据转换 (Lambda)
  • 目标存储 (Firehose 的对象): S3, Redshift, OpenSearch, 第三方服务 (Splunk, Datadog 等)
  • 重要特性
    • Near Real-Time (近实时) - 60 秒延迟或 1 MB 数据
    • 只支持一个 consumer (将数据转储到单个数据仓库)
    • Serverless, 专门处理日志数据
    • 无数据存储, 不支持重放
  • 考试注意: 不要被 Near Real-Time 误导, 要根据题目需求选择 Data Streams 或 Data Firehose


Kinesis Data Streams vs. Firehose

  • Data Streams

    • 需要编写自定义代码
    • 实时 (Real-time, ~200ms)
    • 有数据存储 (1-365 天)
    • 支持重放 (Replay)
    • 多个消费者
  • Firehose

    • 完全托管 (Fully managed)
    • 近实时 (Near real-time, 60 秒)
    • 无数据存储
    • 不支持重放
    • 单个目标


Data ordering for Kinesis

  • Kinesis 的数据顺序保证机制
    • 相同的 key (Partition Key) 总是进入同一个 shard
    • 同一 shard 内的数据保证有序
    • 不同 shard 之间的数据无顺序保证
  • 与 SQS 对比
    • SQS: 只有 FIFO 队列支持顺序, 但吞吐量有限 (300 或 3000 消息/秒)
    • Kinesis: 支持大量 consumer 并行处理, 同时保证同一 partition 内的顺序
  • Kinesis 更适合需要大规模并行处理且保持部分顺序的场景


AWS MQ

  • 托管的消息代理服务
    • 管理第三方消息代理 (Message Broker) 软件
    • 支持开源消息代理协议
  • 支持的消息代理
    • RabbitMQ
    • ActiveMQ


16. Containers on AWS

AWS ECS

  • 在 AWS 上管理 Docker 容器, 两种 Launch Type
  • EC2 Launch Type
    • 需要预配置 (Provision) EC2 实例
    • 需要 ECS Agent (重点)
    • 你管理底层 EC2 实例
    • 更多控制权, 但需要管理基础设施

  • Fargate Launch Type
    • Serverless, 无需预配置 (重点)
    • AWS 管理底层基础设施
    • 只需定义容器资源需求
    • 更简单, 无需管理服务器

IAM Roles for ECS (重要, 是 IAM)

  • EC2 Instance Profile
    • 只针对 EC2 Launch Type
    • 赋予 EC2 实例权限
    • 用于 ECS Agent 与 ECS 服务通信
  • ECS Task Role
    • 每个 Task 都有自己的 Role
    • 赋予容器内应用权限
    • 访问 AWS 资源 (如 S3, DynamoDB)

  • 集成功能
    • ECS 可以与 Load Balancer 集成 (ALB/NLB)
    • ECS 可以与 EFS 集成 (持久化存储)
    • Fargate + EFS = Serverless 文件管理
  • 计费方式
    • EC2 Launch Type: 基于 EC2 实例和 EBS 卷计费
    • Fargate Launch Type: 基于 vCPU 和内存资源计费

ECS Auto Scaling

  • 自动增加/减少 ECS 任务数量, 三种扩展策略
  • Target Scaling (目标跟踪扩展)
    • 基于 CloudWatch 指标的目标值扩展
    • 例如: 保持 CPU 使用率在 70%
    • 自动调整任务数量以维持目标值
  • Step Scaling (步进扩展)
    • 基于 CloudWatch Alarm 扩展
    • 根据告警阈值添加/删除特定数量的任务
    • 例如: CPU > 80% 添加 2 个任务
  • Scheduled Scaling (计划扩展)
    • 基于特定时间扩展 (重要)
    • 预测性扩展, 在特定时间增加/减少容量
    • 例如: 工作日早上 9 点增加任务


AWS ECR

  • 管理 Docker 镜像, 不是 Docker 容器
    • 在 AWS 上存储和管理 Docker 镜像
    • 完全托管的 Docker 容器注册表
    • 与 ECS 和 EKS 无缝集成


AWS EKS

  • 在 AWS 上管理 Kubernetes 集群
  • 部署模式
    • 支持两种部署模式: EC2 和 Fargate (和 ECS 一样)
    • 完全托管的 Kubernetes 服务
    • 兼容标准 Kubernetes 工具

  • EKS Data Volumes (需要 StorageClass)
    • 使用 Container Storage Interface (CSI) 驱动
    • 支持的存储类型: EBS (块存储), EFS (文件系统), FSx (高性能文件系统)

EKS Node Type (三种节点类型)

  • Managed Node Groups (托管节点组)

    • 针对 EC2 Instance
    • AWS 自动管理节点生命周期
    • 自动更新和修补
  • Self-Managed Nodes (自管理节点)

    • 自己创建和管理 EC2 实例
    • 完全控制节点配置
    • 更多灵活性但需要更多管理
  • AWS Fargate

    • 不需要管理节点
    • Serverless
    • 按 Pod 资源计费


AWS App Runner

  • 部署 Web 应用和 API (Build 和 Deploy)
    • 完全托管服务
    • 不需要基础设施经验 (不需要 AWS 经验)
    • 自动构建和部署
    • Serverless


17. Serverless

AWS Lambda

  • 虚拟函数, Serverless, 时间受限 (短期执行, 最长 15 分钟)
    • 按需运行, 自动扩展
    • 无需管理服务器
    • 按实际使用时间计费 (毫秒级)
  • 触发方式
    • Event-Driven (事件驱动) - S3 事件, DynamoDB 流, API Gateway 等
    • CRON Job (定时任务) - 使用 EventBridge 定期触发 Lambda (如每小时)
  • 配额限制
    • Lambda 有 account quota (账户配额限制)
    • 需要联系 AWS 提高上限

Lambda Limits (限制)

  • Execution (执行限制)
    • Memory: 128 MB - 10 GB
    • Execution Time: 最长 15 分钟
  • Deployment (部署限制)
    • 压缩后部署包大小: 50 MB
    • 解压后大小: 250 MB
    • 容器镜像大小: 10 GB

VPC 访问重要说明: 默认情况下, Lambda 函数运行在 AWS 拥有的 VPC 中, 可以访问公共互联网和公共 AWS API。一旦 Lambda 启用 VPC, 需要通过公共子网中的 NAT Gateway 才能访问公共资源。


Lambda SnapStart

  • 提升 Lambda 函数冷启动性能
    • 针对 Java 11 及以上版本
    • 函数从预初始化状态调用
    • 大幅减少冷启动时间


CloudFront Functions & Lambda@Edge

  • 在边缘位置执行逻辑 (Edge Function, Serverless), 两种方法

  • CloudFront Functions (JavaScript)
    • CloudFront 原生功能
    • 执行时间短 (亚毫秒级)
    • 轻量级函数
    • 只能在 Viewer Request 和 Viewer Response 阶段执行
    • 更便宜

  • Lambda@Edge (Node.js 或 Python)
    • 执行时间更长 (最长几秒)
    • 更复杂的处理
    • 可在所有 4 个阶段执行: Viewer Request, Origin Request, Origin Response, Viewer Response
    • 支持网络访问和文件系统访问

  • CloudFront Functions vs. Lambda@Edge
    • CloudFront Functions: 简单轻量操作, 如 URL 重写、头修改
    • Lambda@Edge: 复杂处理, 如访问外部服务、数据库查询


Lambda in VPC

  • Lambda 访问 VPC 资源
  • 默认情况
    • Lambda 运行在 AWS 拥有的 VPC 中
    • 可以访问公共互联网和公共 AWS API
    • 无法访问用户的私有 VPC 资源
  • Lambda in VPC 配置
    • 将 Lambda 部署到用户的 VPC 中
    • 可以访问 VPC 内的私有资源 (如 RDS, ElastiCache)
    • 需要指定 VPC, 子网和安全组
    • 需要 NAT Gateway 才能访问公共互联网


RDS with Lambda

  • 从数据库实例调用 Lambda 函数
  • 支持的数据库: RDS for PostgreSQL, Aurora for MySQL (需要配置适当的权限)
  • 工作原理
    • 数据库可以直接触发 Lambda 函数
    • 在数据库内部事件时调用 Lambda
    • 实现数据库驱动的自动化


AWS DynamoDB

  • NoSQL 数据库, 跨多个 AZ 复制, 自动扩展, 无需预配置
    • 完全托管的 NoSQL 数据库
    • 高可用性, 跨多个 AZ 复制
    • 毫秒级延迟
    • 无需预配置服务器
  • 两种 Class: Standard (标准) & Infrequent Access (IA, 不频繁访问)
  • 考试要点
    • 问到 DynamoDB 且处理 Email → 选择 DynamoDB Stream
    • 问到关于 Stream → 考虑 DynamoDB Stream
    • 问到 DynamoDB 且处理 unpredictable (不可预测) 数据 → 选择 On-Demand table
    • 默认情况下, DynamoDB 表使用 AWS owned key 加密
    • 不要用数据库存储图片

  • Read/Write Capacity Mode: RCU 和 WCU 没有关联 (可以只增加 RCU 不增加 WCU)
  • Provisioned Mode (预配置模式)
    • 自己定义需要多少 RCU (读取容量单位) 和 WCU (写入容量单位)
    • 可预测的流量
    • 成本更低
    • 可以配置 Auto Scaling
  • On-Demand Mode (按需模式)
    • 自动扩展 RCU 和 WCU
    • 不可预测的流量
    • 更贵
    • 无需容量规划

  • Point-In-Time Recovery (PITR, 时间点恢复, 重要)
    • 启用 PITR 后, DynamoDB 自动备份表数据
    • 每秒粒度的备份
    • 可以恢复到过去 35 天内的任意时刻
    • 保护数据免受意外删除或写入

DynamoDB Advance

  • DynamoDB Accelerator (DAX)
    • 处理 cache, 但 DAX 不是 relational 的
    • 通过缓存解决读取拥塞问题
    • 微秒级延迟
    • 不支持 SQL query caching
    • 提高 DynamoDB 的 read 性能, 不是 write (重要)
    • 完全托管的内存缓存
    • 与 DynamoDB 完全兼容

  • DynamoDB Stream Processing (流处理)
    • 表中项目级修改的有序流
    • 用来处理 Stream
    • 可以调用 Lambda 函数 (如发送邮件)
    • 捕获数据变更 (INSERT, UPDATE, DELETE)
    • 24 小时数据保留

  • DynamoDB Global Tables (全球表, 重要)
    • 使 DynamoDB 表在多个 Region 以低延迟访问
    • 前提: 需要先启用 DynamoDB Stream
    • 多区域, 多主复制
    • 自动跨区域复制
    • 提供灾难恢复能力

  • DynamoDB Time To Live (TTL, 生存时间, 重要)
    • 在过期时间戳后自动删除项目
    • 定时删除 DynamoDB 里的 item
    • 无需额外成本
    • 后台自动清理过期数据
    • 减少存储成本


AWS API Gateway

  • 创建、发布和管理 API 的托管服务
    • 调用 Lambda 函数
    • 暴露 REST API (无状态客户端-服务器通信)
    • Lambda + API Gateway = 无需管理基础设施
    • Serverless 架构的关键组件
  • API 保护
    • 防止 API 被过多请求压垮 (防抖, 节流)
    • 支持请求限流和配额管理
  • API Gateway Caching (缓存)
    • 可以改善延迟 (improve latency)
    • 减少对后端的调用次数
    • 降低成本和提升性能
    • 记住: Read Replica 是要额外付费的

API Gateway Endpoint Types (端点类型)

  • Edge-Optimized (边缘优化, 默认)

    • 适合全球客户端
    • API Gateway 位于一个 Region
    • 通过 CloudFront 边缘位置路由请求
    • 降低全球用户延迟
  • Regional (区域性)

    • 适合同一 Region 的客户端
    • 不使用 CloudFront
    • 可以手动配置 CloudFront
  • Private (私有)

    • 针对 VPC 内部访问
    • 只能从 VPC 内访问
    • 使用 VPC Endpoint


AWS Step Functions

  • 构建 Serverless 可视化工作流来编排 Lambda 函数
    • 搭建 Serverless 可视化 Workflow (重要)
    • 协调多个 AWS 服务
    • 无需编写复杂的编排代码
    • 可视化设计和监控


AWS Cognito

  • 为用户提供身份以与 Web 或移动应用交互, 两个核心组件
  • Cognito User Pools (用户池)
    • 负责用户登录, 内置用户管理功能
    • 用户注册、登录、密码重置
    • 支持 MFA
    • 支持社交登录 (Google, Facebook 等)
  • Cognito Identity Pools (身份池)
    • 提供临时 AWS credentials
    • 允许用户访问 AWS 服务 (如 S3, DynamoDB)
    • 支持匿名访客访问
  • 重要考试要点: ALB + Cognito User Pool 才是做身份验证 (Auth) 的, 不是 CloudFront


18. Database Summary

AWS RDS

  • AWS RDS (Relational Database Service) - 托管关系型数据库服务
  • 支持的数据库引擎: PostgreSQL, MySQL, Oracle, SQL Server, MariaDB, Amazon Aurora
  • 核心特性
    • 需要预配置 (Provisioned)
    • 支持 Auto Scaling (存储自动扩展)
    • 自动备份
  • 高级功能
    • Read Replica (只读副本) - 提升读取性能
    • Multi-AZ (多可用区) - 提供高可用性和故障转移


AWS Aurora

  • AWS Aurora - AWS 专有的高性能关系型数据库
  • 支持的数据库引擎: PostgreSQL, MySQL
  • 核心特性
    • 数据存储在 6 个副本, 跨 3 个 AZ
    • 高可用性
    • 自动扩展
    • 比 MySQL 快 5 倍, 比 PostgreSQL 快 3 倍
  • Aurora Serverless
    • 适合不可预测的工作负载 (unpredictable workloads)
    • 自动启动、关闭和扩展容量
    • 按实际使用付费
  • Aurora Global (全球数据库)
    • 跨 Region 复制延迟小于 1 秒
    • 保证至少有一个 Replica 可用
    • 灾难恢复
    • 全球低延迟访问
  • Aurora Database Cloning (数据库克隆)
    • 快速访问 Aurora DB
    • 使用写时复制技术
    • 适合生成测试数据库
    • 比 snapshot 和 restore 快得多


AWS ElastiCache

  • AWS ElastiCache - 托管的内存数据存储服务
  • 支持的引擎: Redis, Memcached, In-memory data store (回去看第七章)
  • 核心特性
    • 内存缓存, 微秒级延迟
    • 减少数据库负载
    • 提升应用性能
  • Redis 高级功能
    • 支持 Clustering (集群)
    • Multi-AZ (高可用性)
    • Read Replicas (Shard, 分片)
    • 持久化
    • 数据结构支持


AWS DynamoDB (SM)

  • AWS DynamoDB - Serverless NoSQL 数据库
  • 核心特点
    • Serverless, 无需管理服务器
    • NoSQL 数据库
    • 适合快速变化的 schemas (回去看第十七章)
    • 毫秒级延迟
    • 跨多个 AZ 复制
  • Capacity Modes (容量模式)
    • Provisioned Capacity (预配置容量) - 预测流量, 成本更低
    • On-Demand Capacity (按需容量) - 不可预测流量, 自动扩展
  • DAX (DynamoDB Accelerator)
    • 读取缓存集群
    • 微秒级读取延迟
    • 完全托管的内存缓存
    • 提升读取性能
  • Event Processing (事件处理)
    • DynamoDB Streams + Lambda - 实时处理数据变更
    • Kinesis Data Streams - 更大规模的流处理
  • 数据导入/导出
    • Export to S3 不使用 RCU - 导出不消耗读取容量
    • Import from S3 不使用 WCU - 导入不消耗写入容量
    • 成本效益高的数据迁移


AWS S3

  • AWS S3 (Simple Storage Service) - 对象存储服务
  • 核心特点
    • 键/值存储对象 (Key/Value store)
    • 适合文件体积大的存储 (回去看第十章)
    • 无限存储容量
    • 高持久性 (99.999999999%, 11 个 9)
  • 存储层级 (Tiers)
    • Standard - 频繁访问
    • Intelligent-Tiering - 自动分层
    • Standard-IA - 不频繁访问
    • One Zone-IA - 单区域不频繁访问
    • Glacier - 归档
    • Glacier Deep Archive - 长期归档
  • 核心功能 (Features)
    • Versioning (版本控制) - 保留对象的多个版本
    • Encryption (加密) - 静态和传输加密
    • Replication (复制) - CRR (跨区域) 和 SRR (同区域)
    • Lifecycle Policies (生命周期策略)
    • Event Notifications (事件通知)
  • 加密方式 (Encryption)
    • SSE-S3 - S3 托管密钥, 免费, 默认
    • SSE-KMS - KMS 托管密钥, 可审计, 密钥轮换
    • SSE-C - 客户提供密钥, 客户完全控制


AWS DocumentDB

  • 托管的 MongoDB 兼容数据库
  • 核心特点
    • 专为 MongoDB 设计 (只负责 MongoDB)
    • NoSQL 文档数据库
  • 特性
    • 跨 3 个 AZ 存储 6 个副本
    • 自动扩展存储 (最多 64 TB)
    • 每秒数百万请求
    • 自动备份和时间点恢复


AWS Neptune

  • 图数据库服务
    • 适合社交网络 (Social Network)
    • 完全托管, 高可用性


AWS Keyspaces

  • 托管的 Apache Cassandra 数据库服务
  • 核心特点
    • 管理 Apache Cassandra (也是 NoSQL)
    • Serverless, 完全托管
    • 兼容 Cassandra Query Language (CQL)
  • 使用场景: 存储 IoT 设备信息, 时间序列数据, 工业设备监控


AWS QLDB

  • 量子账本数据库
    • Immutable (不可变, 无法删除)
    • 用于记录金融交易
    • Serverless, 完全托管


AWS Timestream

  • Serverless 时间序列数据库
    • Serverless Time Series Database (时间序列数据库)
    • 完全托管, 快速且可扩展
    • 自动分层存储
  • 使用场景: IoT 应用, 实时分析
  • 比传统关系型数据库快 1000 倍


19. Data & Analytics

AWS Athena

  • 交互式查询服务, 直接在 S3 中分析数据
    • 使用标准 SQL 直接分析 S3 数据
    • Serverless
    • 按查询扫描的数据量付费
    • 无需加载数据
  • 重要限制
    • Athena 支持 SQL query 处理 S3 数据
    • Athena 无法实时分析数据 (重要)
    • 适合临时查询和分析

  • Performance Improvement (性能优化)
    • 使用列式数据格式节省成本
    • 更少的数据扫描
    • 推荐格式: Parquet, ORC
    • 数据分区提升性能

  • Federated Query (联合查询)
    • 允许跨 AWS 或本地存储的数据运行 SQL 查询
    • 连接多个数据源
    • 使用 Data Source Connectors
    • 查询 RDS, DynamoDB, Redshift 等


AWS Redshift

  • 数据仓库服务
    • 基于 PostgreSQL, 但是是 OLAP (在线分析处理)
    • 列式存储
    • MPP (大规模并行处理)
    • SQL 查询支持
  • 使用场景: 处理 BI (商业智能) 数据, 与 AWS QuickSight 或 Tableau 配合使用, PB 级数据规模 → Redshift (重要)
  • 考试要点: 如果问到 Redshift 且和 S3 有关 → Redshift Spectrum (重要)

  • Snapshots & DR (快照和灾难恢复)
    • Redshift 有 “Multi-AZ” 模式支持集群
    • 启用自动快照, 将 Redshift 集群快照复制到其他 AWS Region
    • 时间点恢复

  • Load Data into Redshift (加载数据到 Redshift)
    • Kinesis Data Firehose - 流数据加载
    • S3 with Enhanced VPC Routing (注意) - 通过 VPC 从 S3 加载
    • EC2 Instance - JDBC/ODBC 连接加载
    • AWS DMS (数据库迁移)

  • Redshift Spectrum (和 S3 有关)
    • 查询 S3 中的数据无需加载 (重要)
    • 扩展查询到 S3 的 exabyte 级数据
    • 无需 ETL, 按扫描数据量付费
    • 使用现有 Redshift 集群的计算资源


AWS OpenSearch

  • 搜索和分析服务
    • 可以搜索任何字段, 甚至部分匹配
    • 原名 ElasticSearch (专门做查询的)
    • 全文搜索引擎, 实时数据分析
  • 特点
    • 可以实时处理和搜索日志
    • 支持复杂查询
    • 可视化仪表板 (OpenSearch Dashboards)
    • 支持 Kibana 可视化


AWS EMR (Elastic MapReduce)

  • 大数据处理服务
    • 帮助创建 Hadoop 集群 (Big Data)
    • 托管的大数据框架, 快速处理大量数据
  • 考试要点: 提到 Hadoop、Apache Spark 等 → 选 EMR
  • 支持的框架: Hadoop, Apache Spark, Flink

  • Node Types (节点类型)
    • Master Node (主节点) - 管理集群, 协调任务
    • Core Node (核心节点) - 运行任务并存储数据 (HDFS)
    • Task Node (任务节点) - 只运行任务, 不存储数据 (可选)
  • Purchasing Options (购买选项)
    • On-Demand - 灵活, 按需付费
    • Reserved (1-3 年) - 成本节省, 长期工作负载
    • Spot Instances - 最便宜, 适合 Task Nodes


AWS QuickSight

  • Serverless 商业智能服务
    • 使用 ML 分析商业数据并创建 Dashboard
  • 使用 SPICE 引擎进行内存计算
  • 快速查询性能, 自动扩展, 按会话付费
  • 数据源: RDS, Aurora, Redshift, Athena, S3, On-premises 数据库

  • Dashboard & Analysis (仪表板和分析)
    • 可以选择性地与用户或组分享分析或仪表板


AWS Glue

  • 托管的 ETL (提取、转换、加载) 服务
    • 帮助客户准备和加载数据进行分析
    • 遇到处理 ETL → 选 Glue, 使用 Apache Spark
    • 使用 AWS Glue 处理 S3 中的原始数据 (重要)
  • 数据源和目标: Amazon S3, VPC 中的数据存储, 本地 JDBC 数据存储, 提取、转换并加载数据回这些位置

  • 数据格式转换
    • 转换数据为 Apache Parquet 格式 (会考)
    • 看到 Apache Parquet → 想到 Glue

  • Glue 组件
    • Glue Job Bookmarks (重要): 防止重新处理旧数据, 避免重复处理
    • Glue Elastic Views: 使用 SQL 跨多个数据存储组合和复制数据, 实时物化视图
    • Glue DataBrew: 清理和规范化数据, 可视化数据准备工具

AWS Lake Formation

  • 托管服务, 用于设置数据湖
    • 设置和管理数据湖 (Data Lake)
    • 集中存储所有用于分析的数据
    • 简化数据湖创建过程
  • 考试要点: 题目提到 Fine-grained Access Control (细粒度访问控制) for applications → 想到 Lake Formation
  • 数据源: S3, RDS, 关系型和 NoSQL 数据库, 本地数据源


Kinesis Data Analytics

  • 实时流数据分析服务
    • 对 Kinesis Data Streams 和 Firehose 使用 SQL 进行实时分析 (重要)
    • 完全托管, 自动扩展, Serverless

  • 两种模式
    • Kinesis Data Analytics for SQL: 使用标准 SQL 查询流数据, 适合简单的流处理
    • Amazon Managed Service for Apache Flink: 使用 Java, Scala, Python 编写复杂流处理应用, 更强大的流处理能力


AWS MSK (Managed Streaming for Apache Kafka)

  • 托管的 Apache Kafka 服务
    • 管理 Apache Kafka (有 Serverless 选项)
    • Kinesis 的替代方案 (同样处理流数据), 但针对 Apache Kafka
  • 部署模式: Provisioned (预配置), Serverless (无服务器)

  • Kinesis Data Streams vs. AWS MSK
    • Kinesis Data Streams: AWS 原生服务, 简单易用, 与 AWS 服务深度集成, 按 shard 计费, 数据保留 1-365 天, 1 MB 消息限制
    • AWS MSK: Apache Kafka 兼容, 开源生态系统, 适合现有 Kafka 应用迁移, 无消息大小限制, 更长数据保留期

  • 选择建议
    • 新项目且深度 AWS 集成 → Kinesis
    • 现有 Kafka 应用或需要 Kafka 生态 → MSK

20. Machine Learning

AWS Rekognition

  • 图像和视频分析服务
    • 使用 ML 在图像和视频中识别物体、人物、文本、场景
    • 面部分析和面部搜索
  • Content Moderation (内容审核, 重要): 检测不适当的内容


AWS Transcribe

  • 语音转文字服务
    • 将语音转换为文本 (Transcribe 是转录的意思)
    • 自动语音识别 (ASR), 支持多种语言
  • PII 保护 (重要): 自动删除个人身份信息 (PII)


AWS Polly

  • 文字转语音服务
    • 将文本转换为语音, 支持多种语言和声音
  • 高级功能
    • Pronunciation Lexicons (发音词典): 自定义单词发音
    • Speech Synthesis Markup Language (SSML): 强调特定单词


AWS Translate

  • 语言翻译服务
    • 神经机器翻译, 支持多种语言互译


AWS Lex & Connect

  • 对话和联络中心服务
  • AWS Lex
    • 构建聊天机器人 (所有和 chatbot 有关的都是 Lex)
    • 与 Alexa 相同的技术
    • 自动语音识别 (ASR), 自然语言理解 (NLU)
  • AWS Connect
    • 构建云端联络中心, 虚拟呼叫中心, 接收和拨打电话
    • 与 Lex 集成实现智能客服


AWS Comprehend

  • 自然语言处理 (NLP) 服务
    • Natural Language Processing (NLP)
    • 文本分析, 情感分析, 关键短语提取, 语言检测
  • Comprehend Medical (重要)
    • 用于临床文本 (医疗方面, 非常重要)
    • 从非结构化医疗文本中提取信息
    • 识别医疗实体 (药物、诊断、症状等)


AWS SageMaker

  • 机器学习平台
    • 构建机器学习模型
    • 完全托管的 ML 服务


AWS Forecast

  • 时间序列预测服务
    • 使用 ML 提供高精度预测


AWS Kendra

  • 智能文档搜索服务
    • 托管的文档搜索服务
    • 使用机器学习, 从文档中提取精准答案


AWS Personalize

  • 个性化推荐服务
    • 使用 ML 提供实时个性化推荐


AWS Textract

  • 文档文本提取服务
    • 使用 ML 提取文本 (重要)
    • 自动从文档中提取文本和数据


21. AWS Mointoring & Audit

CloudWatch Metrics

  • 监控 AWS 服务的指标服务
    • CloudWatch Metrics 帮助监控 AWS 中的每个服务
    • 可以使用 CloudWatch Metrics 处理 CloudTrail logs 来监视异常活动
    • 结合 CloudTrail 进行安全监控
  • 常见指标: EC2: CPU、网络、磁盘, RDS: 连接数、IOPS, Lambda: 调用次数、错误

  • CloudWatch Metric Streams:
    • 近实时传输 CloudWatch Metrics (注意)
    • 目标: Kinesis Data Firehose, S3, 第三方服务


CloudWatch Logs

  • AWS 中存储应用日志的服务
    • 存储应用日志 (来源: S3, Kinesis, Lambda 等)
    • 日志默认加密
  • 日志来源: EC2 实例, Lambda 函数, ECS/EKS 容器, CloudTrail

  • CloudWatch Logs Insights
    • 搜索和分析存储在 CloudWatch Logs 中的日志数据

  • CloudWatch Logs Subscriptions (可以导出到 S3)
    • 从 CloudWatch Logs 获取实时日志事件进行处理和分析
    • 目标: Kinesis Data Streams, Kinesis Data Firehose, Lambda

重要特性: 可以配置 CloudWatch Logs log group 将接收的数据近实时流式传输到 Amazon OpenSearch Service 集群, 通过 CloudWatch Logs subscription


CloudWatch Agent

  • 从 EC2 和本地服务器收集指标和日志
    • 重要前提: 默认情况下, EC2 不传递日志给 CloudWatch (重要)
    • 需要安装 CloudWatch Agent 才能传递日志和自定义指标
  • CloudWatch Logs Agent (旧版)
    • 只传递日志到 CloudWatch Logs
  • CloudWatch Unified Agent (推荐)
    • 可以传递更多信息, 收集系统级指标: CPU, RAM, 磁盘, 网络等


CloudWatch Alarms

  • 基于指标触发通知的告警服务
    • CloudWatch Alarms 用于为任何指标触发通知 (使用 SNS 发送消息)
    • 监控指标并采取行动
  • 告警目标 (Target)
    • EC2 - 停止、终止、重启、恢复实例
    • ASG (Auto Scaling Group) - 触发扩展策略
    • SNS - 发送通知 (邮件、SMS 等)
  • 告警状态
    • OK - 指标正常
    • ALARM - 超过阈值
    • INSUFFICIENT_DATA - 数据不足


  • Composite Alarms (复合告警)
    • 监视当前所有 Alarm 的状态
    • 组合多个告警条件, 使用 AND/OR 逻辑


AWS EventBridge

  • 事件驱动架构的事件总线服务
    • 调度 CRON 作业 (定时重复任务, 事件驱动)
    • 响应 SaaS 应用程序 (AWS 服务) 的事件
    • 如果提到第三方应用程序 (3rd party application), 考虑 EventBridge

  • 基本上所有事件都要经过 EventBridge

  • Event Bus (事件总线)
    • Default Event Bus - AWS 服务事件
    • Partner Event Bus - 第三方 SaaS (如 Datadog, Zendesk)
    • Custom Event Bus - 自定义应用事件
  • 事件归档和重放
    • 可以归档事件 (Archive Events) 并且重放 (Replay)

  • Schema Registry (架构注册表)
    • 分析 Event Bus 中的事件并推断架构

  • Resource-based Policy (基于资源的策略)
    • 管理特定 Event Bus 的权限 (允许/拒绝)
    • 跨账户事件共享


CloudWatch Insights

  • 一组针对特定场景的深度监控工具, 共有 4 种不同的 Insights
  • CloudWatch Container Insights (处理容器)
    • 收集、聚合、汇总容器的指标和日志
    • 支持: ECS, EKS, Kubernetes, Fargate 等
    • 容器级别监控

  • CloudWatch Lambda Insights
    • 监控运行在 Lambda 上的 Serverless 应用

  • CloudWatch Contributor Insights (注意, 可以查 IP)
    • 分析日志数据并显示贡献者数据 (用于系统性能)

  • CloudWatch Application Insights
    • 提供仪表板显示与 AWS 服务相关的潜在应用问题

  • Container 问题 → Container Insights
  • Lambda 问题 → Lambda Insights
  • 需要查看贡献者/IP → Contributor Insights
  • 应用整体健康 → Application Insights

AWS CloudTrail

  • AWS 账户的治理、合规和审计服务
    • 提供 AWS 账户的治理、合规和审计 (审计 events 和 API 调用)
    • 记录事件历史或 API 调用
    • CloudTrail 是全球服务
    • 如果资源被误删, 第一时间查看 CloudTrail

  • CloudTrail Events (事件类型)
    • Management Events (管理事件)
      • 在 AWS 账户资源上执行的操作, 创建、删除、修改资源
    • Data Events (数据事件)
      • S3 对象级活动 (GetObject, DeleteObject), Lambda 函数执行, DynamoDB 表操作
    • CloudTrail Insights Events (洞察事件)
      • 检测异常活动 (安全), 使用 ML 识别不寻常的 API 使用

  • CloudTrail Insights (重要)
    • CloudTrail Insights 用于检测账户中的异常活动
    • 检测场景: API 调用激增, 资源配置异常变化

  • CloudTrail Event Retention (事件保留)
    • 将事件存储 90 天后保留到 S3
    • 超过 90 天需要导出到 S3


AWS Config

  • 资源配置监控和合规性服务
    • AWS Config 提供 AWS 资源配置的详细视图 (重要)
    • 记录配置和随时间的变更 (记录 config 是否被修改)
  • 实用示例: 可以使用 Config 检查 ACM 证书是否临近过期

  • Config Rules (配置规则)
    • 可以自定义 Rule 来检查资源合规性
    • 也有 AWS managed rules (AWS 托管规则)
  • 常见 AWS 托管规则示例
    • 检查 S3 bucket 公开访问
    • 检查 EC2 实例是否使用批准的 AMI
    • 检查 EBS 卷是否加密

  • Config Remediations (自动修复)
    • 自动修复 (remediation) 不合规资源, 使用 SSM Automation Documents
    • 例如: 自动关闭不受限制的 SSH 访问

  • Config Notifications (通知)
    • 使用 EventBridge 在 AWS 资源不合规时触发通知
    • 集成 SNS, Lambda 等

  • CloudTrail vs. Config
    • CloudTrail: 谁在什么时候做了什么 (API 调用审计)
    • Config: 资源配置是什么, 如何变化 (配置管理)

22. IAM Advanced

AWS Organizations

  • 管理多个 AWS 账户的全球服务
    • 管理多个 AWS 账户, 全球服务
  • Consolidated Billing (合并账单, 重要)
    • 跨所有账户的合并账单
    • 如果问到 Shield Advanced 相关的费用问题, 可能是没有设置 Consolidated Billing
  • 账户迁移: 要将账户转移到另一个 Organization, 必须先从原 Organization 中移除

  • Service Control Policies (SCP, 限制用户)
    • IAM 策略应用于 OU (组织单元) 或账户, 限制用户和角色
    • Blocklist (黑名单) 和 Allowlist (白名单) 模式
    • IAM Roles 针对服务, SCP 针对 Organization
  • SCP 重要特性
    • 如果用户或角色的 IAM 权限策略授予了某个操作的访问权限, 但该操作被 SCP 不允许或明确拒绝, 则用户或角色无法执行该操作
    • SCP 影响成员账户中的所有用户和角色, 包括成员账户的 root 用户
    • SCP 不影响服务关联角色 (service-linked role)
  • SCP vs. IAM
    • SCP: 设置账户级别的最大权限边界
    • IAM: 授予具体权限

  • IAM Permission Boundary (IAM 权限边界, 回去看第二章)
    • 权限边界是一种高级功能, 使用托管策略设置基于身份的策略可以授予 IAM 实体的最大权限
    • 限制用户/角色的最大权限

IAM Conditions

  • IAM 策略中的条件语句
    • 在 IAM 策略中使用条件来精细控制权限
    • 基于特定条件授予或拒绝访问
  • 重要区分: 要分清楚 bucket level permissions 和 object level permissions
  • Bucket Level Permissions
    • 针对整个 bucket 的操作
    • 例如: s3:ListBucket, s3:CreateBucket, s3:DeleteBucket
    • 资源格式: arn:aws:s3:::bucket-name
  • Object Level Permissions (使用 /*)
    • 针对 bucket 内对象的操作
    • 例如: s3:GetObject, s3:PutObject, s3:DeleteObject
    • 资源格式: arn:aws:s3:::bucket-name/*


IAM Roles vs Resource Based Policies

  • 两种不同的权限授予方式
  • IAM Role (角色)
    • 放弃原有权限, 承担角色分配的权限
    • 临时切换身份
    • 使用 AssumeRole
  • Resource Based Policy (基于资源的策略)
    • 主体不需要放弃原有权限
    • 保留原有身份和权限
    • 直接访问资源

  • EventBridge 示例
    • 支持 Resource Based Policy: Lambda, SNS, SQS, API Gateway
    • 需要 IAM Roles: Kinesis Streams, Step Functions


Policy Evaluation Logic

  • 策略评估逻辑
  • IAM Permission Boundaries (IAM 权限边界)
    • 设置 IAM 实体可以获得的最大权限的功能
    • 不授予权限, 只限制权限
  • 策略评估逻辑 (重要): 评估顺序 (先来后到)
    • 默认拒绝 (Implicit Deny)
    • 显式拒绝 (Explicit Deny) - 最高优先级
    • 允许 (Allow)
  • 关键原则: 先 Deny 就算后面 Allow 也没用

  • 示例答案: No, No, No
    • 如果有任何 Deny, 结果就是 Deny


IAM Identity Center

  • 单点登录 (SSO) 服务
    • 一次登录访问所有资源 (SSO)
    • 集中式身份管理
  • 支持的登录目标
    • AWS Organizations 中的 AWS 账户
    • 业务云应用 (如 Salesforce, Microsoft 365)
    • 自定义 SAML 2.0 应用

Fine-grained Permissions and Assignments (细粒度权限和分配)

  • Multi-Account Permissions (多账户权限)

    • 管理跨 AWS 账户的访问
    • 集中管理多账户权限
    • 权限集 (Permission Sets)
    • 简化权限分配
  • Application Assignments (应用分配)

    • SSO 访问业务应用
    • 预集成的 SaaS 应用
    • 自定义 SAML 应用
    • 统一访问体验
  • Attribute-Based Access Control (ABAC, 基于属性的访问控制)

    • 基于用户属性 (标签) 的权限
    • 使用标签控制访问


AWS Directory Services

  • 在 AWS 中创建 Active Directory (AD, 目录服务) (重要), 三种类型
  • AWS Managed Microsoft AD
    • 在 AWS 中创建自己的 AD
    • 完全托管的 Microsoft AD
    • 支持多因素认证 (MFA)
  • AD Connector
    • 代理重定向到本地 AD
    • 不存储任何目录信息
    • 充当网关/代理
  • Simple AD
    • AWS 上兼容 AD 的托管目录
    • 基于 Samba 4
    • 低成本, 基本功能

  • 需要完整 Microsoft AD 功能 → AWS Managed Microsoft AD
  • 已有本地 AD, 需要代理 → AD Connector
  • 简单需求, 成本敏感 → Simple AD

AWS Control Tower

  • 设置和管理安全合规的多账户 AWS 环境 (重要)
    • 管理 AWS 多账户环境, 基于最佳实践 (Best Practice)
  • Control Tower 使用 AWS Organizations 创建账户

Control Tower - Guardrails (护栏, 管理 Control Tower)

  • Preventive Guardrail (预防性护栏)
    • 使用 SCP (服务控制策略)
    • 主动阻止违规操作
    • 例如: 限制所有账户的区域使用
  • Detective Guardrail (检测性护栏)
    • 使用 AWS Config
    • 检测不合规资源
    • 例如: 识别未标记的资源


23. AWS Security & Encryption

AWS KMS

  • 加密密钥管理服务
    • 听到 AWS 服务的 “encryption” 时, 很可能是 KMS
    • AWS 为我们管理加密密钥 (与大多数 AWS 服务集成)
    • 集成服务: EBS, S3, RDS, SSM 等
    • KMS Keys 是区域级别的 (scoped per Region)
    • 注意: KMS 并不适合保存 secret, 加密的东西不一定是 secret

Types of KMS Keys (3 种类型)

  • AWS Owned Keys

    • AWS 拥有和管理
    • 免费
    • 无法查看或管理
    • 自动轮换
  • AWS Managed Keys

    • AWS 创建和管理
    • 免费
    • 可以查看策略
    • 自动每年轮换
    • 格式: aws/service-name
  • CMK (Customer Managed Keys, 客户托管密钥)

    • 完全控制
    • 按使用付费
    • 可自定义轮换策略
    • 可删除

两种 Key 形式

  • Symmetric (对称, 单密钥)

    • 单个加密密钥
    • 加密和解密使用同一密钥
    • AWS 服务默认使用
    • 密钥不会离开 KMS
  • Asymmetric (非对称, 公钥和私钥)

    • 公钥和私钥对
    • 公钥可下载
    • 私钥不会离开 KMS
    • 用于签名和验证

Automatic Key Rotation (自动密钥轮换)

  • 每 1 年自动轮换一次
  • 仅适用于 Customer Managed Keys
  • AWS Managed Keys 自动每年轮换

KMS Key Policies (控制 KMS 密钥访问)

  • Default KMS Key Policy
    • 整个 AWS 账户都可以访问
    • 通过 IAM 策略控制访问
  • Custom KMS Key Policy
    • 定义谁可以访问密钥
    • 支持跨账户访问 (Cross Account Access)

  • 密钥删除 (重要): 删除 AWS KMS 密钥是破坏性和潜在危险的操作。因此, AWS KMS 强制执行等待期 (Pending state)
    • 最短等待期: 7 天, 最长等待期: 30 天
    • 在等待期内可以取消删除

KMS Multi-Region Keys

  • 多区域 KMS 密钥
    • 在不同 AWS Region 拥有相同的 KMS 密钥
    • 在一个 Region 加密, 在其他 Region 解密
    • 独立管理但相互关联
  • 使用场景
    • DynamoDB Global Tables - 跨区域加密数据
    • Global Aurora - 全球数据库加密


S3 Replication with Encryption

  • S3 复制与加密
    • 默认复制行为: 未加密对象和使用 SSE-S3 加密的对象默认会被复制
    • SSE-KMS 加密对象复制: 使用 SSE-KMS 加密的对象需要更多选项配置. SSE-S3 在复制时会保持加密, 但 SSE-KMS 需要额外设置
    • SSE-KMS 复制所需配置: 指定目标 Region 的 KMS 密钥, 授予 S3 使用 KMS 密钥的权限


Encrypted AMI Sharing Process

  • 共享加密 AMI 所需权限
  • 需要 Launch Permission (启动权限)
    • 授予目标账户启动 AMI 的权限
    • 修改 AMI 权限
  • 需要 Share KMS Keys (共享 KMS 密钥)
    • 修改 KMS 密钥策略
    • 允许目标账户使用密钥
  • 需要 Permission to Decrypt (解密权限)
    • 目标账户的 IAM 角色/用户需要解密权限
    • 才能启动加密的 AMI


SSM Parameter Store

  • Secure storage for configuration and secrets
    • 比起 Secrets Manager 有更广的用途, 比如 URLs, AMI IDs, License keys 等等
  • Have built-in verion tracking (每次 edit secret 都会被记录)
  • SSM 没有 Automatic key rotation (重要)


AWS Secrets Manager

  • 配置和密钥的安全存储
    • 安全存储配置和密钥
    • 比 Secrets Manager 用途更广泛
    • 存储类型: 配置数据、URLs、AMI IDs、License keys、密码等
    • 与 IAM 和 KMS 集成
  • 内置版本跟踪
    • 每次编辑 secret 都会被记录
    • 保留历史版本, 可以回滚到之前版本
  • 重要限制: SSM Parameter Store 没有自动密钥轮换 (Automatic Key Rotation) (重要)
    • 需要手动更新密钥, 或使用 Lambda 自动化
  • 层级
    • Standard - 免费, 最多 10,000 参数, 4KB 大小
    • Advanced - 收费, 最多 100,000 参数, 8KB 大小

  • SSM Parameter Store vs. Secrets Manager
    • Parameter Store: 更广泛的配置管理, 免费层, 无自动轮换
    • Secrets Manager: 专注密钥, 自动轮换, 更高级功能, 收费


AWS Certificate Manager (ACM)

  • TLS 证书管理服务
    • 轻松配置、管理和部署 TLS 证书 (HTTPS)
    • 免费的公共证书, 与 AWS 服务集成
  • 如果要给 Elastic Beanstalk 配置 HTTPS, 需要使用 ACM
  • 重要限制: 如果是第三方 SSL 证书, 无法使用自动证书轮换 (automatic certificate rotation)

  • 证书过期监控: 可以使用 EventBridge 检查 ACM 证书是否过期
  • 证书类型
    • 公共证书 - 免费, ACM 颁发
    • 私有证书 - 使用 ACM Private CA, 收费
    • 导入的证书 - 第三方证书


AWS WAF

  • Web 应用防火墙
    • 保护 Web 应用的第 7 层 (HTTP/HTTPS)
    • 防御常见 Web 攻击
  • OSI 层级对比
    • Layer 7 (应用层): HTTP/HTTPS - WAF
    • Layer 4 (传输层): TCP/UDP - Network Firewall
    • Layer 3 (网络层): IP - VPC, Security Groups
  • 阻止国家/地区 (重要): 如果要阻止特定国家, 可以使用
    • WAF Geo Match - 地理匹配
    • WAF IP Set Statement - IP 集合语句
  • Rate-based Rules
    • WAF 可以设置基于速率的规则
    • Shield 不支持速率限制
    • 防止 DDoS 和暴力攻击
    • 例如: 5 分钟内超过 2000 请求
  • 跨账户/区域部署 (重要): 如果需要在不同账户或区域使用 WAF, 考虑 Firewall Manager

  • Web ACL (Web 访问控制列表)
    • 过滤条件: IP 地址, HTTP Headers, 请求大小 (Size), 查询字符串, 地理位置
    • 核心能力: WAF 可以阻止来自特定国家的访问

AWS Firewall Manager 重要提示: 如果要跨账户使用 AWS WAF, 加速 WAF 配置, 自动保护新资源, 使用 Firewall Manager 配合 AWS WAF


AWS Shield

  • DDoS 攻击防护服务
    • 防御 DDoS 攻击
    • WAF 也可以防 DDoS, 但考试遇到 DDoS 时选 Shield
    • 自动检测和缓解攻击
  • Shield Standard (免费)
    • 所有 AWS 客户自动获得
    • 防御常见的 Layer 3/4 攻击
    • SYN/UDP Floods
  • Shield Advanced (付费)
    • 高级 DDoS 防护
    • 24/7 DDoS 响应团队 (DRT)
    • DDoS 成本保护

  • Shield vs. WAF:
    • Shield: 专注 DDoS 防护, Layer 3/4
    • WAF: 应用层防护, Layer 7, 更细粒度

AWS Firewall Manager

  • Manage security rules in all accounts of an AWS Organization
    • 比如 WAF rules, AWS Shield Advanced, Security Group for EC2 & VPC 等等
  • Rules are applied to new resources as they are created
  • 如果需要在不同的 accout 或者 region 用 WAF, 考虑 Firewall Manager (重要)

  • WAF vs Firewall Manager vs Shield
    • 它们一起用来做大型安全保护 (WAF + Firewall Manager + Shield)
    • 如果只是日常保护, 就用 WAF
    • 如果遇到 DDoS 攻击, 考虑使用 Shield


AWS GuardDuty

  • 智能威胁检测服务
    • 使用机器学习 (ML) 智能发现威胁, 保护 AWS 账户
    • 使用 ML 防止加密货币攻击
    • 持续监控可疑活动
  • 输入数据源 (重要)
    • CloudTrail Events - API 调用日志
    • VPC Flow Logs - 网络流量
    • DNS Logs - DNS 查询


AWS Inspector

  • 自动化安全评估服
    • 自动化安全评估 (Automated Security Assessments)
    • 持续扫描漏洞
    • 生成安全发现报告
  • 支持的资源类型
    • EC2 Instance - 操作系统漏洞
    • Container Images (ECR) - 容器镜像漏洞
    • Lambda Functions - 函数代码和依赖漏洞


AWS Macie

  • 使用机器学习保护敏感数据
    • 使用 ML 保护 AWS 中的敏感数据 (PII)
    • 自动发现和分类敏感数据
    • 持续监控 S3 存储桶


24. Networking VPC

  • CIDR (Classless Inter-Domain Routing) 组成
    • CIDR = 基础 IP + 子网掩码
    • 格式: IP地址/前缀长度
  • CIDR 计算示例
    • CIDR: 10.0.4.0/28
    • /28 代表 16 个 IP = (2^(32-28) = 2^4 = 16)
    • 8 的倍数大于 28 的只有 32
    • IP 范围: 10.0.4.0 到 10.0.4.15 (0-15 共 16 个 IP)
  • 计算公式
    • 可用 IP 数 = 2^(32 - 前缀长度)
    • 前缀长度越大, IP 数量越少


AWS VPC

  • 虚拟私有云
    • VPC: Virtual Private Cloud (虚拟私有云)
    • 所有新 AWS 账户都有一个默认 VPC
    • 隔离的虚拟网络环境
  • CIDR 规则
    • CIDR 不应重叠
    • AWS 最大 CIDR 大小: /16
    • AWS 最小 CIDR 大小: /28
  • DNS 配置: 要让 VPC 使用自定义域名, 需要启用
    • enableDnsHostnames - 启用 DNS 主机名
    • enableDnsSupport - 启用 DNS 解析
  • Shared Service VPC (重要): 可以创建共享服务 VPC, 这样每个 VPC 都可以访问所需的服务

  • EC2 Instance Tenancy (租赁属性, 重要): 每个启动到 VPC 的 Amazon EC2 实例都有一个 tenancy 属性
    • Default - 共享硬件
    • Dedicated Instance - 专用硬件 (实例级别)
    • Dedicated Host - 专用主机 (物理服务器级别)
  • 重要特性: 可以在 Dedicated Instance 和 Dedicated Host 之间互相切换
    • 不能从 Default 切换到 Dedicated
    • 可以从 Dedicated 切换到 Default (需停止实例)

  • VPC 组件
    • Subnets (子网)
    • Route Tables (路由表)
    • Internet Gateway (互联网网关)
    • NAT Gateway (NAT 网关)
    • Security Groups (安全组)
    • Network ACLs (网络 ACL)

VPC Subnet

  • VPC 子网
    • Public Subnet (公有子网) - 可访问互联网
    • Private Subnet (私有子网) - 不可直接访问互联网
  • AWS 保留 IP 地址 (重要): AWS 在每个子网中保留 5 个 IP 地址 (前 4 个 + 最后 1 个)
    • 保留的 IP (以 10.0.0.0/24 为例)
    • 前 4 个从 0 开始算, 即 0-3
      • 10.0.0.0 - 网络地址
      • 10.0.0.1 - AWS VPC 路由器
      • 10.0.0.2 - AWS DNS 服务器
      • 10.0.0.3 - AWS 未来使用保留
    • 最后 1 个
      • 10.0.0.255 - 网络广播地址
  • 容量规划示例: 如果需要处理 28 个主机
    • 28 (主机) + 5 (保留) = 33 个 IP
    • 需要至少 64 个 IP (/26 = 64 IPs)
    • 或者: 两个子网各 /27
      • 第一个子网: 28 + 5 = 33, 需要 /26
      • 第二个子网: 26 + 5 = 31, 需要 /26
      • 总共 64 IPs
  • 子网与路由表 (重要): Subnet 总是与 Route Table 关联
    • 每个子网必须关联一个路由表
    • 问关于 Subnet 的问题就和 Route Table 有关系

  • Public vs. Private Subnet 区别
    • Public Subnet: 路由表有到 Internet Gateway 的路由 (0.0.0.0/0)
    • Private Subnet: 路由表没有到 Internet Gateway 的直接路由

Internet Gateway (IGW) & Route Table

  • 互联网网关和路由表
  • Internet Gateway (IGW) 核心功能
    • 允许 VPC 中的资源 (如 EC2 实例) 连接到互联网
    • IGW 需要 Route Table 配合 (重要)
    • 一个 VPC 只能附加一个 IGW
  • IGW 故障排查: 如果 IGW 出问题, 检查顺序
    • 首先检查 Route Table (因为 IGW 需要路由表)
    • 检查 Security Group 是否允许流量通过
    • 检查 Network ACL
    • 确认实例有公网 IP
  • Network Address Translation (NAT)
    • 处理 NAT 的就是 Internet Gateway
    • IGW 执行 1:1 NAT
    • 将私有 IP 转换为公网 IP
  • 重要限制: Internet Gateway 无法直接在 private subnet 中使用 (重要)
    • Private subnet 需要使用 NAT Gateway/Instance
    • IGW 只能为 public subnet 提供互联网访问
  • NAT vs. IGW 区别 (重要)
    • NAT 针对 Subnet 层面 - 为私有子网提供出站互联网访问
    • IGW 针对 VPC 层面 - 为整个 VPC 提供双向互联网连接
  • Route Table 配置
    • Public Subnet: 添加路由 0.0.0.0/0 → IGW
    • Private Subnet: 添加路由 0.0.0.0/0 → NAT Gateway



Bastion Hosts

  • 堡垒主机/跳板机
    • 使用 Bastion Host 通过 SSH 进入私有 EC2 实例
    • 安全访问私有资源的跳板
  • 架构位置
    • Bastion Host 位于公有子网
    • 连接到私有子网
    • 简单来说: Public Internet → Bastion Host → Private Subnet
  • 安全配置 (重要): Bastion Host 安全组必须限制互联网访问 (端口 22)

高可用架构: 创建公有 Network Load Balancer, 链接到由 Auto Scaling Group 管理的 Bastion Host EC2 实例


NAT Instances (Outdated)

  • 网络地址转换实例
  • NAT (Network Address Translation) 核心功能
    • 允许私有子网中的 EC2 实例连接到互联网
    • 提供出站互联网访问, 不允许入站互联网连接
  • 重要提示: 现在都使用 NAT Gateway (NAT Gateway 是首选解决方案)


NAT Gateway (NATGW)

  • 托管的 NAT 网关
    • AWS 托管的 NAT 服务
    • AZ 特定 (每个 AZ 独立)
    • 使用 Elastic IP
    • 针对 IPv4 (IPv6 使用 Egress-only IGW)
  • 核心功能: 允许私有子网中的 EC2 实例连接到互联网
  • 部署要求 (注意)
    • 需要 Internet Gateway (IGW)
    • NATGW 位于公有子网中
    • 需要 Elastic IP 地址
  • 重要区分
    • NAT 针对 Subnet 层面 - 为子网提供出站访问
    • IGW 针对 VPC 层面 - VPC 级别的互联网连接

高可用性配置

  • 单 AZ 弹性
    • 在单个 AZ 内具有弹性
    • 自动故障转移
    • AWS 托管的高可用性
  • 多 AZ 容错 (重要)
    • 多 AZ 需要多个 NATGW
    • 每个 AZ 都要一个 NATGW, 用于容错 (fault-tolerance)
    • 避免跨 AZ 流量费用
    • 单个 AZ 故障不影响其他 AZ
  • 架构最佳实践
    • 在每个 AZ 部署独立的 NATGW
    • 每个私有子网路由到同 AZ 的 NATGW


NACL & Security Groups

  • 网络访问控制和安全组
  • 流量检查顺序
    • 请求必须先通过 NACL 才能到达 Subnet (Subnet 级别)
    • NACL 是无状态的 (Stateless) - 入站和出站都要检测
    • 请求必须通过 Security Group 才能到达 EC2 Instance (Instance 级别)
    • Security Group 是有状态的 (Stateful) - 入站允许 = 出站自动允许
  • 核心记忆点: NACL 是 Subnet 级别 (Stateless), Security Group 是 Instance 级别 (Stateful)

  • Network Access Control List (NACL)
    • 控制进出子网的流量 (如阻止特定 IP)
    • 第一道防线
  • 关联规则 (注意)
    • 每个子网一个 NACL
    • 每个子网都有默认 NACL
    • 默认 NACL 允许所有入站和出站流量
  • NACL 规则特点
    • 规则有编号, 编号越低优先级越高
    • 支持允许和拒绝规则
  • 规则编号示例
    • 100 - Allow HTTP (优先)
    • 200 - Deny specific IP
    • (星号) - 默认拒绝所有

NACL vs. Security Group

  • NACL

    • Subnet 级别
    • Stateless (需要显式配置入站和出站)
    • 支持允许和拒绝规则
    • 按规则顺序处理
    • 适合阻止特定 IP
  • Security Group

    • Instance 级别
    • Stateful (自动处理返回流量)
    • 只支持允许规则
    • 所有规则一起评估
    • 适合允许特定流量

VPC Peering & Sharing

  • VPC Peering (VPC 对等连接)
    • 使用 AWS 网络私密连接两个 VPC
    • 只适合少量 VPC (重要)
    • 一对一连接, 不支持传递性
  • 重要特点
    • 每一对 VPC 都需要单独的 VPC Peering
    • 类似 S3 Replication (一对一配置)
    • VPC A ↔ VPC B, VPC B ↔ VPC C, 但 A 不能通过 B 访问 C
  • 跨账户/区域支持
    • 可以在不同 AWS 账户之间创建 VPC Peering
    • 可以在不同 Region 之间创建 VPC Peering
  • 配置要求 (重要)
    • 需要更新每个 VPC 子网的路由表以确保通信
    • 出问题就检查 Route Table
    • CIDR 不能重叠

  • VPC Sharing (VPC 共享, 重要)
    • 允许多个 AWS 账户在共享的、集中管理的 VPC 中创建资源 (如 EC2, RDS)
    • 基于 AWS Resource Access Manager (RAM)
  • 关键特征
    • 遇到 “centrally managed” 就选 VPC Sharing
    • Owner 需要共享一个或多个子网 (注意)
    • Owner 管理 VPC 和子网

VPC Peering: 跨账户/区域连接, 少量 VPC
VPC Sharing: 组织内多账户, 集中管理, 大量资源


  • VPC 端点
    • VPC Endpoints 允许在 VPC 内私密访问 AWS 服务 (重要)
    • 使用私有网络连接 AWS 服务, 与本地 (On-Premise) 无关
    • 不通过公网访问
    • 降低延迟和成本
  • 考试重点
    • Interface Endpoint 支持大部分 AWS 服务 (付费)
    • Gateway Endpoint 只支持 S3 和 DynamoDB (很容易考, 免费)
  • 重要提示: VPC Gateway Endpoint 专门处理 S3 和 DynamoDB (不要选择 NAT 或 IGW)

  • 两种 Types of Endpoints (Interface / Gateway)
    • Interface Endpoints: Supports most AWS services (付费)
      • 使用 ENI (Elastic Network Interface)
      • 有私有 IP 地址
      • 需要配置 Security Group
      • 按小时和数据处理量收费
    • Gateway Endpoints: Must be used as a target in a route table (免费, 重要)
      • Only support S3 and DynamoDB (只支持 S3 和 DynamoDB)
      • 不使用 ENI
      • 不需要 Security Group
      • 在路由表中配置


VPC Flow Logs

  • 捕获网络接口 IP 流量信息 (Capture IP traffic information)
    • 用于监控和排查网络连接问题 (Monitor & troubleshoot connectivity issues)
  • 启用层级: 可在 VPC, Subnet, ENI 三个层面启用
  • 日志存储: 可发送到 S3, CloudWatch Logs, Kinesis Data Firehose
  • 记录内容: source IP, destination IP, ports, protocol, action (ACCEPT/REJECT)
  • 用途: 网络安全审计、流量分析、故障排查


Site-to-Site VPN (VPN Connection)

  • 通过公网连接 AWS VPC 和企业数据中心 (Connect AWS to Corporate Data Center over public internet)
  • 组件要求:
    • Virtual Private Gateway (VGW) - AWS 端的 VPN 网关
    • Customer Gateway (CGW) - 企业端的 VPN 网关
  • 提供加密的网络连接 (encrypted network connectivity)
  • 与 Direct Connect 对比: 延迟更高,吞吐量较低,但成本更低



VPN CloudHub

  • 为多个 Site-to-Site VPN 连接提供安全通信 (Secure communication for multiple VPN connections)
  • 使用场景:
    • 管理多个 Site-to-Site VPN 连接
    • 作为备用连接,通过公网实现故障转移
  • 实现多个远程站点之间的互联通信


Direct Connect (DX)

  • 提供专用私有连接从企业网络到 VPC (dedicated private connection, On-Premise to AWS)
  • 特点:
    • 需要设置 VGW, 备份方案选择 Site-to-Site VPN
    • 相比 Site-to-Site VPN: 低延迟、高吞吐量
    • 不支持加密, 需加密可结合 AWS VPN 使用
    • 部署时间长, 不适合快速解决方案
  • 完全私有网络, 不涉及公网 (All private, 考试重点)
  • 可访问公有资源 (S3) 和私有资源 (EC2)

  • 连接类型:
    • Dedicated Connections: 1Gbps - 100Gbps
    • Hosted Connections: 50Mbps - 10Gbps

  • Direct Connect Gateway: 连接多个不同 Region 的 VPC

  • 与 PrivateLink 区别:
    • PrivateLink: VPC 间和 AWS 服务连接
    • DX: On-Premise 到 AWS 的专用连接

Transit Gateway

  • 实现数千个 VPC 和 On-Premise 网络之间的传递对等 (transitive peering, 重要)
    • Regional 资源, 支持跨 Region 连接
    • 通过 ECMP 最大化 VPN 吞吐量
  • 支持 IP Multicast (IP 多播, 单次传输到多个接收者)
  • 考试关键词: star network, hub-and-spoke (中心辐射型网络)

  • Site-to-Site VPN ECMP (重要)
    • ECMP = Equal-cost multi-path routing (等价多路径路由)
    • 作用: 通过多条相同优先级路径转发数据包, 增加带宽


VPC Traffic Mirroring

  • 捕获和检查 VPC 网络流量 (Capture and inspect network traffic)
  • 从 ENI 镜像流量到安全设备进行分析
  • 使用场景:
    • 内容检查 (content inspection)
    • 威胁监控 (threat monitoring)
    • 故障排查 (troubleshooting)


IPv6 in VPC

  • VPC 和 Subnet 的 IPv4 无法禁用 (IPv4 是必需的)
  • EC2 实例至少获得 1 个私有 IPv4 和 1 个公有 IPv6
  • 故障排查:
    • 无法启动 EC2 实例 → IPv4 地址不足
    • 解决方案: 在 Subnet 中创建新的 IPv4 CIDR (重要)


Egress-only Internet Gateway

  • 仅用于 IPv6 (IPv6 版本的 NAT Gateway)
  • 只允许出站连接 (VPC → Internet), 阻止入站连接 (Internet → VPC)
  • 需要更新路由表配置
  • 对比:
    • Egress-only IGW: IPv6 only
    • NAT Gateway: IPv4 only


AWS Network Firewall

  • 保护整个 VPC 的托管防火墙服务 (VPC 级别防火墙, 重要)
  • Layer 3 到 Layer 7 全层防护
  • 流量过滤规则:
    • Allow: 允许流量
    • Drop: 丢弃流量
    • Alert: 告警流量
  • 支持入站和出站流量过滤
  • 适用于保护生产环境 VPC


25. Disaster Recovery & Migrations

Disaster Recovery

  • RPO (Recovery Point Objective): 可容忍的数据丢失时间
  • RTO (Recovery Time Objective): 可容忍的应用停机时间
  • DR 策略通常采用 Multi-Region 部署 (考试重点)

  • Disaster Recovery Strategies (从慢到快):
    • Backup and Restore: High RPO & RTO
      • 将 On-Premise 数据备份到 Cloud
      • 成本最低, 恢复最慢
    • Pilot Light: Medium RPO & RTO
      • 只运行核心关键基础设施
      • 关键词: DR with minimum (考试重点)
    • Warm Standby: Low RPO & RTO
      • 运行缩减版本应用, 可快速扩展
      • 关键词: DR with scale-down (考试重点)
    • Multi-Site / Hot Site: Very Low RPO & RTO
      • 全部应用在 Cloud 运行
      • 成本最高, 恢复最快


Database Migration Service (DMS)

  • 将数据库迁移到 AWS 的托管服务 (考试重点)
  • 需要运行 EC2 实例来执行迁移任务
  • 支持两种迁移类型:
    • Homogeneous (同构): 相同数据库引擎 (如 MySQL → RDS MySQL)
    • Heterogeneous (异构): 不同数据库引擎 (如 Oracle → Aurora)

  • AWS Schema Conversion Tool (SCT, 重要)
    • 用于异构迁移时转换数据库架构
    • 同构迁移不需要 SCT (如 PostgreSQL → RDS PostgreSQL)

  • DMS Multi-AZ Deployment
    • 在不同 AZ 维护同步备份副本
    • 提供迁移过程的高可用性保障


RDS & Aurora Migration

  • RDS MySQL → Aurora MySQL (PostgreSQL 同理)
    • 方法 1: 通过 DB Snapshots 恢复
    • 方法 2: 创建 Aurora Read Replica, 然后提升为主库
  • External MySQL → Aurora MySQL
    • 方法 1: 备份到 S3, 从 S3 创建 Aurora
    • 方法 2: 使用 Percona XtraBackup 创建备份并导入


On-Premise Strategy with AWS

  • AWS Application Discovery Service (DS): 发现和收集 On-Premise 服务器信息
  • AWS Database Migration Service (DMS): 迁移数据库到 AWS
  • AWS Server Migration Service (SMS): 迁移虚拟机到 AWS
  • VM Import/Export: 导入导出虚拟机镜像

以上服务用于 On-Premise 环境迁移到 AWS


AWS Backup

  • 自动化备份的托管服务 (跨服务集中备份, 重要)
  • 支持服务: EC2, EBS, S3, RDS, EFS, DynamoDB 等
  • 支持跨区域备份和跨账户备份

  • AWS Backup Vault Lock
    • 启用 WORM (Write Once Read Many) 状态
    • 备份一旦创建无法删除或修改, 防止恶意删除


Application Migration Service (MGN)

  • 迁移流程分为两个阶段:

1. AWS Application Discovery Service (迁移规划阶段)

  • 收集 On-Premise 数据中心信息, 规划迁移项目
  • 两种发现模式:
    • Agentless Discovery: 无需安装代理
    • Agent-based Discovery: 基于代理收集详细信息
  • 结果在 AWS Migration Hub 中查看

2. AWS Application Migration Service (MGN) (迁移执行阶段)

  • 简化应用迁移到 AWS 的过程
  • 自动化物理、虚拟和云服务器的迁移


VMware Cloud on AWS

  • 使用 VMware 技术管理和扩展 On-Premise 数据中心到 AWS
  • 使用场景:
    • 将现有 VMware 环境迁移到 AWS
    • 灾难恢复和业务连续性
    • 利用 AWS 服务扩展 VMware 工作负载
  • 优势: 无需重新设计应用架构, 直接迁移 VMware 虚拟机


26. More SAA

Event Processing

  • Fan Out Pattern (扇出模式, 重要)
    • SNS 作为中心, 订阅多个 SQS 队列
    • 实现一对多的消息分发

  • S3 Event Notifications

    • S3 事件触发 Lambda 或 SNS
    • 配置 DLQ (Dead Letter Queue): 选择 Lambda
    • DLQ 用于处理失败的消息
  • 与 EventBridge 集成

    • 提供高级过滤功能
    • 结合 CloudTrail 拦截 API 调用


Caching Strategies

  • 缓存原则: 离用户越近越快, 但可能过期, 需要设置 TTL (Time to Live)

  • 多层缓存架构:

    • CloudFront: 边缘缓存, 全球分发
    • API Gateway: 区域级缓存 (Regional)
    • 应用层: ElastiCache (Redis/Memcached)
    • 数据库层: DAX (DynamoDB), RDS 读副本
  • 作用: 减少延迟, 降低后端负载, 提升性能


Block IP Address

  • 两种方式阻止 IP 地址:

NACL (Network ACL)

  • 在 VPC 子网层面拒绝 IP
  • 适用于 VPC 内部保护

WAF (Web Application Firewall)

  • 在应用层过滤 IP

  • 提供更精细的控制和日志

  • 可用于 CloudFront, ALB, API Gateway

  • 推荐: 优先选择 WAF (功能更强大, 更灵活)


HPC in AWS

  • AWS 是执行高性能计算 (HPC) 的理想平台
  • HPC 关键组件: EFA, Cluster Placement Group, FSx for Lustre (考试重点)

数据管理和传输

  • Direct Connect: 专用网络连接
  • Snowball: 大规模数据迁移
  • DataSync: 自动化数据同步

计算和网络

  • EC2 Instance + Cluster Placement Group (低延迟, 高带宽)
  • EC2 Enhanced Networking (SR-IOV): 使用 Elastic Network Adapter (ENA)
  • Elastic Fabric Adapter (EFA): HPC 专用, 仅支持 Linux

存储

  • 实例附加存储: EBS, Instance Store
  • 网络存储: S3, EFS, FSx for Lustre

自动化和编排

  • AWS Batch: 多节点并行作业, 跨多个 EC2 实例
  • AWS ParallelCluster: 在 AWS 上部署 HPC 集群, 支持 EFA


EC2 Instance High Availability

  • 两种 EC2 高可用方案:

方案 1: Elastic IP + Standby EC2 + CloudWatch + Lambda

  • CloudWatch 监控主实例健康状态
  • 故障时 Lambda 自动将 Elastic IP 切换到备用实例
  • 需要手动维护备用实例

方案 2: Elastic IP + Auto Scaling Group (推荐)

  • ASG 配置 min=1, max=1
  • 实例故障时自动创建替换实例
  • 无需 CloudWatch 和 Lambda, 更简单


27. Other AWS Services

AWS CloudFormation

  • 声明式方式定义 AWS 基础设施 (Infrastructure as Code, IaC)
  • 通过模板自动创建和管理资源
    • 示例: 定义 EC2, S3, VPC 等资源, CloudFormation 自动创建

  • 优势:
    • 无需手动创建资源
    • 版本控制和可重复部署
    • 在不同环境中快速复制架构
    • 自动化资源编排和依赖管理


CloudFormation StackSets

  • 扩展 CloudFormation 功能,支持跨账户和跨区域部署
  • 使用场景: 需要在多个账户或区域中部署相同架构
  • 单次操作即可跨多个账户和区域创建、更新或删除堆栈
  • 适用于企业级多账户管理


CloudFormation Service Role

  • IAM 角色,授权 CloudFormation 创建/更新/删除资源
  • 使用场景:
    • 用户本身无权限,但可通过 Service Role 执行操作
    • 实现权限分离和最小权限原则
  • 安全优势: 无需直接授予用户资源权限


AWS SES (Simple Email Service)

  • 托管邮件发送服务,安全可靠地发送电子邮件
  • 使用场景:
    • 营销邮件和通知邮件
    • 交易邮件 (订单确认、密码重置等)
    • 批量邮件发送
  • 支持接收邮件和自定义邮件处理


AWS Pinpoint

  • 可扩展的双向营销通信服务 (outbound/inbound, 重要)
  • 支持渠道:
    • Email, SMS, Push 通知, 语音, App 内消息
  • 功能特性:
    • 客户分群和个性化消息
    • 接收客户回复并处理
    • 营销活动管理和分析


AWS SSM Session Manager

  • Systems Manager Session Manager 的简称
  • 在 EC2 和 On-Premise 服务器上启动安全 Shell 会话
  • 优势:
    • 无需 SSH 密钥和开放端口 22
    • 无需堡垒机 (Bastion Host)
    • 集中审计和会话日志
    • 更高安全性和合规性


AWS Cost Explorer

  • 可视化和管理 AWS 成本及使用情况
  • 核心功能:
    • 生成成本和使用报告
    • 分析历史支出趋势
    • 预测未来成本
    • 推荐最优 Savings Plan
  • 考试重点: 涉及成本分析和优化的问题,优先选择 Cost Explorer


AWS Compute Optimizer

  • 使用机器学习分析历史使用指标,推荐最优计算资源
  • 支持资源类型:
    • EC2 实例
    • Auto Scaling Groups
    • EBS 卷
    • Lambda 函数
  • 目标: 降低成本,提升性能
  • 与 Cost Explorer 结合使用,实现成本优化


AWS Batch

  • 任意规模的托管批处理服务
  • 动态启动 EC2 实例或 Spot 实例
  • 批处理作业以 Docker 镜像定义,运行在 ECS 上

  • Batch vs Lambda
    • Lambda: 有时间限制 (15 分钟), Serverless
    • Batch: 无时间限制, 非 Serverless, 适合长时间运行任务
  • 使用场景: 数据处理、图像处理、科学计算等长时间批处理任务


AWS AppFlow

  • 在 SaaS 应用和 AWS 之间传输数据 (重要)
  • 数据源 (Source): Salesforce, Slack, ServiceNow, SAP 等
  • 数据目标 (Destination): S3, Redshift, Snowflake 等
  • 功能: 数据转换、过滤、验证
  • 考试重点: 遇到 SaaS 集成问题,优先选择 AppFlow


AWS Amplify

  • 开发和部署全栈 Web 和移动应用的工具集
  • 核心功能:
    • 前端托管和 CI/CD
    • 后端 API 和数据库集成
    • 用户认证和授权
    • 存储和分析
  • 支持框架: React, Angular, Vue, iOS, Android
  • 使用场景: 快速构建和部署全栈应用


AWS Resource Access Manager (RAM)

  • 在 AWS 账户或组织内安全共享资源
  • 可共享资源:
    • Transit Gateway
    • VPC Subnets
    • Route53 Resolver Rules
    • License Manager Configurations
  • 优势: 避免资源重复,降低成本,简化管理
  • 使用场景: 跨账户共享网络资源


AWS Systems Manager

  • 查看和控制 AWS 基础设施的集中管理服务
  • 核心功能:
    • Session Manager: 安全访问 EC2 实例
    • Run Command: 在多个实例上执行命令和补丁
    • Patch Manager: 自动化补丁管理
    • Parameter Store: 存储配置和密钥
    • Inventory: 收集软件和配置信息
  • 使用场景: 大规模实例管理和运维自动化


28. WhitePapers

Well-Architected Framework

  • 6 个核心支柱 (6 Pillars, 考试重点):

    1. Operational Excellence (卓越运营)
    2. Security (安全性)
    3. Reliability (可靠性)
    4. Performance Efficiency (性能效率)
    5. Cost Optimization (成本优化)
    6. Sustainability (可持续性)
  • 最大弹性实现方式: 在多个位置使用独立设备的独立连接

AWS Well-Architected Tool

  • 根据 6 大支柱评审架构
  • 提供最佳实践建议和改进方案


AWS Trusted Advisor

  • AWS 账户的高级评估工具

  • 基于 Well-Architected Framework 的 6 大支柱提供建议:

    • Cost Optimization (成本优化)
    • Performance (性能)
    • Security (安全)
    • Fault Tolerance (容错)
    • Service Limits (服务限制)
    • Operational Excellence (运营卓越)
  • 检查类型:

    • 免费: 7 项核心检查
    • Business & Enterprise Support: 完整检查 + 自动化响应