关于 deploying-on-aws
面向 AWS 架构师和开发团队的设计技能,提供服务选型、架构模式和 Well-Architected Framework 实践。内容覆盖计算、数据库、存储、网络、安全、成本优化及基础设施即代码。
主要功能
- 01计算、数据库与存储服务选型
- 02无服务器与容器架构模式
- 03VPC 与负载均衡设计要点
- 04IAM 和数据保护实践
- 05Well-Architected 六大支柱
- 06CDK 与 Terraform 选型
适用场景
- 01为工作负载选择 AWS 计算服务
- 02依据访问模式选择数据库
- 03设计多层 VPC 架构
- 04优化现有基础设施的成本与可靠性
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ ancoleman/ ai-design-components --skill deploying-on-aws安装后在 Claude Code 中输入/deploying-on-aws确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
outputs.yamlexamples/cloudformation/lambda-api.yamlreferences/compute-services.mdcontainer-patterns.mddatabase-services.mdnetworking.mdsecurity.mdserverless-patterns.mdstorage-services.mdwell-architected.md详细介绍
AWS 模式
目的
此技能为 Amazon Web Services 提供决策框架和实现模式。通过成熟的选择标准、架构模式和 Well-Architected Framework 原则,探索 AWS 的 200 多项服务。重点关注实用的服务选择、成本意识设计,以及包括 Lambda SnapStart、EventBridge Pipes 和 S3 Express One Zone 在内的现代 2025 年模式。
在设计 AWS 解决方案、为特定工作负载选择服务、实现无服务器或容器架构,或优化现有 AWS 基础设施的成本、性能和可靠性时,使用此技能。
何时使用此技能
在以下情况下调用此技能:
- 为计算工作负载选择 Lambda、Fargate、ECS、EKS 或 EC2
- 根据访问模式选择数据库服务(RDS、Aurora、DynamoDB)
- 为多层应用设计 VPC 架构
- 使用 API Gateway 和 Lambda 实现无服务器模式
- 在 ECS 或 EKS 上构建基于容器的微服务
- 将 AWS Well-Architected Framework 应用于设计
- 在保持性能的同时优化 AWS 成本
- 实施安全最佳实践(IAM、KMS、加密)
核心服务选择框架
计算服务选择
决策流程:
Execution Duration:
<15 minutes → Evaluate Lambda
>15 minutes → Evaluate containers or VMs
Event-Driven/Scheduled:
YES → Lambda (serverless)
NO → Consider traffic patterns
Containerized:
YES → Need Kubernetes?
YES → EKS
NO → ECS (Fargate or EC2)
NO → Evaluate EC2 or containerize first
Special Requirements:
GPU/Windows/BYOL licensing → EC2
Predictable high traffic → EC2 or ECS on EC2 (cost optimization)
Variable traffic → Lambda or Fargate
快速参考:
| 工作负载 | 首选方案 | 计费模式 | 主要优势 |
|---|---|---|---|
| API 后端 | Lambda + API Gateway | 按请求计费 | 自动扩缩,无需服务器 |
| 微服务 | Fargate 上的 ECS | 按运行时长计费 | 运维简单 |
| Kubernetes 应用 | EKS | $73/mo + 计算费用 | 可移植性,生态系统 |
| 批处理作业 | Lambda 或 Fargate Spot | 按请求/Spot 计费 | 成本效益高 |
| 长时间运行的工作负载 | EC2 Reserved Instances | 节省 30-60% | 成本可预测 |
有关详细的服务比较,包括成本示例、性能特征和用例指导,请参阅 references/compute-services.md。
数据库服务选择
按访问模式划分的决策矩阵:
| 访问模式 | 数据模型 | 首选方案 | 主要标准 |
|---|---|---|---|
| 事务处理(OLTP) | 关系型 | Aurora | 性能 + 高可用性 |
| 简单 CRUD | 关系型 | RDS PostgreSQL | 成本与功能的权衡 |
| 键值查询 | NoSQL | DynamoDB | 无服务器扩展能力 |
| 文档存储 | JSON/BSON | DynamoDB | 灵活性与 MongoDB 兼容性的权衡 |
| 缓存 | 内存中 | ElastiCache Redis | 速度 + 持久性 |
| 分析(OLAP) | 列式 | Redshift/Athena | 专用型与无服务器型 |
| 时间序列 | 带时间戳 | Timestream | 专用构建 |
查询复杂度指南:
- 简单键值查询: DynamoDB(个位数毫秒延迟)
- 中等复杂度联接(2-3 张表): Aurora 或 RDS(权衡成本与性能)
- 复杂分析: Redshift(专用型)或 Athena(无服务器,可查询 S3)
- 实时流: DynamoDB Streams + Lambda
有关存储类别选择、成本比较和迁移模式,请参阅 references/database-services.md。
存储服务选择
主要决策树:
Data Type:
Objects (files, media) → S3 + lifecycle policies
Blocks (databases, boot volumes) → EBS
Shared Files (cross-instance) → Evaluate protocol
File Protocol Required:
NFS (Linux) → EFS
SMB (Windows) → FSx for Windows
High-Performance HPC → FSx for Lustre
Multi-Protocol + Enterprise → FSx for NetApp ONTAP
成本比较(1TB/月):
| 服务 | 月成本 | 访问模式 |
|---|---|---|
| S3 Standard | $23 | 频繁访问 |
| S3 Standard-IA | $12.50 | 不频繁访问(>30 天) |
| S3 Glacier Instant | $4 | 归档,即时检索 |
| EBS gp3 | $80 | 块存储 |
| EFS Standard | $300 | 共享文件,频繁访问 |
| EFS IA | $25 | 共享文件,不频繁访问 |
建议: 80% 以上的存储需求使用 S3。仅在需要共享文件访问时使用 EFS/FSx。
有关 S3 存储类别、EBS 卷类型和生命周期策略示例,请参阅 references/storage-services.md。
无服务器架构模式
模式 1:REST API(Lambda + API Gateway + DynamoDB)
架构:
Client → API Gateway (HTTP API) → Lambda → DynamoDB
↓
S3 (file uploads)
适用场景:
- 构建支持 CRUD 操作的 RESTful API
- 流量变化较大或难以预测
- 希望尽可能减少运维开销
- 可接受按请求计费模式
成本估算(每月 100 万次请求):
- API Gateway:$3.50
- Lambda:$3.53
- DynamoDB:约 $7.50
- 总计:约 $15/月(相比之下,Fargate 约 $35+,EC2 约 $50+)
主要组件:
- API Gateway HTTP API(比 REST API 更便宜)
- 使用适当内存配置的 Lambda(通常 1024MB 最优)
- 按需计费的 DynamoDB(适用于流量变化较大的情况)
- 用于调试的 CloudWatch Logs
完整实现请参阅 examples/cdk/serverless-api/ 和 examples/terraform/serverless-api/。
模式 2:事件驱动处理(EventBridge + Lambda + SQS)
架构:
S3 Upload → EventBridge Rule → Lambda (process) → DynamoDB (metadata)
↓
SQS (downstream tasks)
适用场景:
- 异步文件处理
- 解耦微服务间通信
- 扇出模式(一个事件,多个使用者)
- 需要重试逻辑和死信队列
主要功能(2025):
- EventBridge Pipes: 简化源 → 筛选 → 丰富 → 目标的流程
- Lambda Response Streaming: 流式传输最高 20MB 的响应
- Step Functions Distributed Map: 并行处理数百万个项目
其他模式请参阅 references/serverless-patterns.md,包括 Step Functions 编排、API Gateway WebSockets 和 Lambda SnapStart 配置。
容器架构模式
模式 1:ECS on Fargate(无服务器容器)
架构:
ALB → ECS Service (Fargate tasks) → RDS Aurora
↓
ElastiCache Redis
适用场景:
- 无需管理集群的容器化应用
- 流量变化较大且需要自动扩缩
- 避免管理 EC2 实例
- 基于 Docker 的部署
主要组件:
- Application Load Balancer(基于路径的路由)
- 使用 Fargate 启动类型的 ECS 集群
- 任务定义(CPU、内存、容器镜像)
- 基于 CPU、内存或自定义指标的自动扩缩
- 用于内置服务网格的 Service Connect(2025 年功能)
成本模型(2 vCPU、4GB RAM、全天候运行):
- Fargate:约 $70/月
- ALB:约 $20/月
- RDS Aurora db.t3.medium:约 $50/月
- 总计:约 $140/月
模式 2:EKS(AWS 上的 Kubernetes)
适用场景:
- 团队具备 Kubernetes 专业知识
- 多云或混合云策略
- 需要 Kubernetes 生态系统(Helm、Operators、Istio)
- 工作负载编排要求复杂
主要功能(2025):
- EKS Auto Mode: 全托管节点生命周期
- EKS Pod Identities: 简化 IAM(取代 IRSA)
- EKS Hybrid Nodes: 在本地运行节点
成本考量:
- EKS 控制平面:每个集群 $73/月
- 工作节点:按 Fargate 或 EC2 定价
- 简化部署可使用 EKS on Fargate,优化成本可使用 EC2
ECS 任务定义、使用 CDK/Terraform 配置 EKS 集群以及服务网格模式,请参阅 references/container-patterns.md。
网络基础知识
VPC 架构
标准三层模式:
VPC: 10.0.0.0/16
Per Availability Zone (deploy across 3 AZs):
Public Subnet: 10.0.X.0/24 (ALB, NAT Gateway)
Private Subnet: 10.0.1X.0/24 (ECS, Lambda, app tier)
Database Subnet: 10.0.2X.0/24 (RDS, Aurora, isolated)
最佳实践:
- VPC CIDR 使用 /16(提供 65,536 个 IP,便于扩展)
- 子网 CIDR 使用 /24(256 个 IP,其中 251 个可用)
- 至少部署在 2 个 AZ 中(建议 3 个),以实现高可用性
- 使用安全组(有状态)作为实例级防火墙
- 启用 VPC Flow Logs 以便排查问题
负载均衡
服务选择:
| 负载均衡器 | 协议 | 使用场景 | 主要功能 |
|---|---|---|---|
| ALB | HTTP/HTTPS | Web 应用、API | 路径/主机路由、Lambda 目标 |
| NLB | TCP/UDP | 高性能场景 | 静态 IP、超低延迟 |
| GWLB | 第 3 层 | 安全设备 | 内联检查 |
ALB 功能:
- 基于路径的路由:
/api→ 后端,/web→ 前端 - 基于主机的路由:
api.example.com、web.example.com - 支持 WebSocket 和 gRPC
- 与 Lambda 集成(无服务器后端)
CloudFront CDN 模式、Route 53 路由策略和 VPC 对等连接配置,请参阅 references/networking.md。
安全最佳实践
IAM 原则
最小权限模式:
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": ["s3:GetObject", "s3:PutObject"],
"Resource": "arn:aws:s3:::my-bucket/uploads/*"
}]
}
核心实践:
- 应用使用 IAM 角色(而非用户)
- 实施最小权限原则(仅授予所需的最低权限)
- 为特权用户启用 MFA
- 使用 IAM Access Analyzer 验证策略
- 利用 AWS Organizations SCP 设置防护措施
数据保护
加密要求:
| 服务 | 静态加密 | 传输中加密 |
|---|---|---|
| S3 | SSE-S3 或 SSE-KMS | HTTPS(TLS 1.2+) |
| EBS | KMS 加密 | 不适用(实例内部) |
| RDS/Aurora | KMS 加密 | TLS 连接 |
| DynamoDB | KMS 加密 | HTTPS API |
密钥管理:
- Secrets Manager: 数据库凭证,支持自动轮换
- Parameter Store: 应用配置(提供免费套餐)
- KMS: 加密密钥管理(客户管理的密钥)
有关 WAF 规则、GuardDuty 配置和网络安全模式,请参阅 references/security.md。
AWS Well-Architected Framework
六大支柱概览
1. 卓越运营
- 基础设施即代码(CDK、Terraform、CloudFormation)
- 自动化部署(CI/CD 流水线)
- 可观测性(CloudWatch Logs、Metrics、X-Ray)
- 针对常见操作的运行手册和操作手册
2. 安全性
- 稳固的身份基础(IAM 角色和策略)
- 纵深防御(Security Groups、NACLs、WAF)
- 数据保护(静态和传输中加密)
- 检测性控制(CloudTrail、GuardDuty、Security Hub)
3. 可靠性
- 多可用区部署(RDS Multi-AZ、Aurora 副本)
- 自动扩缩(EC2 ASG、ECS Service Auto Scaling)
- 备份与恢复(自动快照、跨区域)
- 混沌工程(Fault Injection Simulator)
4. 性能效率
- 合理调整资源规格(使用 Compute Optimizer)
- 使用托管服务(降低运营开销)
- 缓存策略(CloudFront、ElastiCache、DAX)
- 持续监控和优化
5. 成本优化
- 合理调整计算资源规格(使容量与需求匹配)
- 定价模式(Reserved Instances、Savings Plans、Spot)
- 存储优化(S3 Intelligent-Tiering、生命周期策略)
- 成本监控(Cost Explorer、Budgets、Trusted Advisor)
6. 可持续性(2024 年新增)
- 使用 Graviton 处理器(能耗降低 60%,性能提升 25%)
- 优化工作负载部署位置(选择可再生能源区域)
- 提高存储效率(删除未使用的数据、压缩)
- 软件优化(高效代码、异步处理)
有关各支柱的详细实施指南、架构审查清单和 Well-Architected Tool 集成,请参阅 references/well-architected.md。
基础设施即代码
工具选择
AWS CDK(Cloud Development Kit):
- 语言: TypeScript、Python、Java、C#、Go
- 最适合: AWS 原生工作负载、类型安全的基础设施
- 主要优势: 高级构造,可合成为 CloudFormation
- 示例:
examples/cdk/serverless-api/
Terraform:
- 语言: HCL(HashiCorp Configuration Language)
- 最适合: 多云环境
- 主要优势: 最大的生态系统,成熟的状态管理
- 示例:
examples/terraform/serverless-api/
CloudFormation:
- 语言: YAML 或 JSON
- 最适合: 原生 AWS 集成,无需额外工具
- 主要优势: 第 1 天即可支持 AWS 服务
- 示例:
examples/cloudformation/lambda-api.yaml
CDK 快速入门
# Install CDK CLI
npm install -g aws-cdk
# Initialize new project
cdk init app --language=typescript
npm install
# Deploy infrastructure
cdk bootstrap # One-time setup
cdk deploy
Terraform 快速入门
# Install Terraform
brew install terraform # macOS
# Initialize project
terraform init
# Preview changes
terraform plan
# Apply changes
terraform apply
完整的可运行示例涵盖 VPC 网络、多层应用和事件驱动架构,请参阅 examples/ 目录。
成本优化策略
计算成本优化
调整资源规格:
- 使用 AWS Compute Optimizer 获取 EC2/Lambda 建议
- 监控 CloudWatch 指标(CPU、内存利用率)
- 从保守配置开始,根据实际用量扩展
定价模式:
| 模式 | 承诺期限 | 节省比例 | 适用场景 |
|---|---|---|---|
| 按需 | 无 | 0% | 可变工作负载 |
| Savings Plans | 1-3 年 | 30-40% | 灵活计算需求 |
| 预留实例 | 1-3 年 | 30-60% | 可预测的工作负载 |
| Spot 实例 | 无 | 60-90% | 容错任务 |
Graviton 优势:
- Graviton3 实例:性能比 Graviton2 高 25%
- 能耗降低 60%
- 可用于:EC2、Lambda、Fargate、RDS、ElastiCache
存储成本优化
S3 生命周期策略:
Day 0-30: S3 Standard ($0.023/GB)
Day 30-90: S3 Standard-IA ($0.0125/GB)
Day 90-365: S3 Glacier Instant ($0.004/GB)
Day 365+: S3 Deep Archive ($0.00099/GB)
EBS 优化:
- 使用 gp3 卷(比 gp2 便宜 20%,且 IOPS 可配置)
- 删除未使用的快照
- 归档旧快照(便宜 75%)
监控:
- 启用 AWS Cost Explorer(免费)
- 设置 AWS Budgets 并配置提醒
- 使用成本分配标签进行归因
- 查看 Trusted Advisor 成本检查
常见模式和示例
无服务器三层应用
CloudFront (CDN)
→ S3 (React frontend)
→ API Gateway (REST API)
→ Lambda (business logic)
→ DynamoDB (data)
→ S3 (file storage)
完整 CDK 实现: examples/cdk/three-tier-app/
完整 Terraform 实现: examples/terraform/three-tier-app/
容器化微服务
Route 53 (DNS)
→ CloudFront (CDN)
→ ALB (load balancer)
→ ECS Fargate (services)
→ RDS Aurora (database)
→ ElastiCache Redis (cache)
完整实现: examples/cdk/ecs-fargate/
事件驱动数据管道
S3 Upload
→ EventBridge Rule
→ Lambda (transform)
→ Kinesis Firehose
→ S3 Data Lake
→ Athena (query)
完整实现: examples/cdk/event-driven/
与其他技能集成
相关技能
- infrastructure-as-code - 多云 IaC 概念、CDK 和 Terraform 模式
- kubernetes-operations - EKS 集群操作、kubectl、Helm 图表
- building-ci-pipelines - CodePipeline、CodeBuild、GitHub Actions → AWS
- secret-management - Secrets Manager 轮换、Parameter Store 层级结构
- observability - CloudWatch 高级查询、X-Ray 分布式追踪
- security-hardening - IAM 策略最佳实践、安全自动化
- disaster-recovery - 多区域策略、备份自动化
跨技能模式
EKS + kubernetes-operations:
- 使用此技能配置 EKS 集群(CDK/Terraform)
- 使用 kubernetes-operations 进行 kubectl、Helm 和应用部署
密钥管理:
- 使用此技能设置 Secrets Manager/Parameter Store
- 使用 secret-management 技能配置轮换策略和访问模式
CI/CD 集成:
- 使用此技能配置 CodePipeline 基础设施
- 使用 building-ci-pipelines 技能配置管道
参考文档
详细指南
- 计算服务:
references/compute-services.md- 深入介绍 Lambda、Fargate、ECS、EKS、EC2 - 数据库服务:
references/database-services.md- 比较 RDS、Aurora、DynamoDB、ElastiCache - 存储服务:
references/storage-services.md- S3 存储类别、EBS 类型、EFS/FSx 选型 - 网络:
references/networking.md- VPC 设计、负载均衡、CloudFront、Route 53 - 安全:
references/security.md- IAM 模式、KMS、Secrets Manager、WAF - 无服务器模式:
references/serverless-patterns.md- 高级 Lambda、Step Functions、EventBridge - 容器模式:
references/container-patterns.md- ECS Service Connect、EKS Pod Identities - Well-Architected:
references/well-architected.md- 六大支柱实施指南
实用示例
- CDK 示例:
examples/cdk/- TypeScript 实现 - Terraform 示例:
examples/terraform/- HCL 实现 - CloudFormation 示例:
examples/cloudformation/- YAML 模板
实用脚本
- 成本估算:
scripts/cost-estimate.sh- 估算基础设施成本 - 资源审计:
scripts/resource-audit.sh- 审计 AWS 资源 - 安全检查:
scripts/security-check.sh- 基本安全验证
AWS 服务更新(2025)
值得关注的近期创新:
- Lambda SnapStart: Java 函数几乎瞬时冷启动
- Lambda Response Streaming: 流式传输最大 20MB 的响应
- EventBridge Pipes: 简化事件处理(来源 → 筛选 → 丰富 → 目标)
- S3 Express One Zone: S3 速度提升 10 倍,延迟为个位数毫秒
- ECS Service Connect: ECS 内置服务网格
- EKS Auto Mode: 完全托管的 Kubernetes 节点生命周期
- EKS Pod Identities: 简化 Pod 的 IAM(取代 IRSA)
- Aurora Limitless Database: 横向扩展写入能力,突破单写入器限制
- DynamoDB Standard-IA: 不常访问的表可节省 60% 成本
- RDS Blue/Green Deployments: 升级版本时实现零停机
快速决策清单
选择服务前,请回答以下问题:
- 流量模式: 可预测还是多变?(影响计算服务的选择)
- 数据模型: 关系型、键值、文档型还是图形?(影响数据库的选择)
- 访问模式: 频繁、不频繁还是归档?(影响存储类别)
- 延迟要求: 可接受毫秒、秒还是分钟级延迟?
- 扩展需求: 垂直扩展(更大的实例)还是水平扩展(更多实例)?
- 运维开销: 倾向于托管服务还是需要控制权?
- 成本敏感度: 优化成本、性能还是两者平衡?
- 合规要求: 是否需要数据驻留、加密和审计日志?
然后参考本技能中的相关决策框架或详细参考资料。
入门指南
对于新的 AWS 项目:
- 使用 Well-Architected Framework 支柱定义架构
- 使用决策树选择计算服务(Lambda/Fargate/ECS/EKS/EC2)
- 根据访问模式和数据模型选择数据库
- 使用三层子网架构设计 VPC
- 使用 CDK 或 Terraform 实施 IaC(参见 examples/)
- 应用安全最佳实践(IAM、加密、日志记录)
- 设置监控和成本跟踪
对于现有的 AWS 项目:
- 运行 AWS Trusted Advisor 获取建议
- 检查 Well-Architected Framework 支柱
- 优化成本(调整实例规格、Reserved Instances、存储生命周期)
- 迁移到现代服务(EC2 → Fargate、RDS → Aurora)
- 改善安全态势(启用 GuardDuty、实施最小权限)
- 使用 IaC 实现自动化(反向工程为 Terraform 或 CDK)