AWS SAA-C03
前言
官网: 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 用户权限执行


- SSH 连接 - 使用 EC2 实例的公网 IP 地址连接。
- Instance Metadata (实例元数据) - 通过特殊 IP 获取实例信息:
- http://169.254.169.254/latest/meta-data/public-ipv4 - 获取公网 IP
- 记住 169 这个数字
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 资源。
- 从 covid19survey.com 到 www.covid19survey.com
- 从 app.mydomain.com 到 app.amazonaws.com
- 使用建议: 指向 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 网站托管 URL 格式
- Dash Region: http://bucket-name.s3-website-Region.amazonaws.com
- Dot Region: http://bucket-name.s3-website.Region.amazonaws.com
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 Batch Replication 进行复制

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 使用
- Management Events (管理事件)

- 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 Endpoints (AWS PrivateLink)
- 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
- 在路由表中配置
- Interface Endpoints: Supports most AWS services (付费)

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 运行
- 成本最高, 恢复最快
- Backup and Restore: High RPO & RTO

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, 考试重点):
- Operational Excellence (卓越运营)
- Security (安全性)
- Reliability (可靠性)
- Performance Efficiency (性能效率)
- Cost Optimization (成本优化)
- 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: 完整检查 + 自动化响应








