AWS 大数据深度解析(第 10 部分):完整架构蓝图与成本拆解
社交应用数据仓库与推荐系统在 AWS 上的完整端到端架构——每一个服务都一一对应,附带真实的月度成本估算与优化策略。
本章将前 9 章的全部内容汇聚成一张完整图景。针对客户的社交应用场景,我们给出:
- 一张完整的端到端架构图(整套系统的全景视图)
- 每个组件的月度成本估算
- 分阶段实施建议
- 关键的运维与治理考量
完整端到端架构
按层级自上而下组织:
| 层级 | 组件 |
|---|---|
| 数据源 | Aurora MySQL / DocumentDB / OpenSearch / 客户端 SDK / 用户请求 |
| 数据接入 | Aurora Zero-ETL / DMS / OSI / API GW + Lambda + MSK + Firehose |
| 数据湖 | S3 + Iceberg ODS 层 |
| 分层处理 | Glue(DWD)+ Athena(DWS)+ EMR Serverless(ADS),由 MWAA 编排 |
| 机器学习训练 | SageMaker Training + Processing + Feature Store(可选) |
| 在线服务 | DynamoDB + ElastiCache + OpenSearch k-NN + Neptune(可选)+ SM Endpoint |
| 实时管道 | Managed Flink + Lambda |
| 元数据 / 治理 | Glue Data Catalog + Lake Formation + CloudWatch + Schema Registry |
数据流概览(按时间顺序)
离线批处理(每晚)
02:00 Aurora Zero-ETL (continuous — data already in lake by early morning)
02:00 DMS DocumentDB CDC (continuous)
02:00 Firehose (continuous)
02:30 Glue Spark: dwd_user_action / dwd_post / dwd_user_relation
03:00 Athena CTAS: dws_user_daily / dws_post_daily / dws_pair_interaction
03:30 EMR Serverless: ads_user_features / ads_post_features
EMR Serverless: ads_sample_follow / ads_sample_ctr
EMR Serverless: ads_recall_u2u_cf
04:30 Glue Job: sync_user_features → DynamoDB
Glue Job: sync_recall_pool → DynamoDB
05:00 SageMaker Training: train_recall_two_tower
SageMaker Training: train_rank_lgb / deepfm
05:30 SageMaker Processing: compute_item_embeddings → OpenSearch
06:00 Lambda: deploy SageMaker Endpoints (Canary 10%)
06:30 Slack notification: DAG complete / DQ report
实时流(持续进行)
User click → SDK → API GW → Lambda → MSK
├─→ Firehose (60s buffer) → S3
├─→ Flink (sub-second) → DynamoDB user_realtime
└─→ Lambda fraud/risk detection
在线推理流程(每次 Feed 刷新)
User request GET /feed (200ms budget)
│
├─[5ms]──── DynamoDB user_features
├─[5ms]──── DynamoDB user_realtime
├─[1ms]──── Redis last_recommend_cache
├─[10ms]──── User Tower Endpoint → user embedding
├─[20ms]──── OpenSearch k-NN → 1000 candidates
├─[5ms]──── DynamoDB recall_u2u_cf → 200 candidates
├─[10ms]──── batch fetch 1200 item features (DynamoDB)
├─[30ms]──── Rank Endpoint scoring
├─[5ms]───── re-ranking (diversity)
└─return Top 10
月度成本估算
注意:估算基于 us-east-1 的标价(list price)。假设条件:日活 100 万、每日 1 亿条事件、30 TB 活跃数据。实际价格取决于当前的 AWS 费率。
数据存储 + 接入
| 服务 | 用量 | 月度成本 |
|---|---|---|
| S3 Standard + IT | 30 TB 活跃数据 + 100 TB 冷归档 | ~$700 + |
| Aurora MySQL | r6g.xlarge x 2 + 存储 | ~$700 |
| Aurora Zero-ETL to Lakehouse | 按变更量计费 | ~$200 |
| DocumentDB | r6g.large x 3 | ~$1,500 |
| DMS | dms.t3.medium x 1 | ~$50 |
| OpenSearch(业务搜索) | r6g.large x 3 | ~$700 |
| OpenSearch Ingestion | 1 OCU | ~$170 |
埋点事件管道
| 服务 | 用量 | 月度成本 |
|---|---|---|
| API Gateway HTTP API | 1 亿请求/天 = 30 亿/月 | ~$3,000 |
| Lambda(数据增强) | 30 亿次调用,128MB x 50ms | ~$300 |
| MSK(预置型) | m7g.large x 3 + 5 TB 存储 | ~$500 |
| Firehose | 30 亿条记录 + Parquet 转换 | ~$300 |
分层处理 + 编排
| 服务 | 用量 | 月度成本 |
|---|---|---|
| Glue ETL | 50 DPU-小时/天 | ~$650 |
| Athena | 每月扫描 100 TB(含即席查询) | ~$500 |
| EMR Serverless | ADS 处理 100 vCPU-小时/天 | ~$300 |
| MWAA | mw1.small | ~$400 |
机器学习训练
| 服务 | 用量 | 月度成本 |
|---|---|---|
| SageMaker Training | g5.xlarge x 8h x 1/天 x 30 天(双塔 + LightGBM 排序) | ~$340 |
| SageMaker Processing | m5.2xlarge x 2h x 1/天 x 30 天(物品向量预计算) | ~$25 |
| SageMaker Endpoint(User Tower) | ml.c5.xlarge x 2,7x24 | ~$200 |
| SageMaker Endpoint(Rank) | ml.c5.2xlarge x 4,7x24 | ~$800 |
在线服务层(推荐推理读路径)
| 服务 | 用量 | 月度成本 |
|---|---|---|
| DynamoDB | 50K WCU + 200K RCU + 500GB | ~$1,500 |
| ElastiCache Redis | r7g.large x 2 | ~$300 |
| OpenSearch k-NN | r6g.xlarge x 3 + 500GB | ~$1,200 |
| Neptune(第 3 阶段) | r6g.large x 2 | ~$700 |
实时管道
| 服务 | 用量 | 月度成本 |
|---|---|---|
| Managed Flink | 4 KPU | ~$330 |
治理 / 监控
| 服务 | 月度成本 |
|---|---|
| Glue Catalog | ~$10 |
| Lake Formation | $0(免费额度) |
| CloudWatch | ~$200 |
| 数据传输 | ~$200 |
汇总(按阶段拆分,对应客户 T+1 需求与全量上线)
| 模块 | 第 1 阶段(T+1 数据基座) | 第 2 阶段(+ML v1) | 第 3 阶段及以后(实时 + 全量) |
|---|---|---|---|
| 数据存储 + 接入 | ~$3,200 | ~$4,200 | ~$5,400 |
| 埋点事件管道 | ~$3,400(无 MSK,仅 Firehose) | ~$3,400 | ~$4,100(+MSK) |
| 分层处理 + 编排 | ~$1,500 | ~$1,850 | ~$1,850 |
| 机器学习训练 | $0 | ~$700 | ~$1,400 |
| 在线服务 | $0 | ~$2,000(DDB+Redis+OS kNN) | ~$3,700(+Neptune 可选) |
| 实时管道(Flink) | $0 | $0 | ~$330 |
| 跨可用区流量 + 治理 + 杂项 | ~$300 | ~$400 | ~$600 |
| 合计(标价) | ~$8,400/月 | ~$12,550/月 | ~$17,400/月(不含 Neptune ~$700) |
注意:MSK 跨可用区复制流量、CloudWatch 日志接入以及 NAT Gateway 流量,合计每月可能增加数百美元——这些在估算中经常被忽略。
以上均为标价估算。结合 EDP/PPA 折扣、预留实例(Reserved Instances)和 Savings Plans,实际成本通常会下降 20-40%。
成本分布(第 3 阶段全量标价的心智模型)
Ingestion + Storage ████████ 31%
Event Tracking ███████ 24%
Online Serving ██████ 21%
Compute / Processing ███ 11%
ML Training ██ 8%
Other (incl. cross-AZ)██ 5%
最值得优化的三个方面:
- API Gateway 调用量——让 SDK 批量合并事件上传,可降低 50% 以上的成本
- DynamoDB——从按需(On-Demand)切换到预置(Provisioned)+ Auto Scaling,可节省 40% 以上;采用最终一致性读取还能再省 50%
- 跨可用区流量 / NAT Gateway——为 S3 / DDB / Athena 使用 VPC Endpoint 走私有网络,通常可节省数百到数千美元
分阶段实施建议
第 1 阶段:数据基座(1-1.5 个月)
目标: 让埋点、业务数据库和 ODS 层端到端跑通;Athena 能够查询所有数据源。
- Aurora Zero-ETL(路径 1)/ DMS(路径 3)双链路 POC
- 启用 DocumentDB Change Streams + DMS
- OpenSearch Ingestion 管道:ES 到 S3
- API GW + Lambda + MSK + Firehose 埋点管道
- Glue Catalog 注册所有 ODS 表
- DWD v1(Glue Job:清洗 + IP 转地理位置)
- MWAA 运行基线 DAG
交付物: T+1 数据完整落湖;Athena 可查询所有 ODS/DWD 表。
第 2 阶段:首个模型版本(1-2 个月)
目标: 推荐管道端到端跑通,Top 10 推荐具备基线。
- DWS / ADS 层 SQL 编排
- 关注样本表 + CTR 样本表(PIT 正确)
- 用户特征 / 内容特征宽表
- LightGBM 排序模型 + 双塔召回模型训练
- OpenSearch k-NN 物品向量索引
- DynamoDB 同步用户特征 + 召回池
- SageMaker Endpoint 部署:User Tower + Rank Model
- 推荐服务(ECS)端到端集成
- A/B 测试平台集成
交付物: 核心指标(CTR / 关注转化率 / 留存)具备基线。
第 3 阶段:进阶能力(2-3 个月)
目标: 多路召回、实时特征、模型升级。
- Managed Flink 实时特征管道
- DynamoDB user_realtime 上线
- 排序模型升级为 DeepFM / DIN
- 多路召回(图召回 / 兴趣标签 / 热门)
- 引入 Neptune + Neptune ML
- SageMaker Feature Store 全面迁移(若成本可行)
第 4 阶段:持续优化(长期进行)
- 冷启动优化(新用户 / 新内容)
- 多任务模型(MMoE / PLE)
- 重排序(多样性 / 公平性)
- 自动化模型监控(Model Monitor)
- 成本优化(RI / Savings Plans / 缓存)
治理与运维
数据质量(DQ)
在每个 DAG 步骤之后运行 DQ 检查:
| 检查类型 | 示例 |
|---|---|
| 行数 | dwd_user_action 当日 > 1 亿 |
| 唯一性 | event_id 无重复 |
| 空值率 | user_id 空值 < 0.1% |
| 取值范围 | age 介于 0 到 150 之间 |
| 一致性 | dws_user_daily 总点击数 = ods_event 当日点击数 |
工具:AWS Glue Data Quality(基于 Deequ)/ 自定义 SQL 检查。
成本管理
- CloudWatch Anomaly Detection——账单异常告警
- Athena Workgroup Cost Limit——防止失控查询导致成本飙升
- DynamoDB Auto Scaling——流量下降时自动缩容
- S3 Intelligent-Tiering——为所有存储桶启用
- Cost Allocation Tags——为每个资源打上
team=algo / team=da / team=infra标签,实现按团队分摊账单
安全
- 静态加密: S3 SSE-KMS / DynamoDB 加密 / RDS 加密
- VPC Endpoints: S3 / DynamoDB / Athena 走私有网络,绝不经公网
- IAM Role 最小权限
- Lake Formation 列级权限: 对手机号 / 身份证号进行脱敏
- GuardDuty + Security Hub: 威胁检测
灾难恢复
- S3 跨区域复制(用于双活需求)
- DynamoDB Global Tables(跨区域实时同步)
- Aurora Global Database(跨区域容灾)
模型治理
- 模型版本管理(SageMaker Model Registry)
- 金丝雀部署(Production Variants 加权流量切分)
- 通过 Model Monitor 检测漂移
- 定时重训练(每周 / 每日)+ 自动化评估
年 AWS 数据/AI 技术栈更新(速查)
针对本架构的“当下 vs 一年前”对比,帮助客户判断该采纳哪些新能力:
| 模块 | 2025 年初 | 2026 年 5 月现状 |
|---|---|---|
| Iceberg 托管 | S3 Tables 刚 GA | S3 Tables + 自动 compaction、快照过期、复制、IT 分层 |
| Zero-ETL | Aurora to Lakehouse 刚 GA | + RDS MySQL / DynamoDB / Salesforce / SAP / ServiceNow / Zendesk to Lakehouse(大量新集成) |
| Glue | 4.0(Spark 3.3) | Glue 5.0(Spark 3.5 + Iceberg 自动维护) |
| Athena | Engine v3 | + 联邦 Spark / Iceberg 物化视图(部分区域预览) |
| OpenSearch k-NN | 默认 nmslib / Lucene | 生产环境推荐 Faiss,nmslib 已弃用 |
| 向量存储 | OpenSearch k-NN | + S3 Vectors GA(适合 RAG / 冷向量) |
| SageMaker 品牌 | 刚拆分为 4 大支柱 | Unified Studio GA、Bedrock IDE 集成、Q Developer 内嵌 |
| GenAI | Bedrock 基础模型 | + Amazon Nova 系列(Pro/Premier/Canvas/Reel)、Bedrock AgentCore、Knowledge Bases + S3 Vectors / 结构化数据检索 |
| HyperPod | 已 GA | + 任务治理 / 弹性训练计划 / Inference Components |
| Q in QuickSight | Topics + Q&A | + Scenarios(自然语言 what-if)、自动生成 Topic |
对客户社交应用推荐场景的具体影响:
- S3 Tables 自动 compaction——省去一个维护作业
- Glue 5.0 + Iceberg——DWD 处理性能提升
- Faiss 引擎——降低 OpenSearch k-NN 召回延迟
- Bedrock + Knowledge Bases——为未来“AI 内容审核 / 评论摘要 / 智能客服”做好准备,无需自训 LLM
留给客户的开放问题
在完成 POC 之前需要厘清的问题:
- DocumentDB 版本:5.0(已确认)——Change Streams 可用
- 延迟要求:T+1(已确认)——第 1-2 阶段无需 Flink
- ES 接入:需要(已确认)——第 1 阶段运行 OSI
- ES 里存了什么?是否与 MySQL 重叠?
- 推荐场景:关注推荐 / Feed / PYMK——哪个是优先级?
- 现有的埋点 SDK / A/B 平台 / 数据团队规模?
- 区域选择:us-east-1 / ap-northeast-1 / 其他?
- 合规要求:GDPR / 中国 PIPL?
这些问题决定了具体的取舍,应在 Discovery 阶段厘清。
系列总结
恭喜你读到这里。至此你已经涵盖了:
- 大数据基础(OLTP / OLAP / 数据湖 / Lakehouse / CDC / 分层架构)
- S3 + Parquet + Iceberg 存储基础
- DMS / Zero-ETL / OSI / Firehose / MSK 数据接入
- Glue Catalog / Athena / Lake Formation 元数据 + 查询
- Glue / EMR / Flink / Lambda / MWAA 计算与编排
- 推荐系统漏斗 / 双塔 / 特征工程 / PIT
- DynamoDB / Redis / OpenSearch k-NN / Neptune 在线服务
- SageMaker 全生命周期
- 端到端架构 + 成本估算
延伸资源
| 主题 | 链接 |
|---|---|
| AWS 现代数据架构 | https://docs.aws.amazon.com/whitepapers/latest/modern-data-architecture-rays-on-aws/modern-data-architecture-rays-on-aws.html |
| Apache Iceberg on AWS | https://docs.aws.amazon.com/prescriptive-guidance/latest/apache-iceberg-on-aws/introduction.html |
| 在 AWS 上构建推荐系统 | https://aws.amazon.com/solutions/implementations/personalized-recommendations/ |
| AWS Big Data Blog | https://aws.amazon.com/blogs/big-data/ |
| Iceberg 官方 | https://iceberg.apache.org/ |
| Feast(开源 Feature Store) | https://feast.dev/ |
| DGL(图神经网络库) | https://www.dgl.ai/ |
参考资料
- AWS Well-Architected Framework — AWS Documentation
- Amazon S3 pricing — AWS
- Amazon EMR Management Guide — AWS Documentation