aws-doc/课程/第六阶段-进阶与认证/第38天-知识体系总复习.md
2026-05-08 10:24:39 +08:00

281 lines
7.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 第38天知识体系总复习——串联所有知识点
## 今天你将学到什么
今天用结构化的方式回顾过去 37 天学到的所有内容,帮你建立完整的 AWS 知识地图。这不是简单的重复,而是从更高的视角看各个服务之间的关系。
---
## AWS 服务全景图
### 按功能分类
```
计算
├── EC2虚拟服务器
├── Lambda无服务器函数
├── ECS / EKS容器
└── Fargate无服务器容器
存储
├── S3对象存储
├── EBS块存储EC2 硬盘)
├── EFS文件存储共享
└── S3 Glacier归档
数据库
├── RDS / Aurora关系型
├── DynamoDBNoSQL
└── ElastiCache缓存
网络
├── VPC虚拟网络
├── ALB / NLB负载均衡
├── Route 53DNS
├── CloudFrontCDN
└── VPC Endpoint / PrivateLink
安全
├── IAM身份与访问
├── KMS加密密钥
├── Secrets Manager密码管理
├── WAF / ShieldWeb 防护)
├── GuardDuty威胁检测
└── CloudTrail审计日志
应用集成
├── SQS消息队列
├── SNS通知服务
├── EventBridge事件总线
├── Step Functions工作流
└── API GatewayAPI 管理)
开发工具
├── CodePipelineCI/CD 流水线)
├── CodeBuild构建
├── CodeDeploy部署
└── CloudFormation基础设施即代码
监控与管理
├── CloudWatch监控、日志、告警
├── AWS Config配置合规
├── Trusted Advisor优化建议
└── Cost Explorer / Budgets成本管理
```
---
## 核心架构模式
### 模式一:经典 Web 应用
```
Route 53 → CloudFront → ALB → Auto Scaling (EC2) → RDS Multi-AZ
```
**适合**:传统 Web 应用、需要完全控制的场景
### 模式二:无服务器应用
```
Route 53 → CloudFront → API Gateway → Lambda → DynamoDB
```
**适合**API 后端、事件驱动、流量不稳定的应用
### 模式三:容器化微服务
```
Route 53 → ALB → ECS Fargate (多个服务) → Aurora + DynamoDB + Redis
→ SQS/SNS (异步通信)
```
**适合**:中大型应用、需要独立部署和扩展的微服务
### 模式四:事件驱动架构
```
事件源 → EventBridge → Lambda / Step Functions → 各种目标服务
```
**适合**:松耦合系统、异步处理、复杂业务流程
---
## 服务选择决策树
### 计算服务怎么选
```
需要运行代码?
├── 运行时间 < 15 分钟?
│ ├── 是 → Lambda
│ └── 否 ↓
├── 需要容器?
│ ├── 是 → 想管服务器吗?
│ │ ├── 不想 → Fargate
│ │ └── 想要控制 → ECS on EC2
│ └── 否 ↓
└── 需要虚拟机 → EC2
```
### 数据库怎么选
```
需要存储数据?
├── 需要复杂查询JOIN、事务
│ ├── 是 → RDS / Aurora
│ └── 否 ↓
├── 键值查询、高频读写?
│ ├── 是 → DynamoDB
│ └── 否 ↓
├── 需要缓存加速?
│ ├── 是 → ElastiCache (Redis)
│ └── 否 ↓
└── 全文搜索? → OpenSearch
```
### 存储怎么选
```
需要存储文件?
├── 文件需要被多台服务器共享?
│ ├── 是 → EFS
│ └── 否 ↓
├── 通过 HTTP 访问(图片、视频、备份)?
│ ├── 是 → S3
│ └── 否 ↓
├── EC2 的硬盘?
│ └── 是 → EBS
└── 归档(很少访问)? → S3 Glacier
```
### 消息服务怎么选
```
需要服务间通信?
├── 一条消息只需要一个消费者处理?
│ ├── 是 → SQS
│ └── 否 ↓
├── 一条消息需要多个消费者同时收到?
│ ├── 是 → SNS配合 SQS 做扇出)
│ └── 否 ↓
└── 需要基于事件内容路由到不同目标?
└── 是 → EventBridge
```
---
## 关键概念速查
### 高可用相关
| 概念 | 含义 | 实现 |
|------|------|------|
| Multi-AZ | 跨可用区部署 | RDS Multi-AZ、ALB 跨 AZ |
| Auto Scaling | 自动增减实例 | EC2 Auto Scaling Group |
| 负载均衡 | 流量分发 | ALB / NLB |
| 健康检查 | 自动发现故障 | ALB / Route 53 健康检查 |
| 故障转移 | 自动切换到备用 | RDS 故障转移、Route 53 故障转移路由 |
### 安全相关
| 概念 | 含义 | 实现 |
|------|------|------|
| 最小权限 | 只给必要的权限 | IAM 策略精确控制 |
| 纵深防御 | 多层防护 | WAF + 安全组 + 网络 ACL |
| 加密一切 | 数据加密存储和传输 | KMS + HTTPS |
| 审计追踪 | 记录所有操作 | CloudTrail |
| 密码管理 | 不硬编码密码 | Secrets Manager |
### 成本相关
| 概念 | 含义 | 实现 |
|------|------|------|
| 按需付费 | 用多少付多少 | 默认定价模式 |
| 预留折扣 | 承诺使用换折扣 | Savings Plans / Reserved Instances |
| Spot 实例 | 用闲置资源省钱 | 可中断的工作负载 |
| 自动扩缩 | 不过度预置 | Auto Scaling |
| 存储分层 | 不同访问频率用不同存储 | S3 生命周期策略 |
---
## 常见场景与解决方案
| 场景 | 解决方案 |
|------|----------|
| 网站需要全球快速访问 | CloudFront + S3静态/ ALB动态 |
| 应用需要处理突发流量 | Auto Scaling + SQS 削峰 |
| 数据库读取压力大 | ElastiCache 缓存 + Aurora 只读副本 |
| 需要定时执行任务 | EventBridge 定时规则 + Lambda |
| 文件上传后需要处理 | S3 事件通知 → Lambda |
| 多个服务需要协调 | Step Functions 编排 |
| 需要实时通知用户 | SNS + 移动推送 / WebSocket |
| 需要搜索功能 | OpenSearch |
| 需要用户认证 | Cognito |
| 需要 API 管理 | API Gateway |
---
## 架构设计原则总结
### 十大原则
1. **为故障设计**:假设一切都会坏,设计自动恢复机制
2. **解耦组件**:用消息队列和事件让服务松耦合
3. **弹性伸缩**:根据负载自动调整资源
4. **安全优先**:加密一切、最小权限、纵深防御
5. **自动化一切**基础设施即代码、CI/CD、自动化运维
6. **使用托管服务**:能用托管的就不自建
7. **缓存加速**:在各层添加缓存减少延迟
8. **异步处理**:不需要立即结果的操作异步执行
9. **监控一切**:没有监控就是盲人开车
10. **持续优化**:定期审查架构和成本
---
## 学习路径回顾
```
第一阶段(第 1-7 天):基础概念
云计算 → AWS 账户 → IAM → CLI
第二阶段(第 8-19 天):核心服务
EC2 → Lambda → S3 → 数据库 → VPC → DNS/CDN → 消息服务
第三阶段(第 20-25 天):安全
IAM 策略 → 加密 → WAF/Shield → CloudTrail → VPC 安全
第四阶段(第 26-32 天):应用架构
容器 → ECS → CI/CD → Step Functions → API Gateway → 微服务
第五阶段(第 33-36 天):监控与运维
CloudWatch → 成本管理 → Well-Architected → 故障排查
第六阶段(第 37-40 天):进阶与认证
认证体系 → 知识总复习 → 实战项目 → 持续学习
```
---
## 今天的小测验
1. 如果要设计一个高可用的 Web 应用,至少需要哪些 AWS 服务?
2. Lambda 和 EC2 各自适合什么场景?
3. SQS、SNS、EventBridge 三者的区别是什么?
4. 说出 Well-Architected Framework 的五大支柱。
---
## 延伸阅读
- [AWS 服务概览](https://aws.amazon.com/products/)
- [AWS 架构中心](https://aws.amazon.com/architecture/)
- [AWS 解决方案库](https://aws.amazon.com/solutions/)
---
## 明天预告
明天是实战项目日——从零开始设计并规划一个完整的云原生应用,综合运用所有学到的知识。