mcpField
D
deploying-on-aws

deploying-on-aws

github.com/ancoleman云与 DevOps52568 次安装46 周前更新
代码仓库

关于 deploying-on-aws

面向 AWS 架构师和开发团队的设计技能,提供服务选型、架构模式和 Well-Architected Framework 实践。内容覆盖计算、数据库、存储、网络、安全、成本优化及基础设施即代码。

主要功能

  1. 01计算、数据库与存储服务选型
  2. 02无服务器与容器架构模式
  3. 03VPC 与负载均衡设计要点
  4. 04IAM 和数据保护实践
  5. 05Well-Architected 六大支柱
  6. 06CDK 与 Terraform 选型

适用场景

  1. 01为工作负载选择 AWS 计算服务
  2. 02依据访问模式选择数据库
  3. 03设计多层 VPC 架构
  4. 04优化现有基础设施的成本与可靠性

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/ancoleman/ai-design-components --skill deploying-on-aws

安装后在 Claude Code 中输入/deploying-on-aws确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

outputs.yaml
examples/cloudformation/
lambda-api.yaml
references/
compute-services.md
container-patterns.md
database-services.md
networking.md
security.md
serverless-patterns.md
storage-services.md
well-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成本与功能的权衡
键值查询NoSQLDynamoDB无服务器扩展能力
文档存储JSON/BSONDynamoDB灵活性与 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 以便排查问题
负载均衡

服务选择:

负载均衡器协议使用场景主要功能
ALBHTTP/HTTPSWeb 应用、API路径/主机路由、Lambda 目标
NLBTCP/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 设置防护措施
数据保护

加密要求:

服务静态加密传输中加密
S3SSE-S3 或 SSE-KMSHTTPS(TLS 1.2+)
EBSKMS 加密不适用(实例内部)
RDS/AuroraKMS 加密TLS 连接
DynamoDBKMS 加密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 Plans1-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: 升级版本时实现零停机

快速决策清单

选择服务前,请回答以下问题:

  1. 流量模式: 可预测还是多变?(影响计算服务的选择)
  2. 数据模型: 关系型、键值、文档型还是图形?(影响数据库的选择)
  3. 访问模式: 频繁、不频繁还是归档?(影响存储类别)
  4. 延迟要求: 可接受毫秒、秒还是分钟级延迟?
  5. 扩展需求: 垂直扩展(更大的实例)还是水平扩展(更多实例)?
  6. 运维开销: 倾向于托管服务还是需要控制权?
  7. 成本敏感度: 优化成本、性能还是两者平衡?
  8. 合规要求: 是否需要数据驻留、加密和审计日志?

然后参考本技能中的相关决策框架或详细参考资料。

入门指南

对于新的 AWS 项目:

  1. 使用 Well-Architected Framework 支柱定义架构
  2. 使用决策树选择计算服务(Lambda/Fargate/ECS/EKS/EC2)
  3. 根据访问模式和数据模型选择数据库
  4. 使用三层子网架构设计 VPC
  5. 使用 CDK 或 Terraform 实施 IaC(参见 examples/)
  6. 应用安全最佳实践(IAM、加密、日志记录)
  7. 设置监控和成本跟踪

对于现有的 AWS 项目:

  1. 运行 AWS Trusted Advisor 获取建议
  2. 检查 Well-Architected Framework 支柱
  3. 优化成本(调整实例规格、Reserved Instances、存储生命周期)
  4. 迁移到现代服务(EC2 → Fargate、RDS → Aurora)
  5. 改善安全态势(启用 GuardDuty、实施最小权限)
  6. 使用 IaC 实现自动化(反向工程为 Terraform 或 CDK)

评论

支持 Markdown