AWS云架构设计与部署技能Skill deploying-on-aws

本技能提供AWS云架构的决策框架和实现模式,帮助用户设计和实施高效、成本优化的云解决方案,包括计算、存储、数据库服务选择,服务器less和容器架构实现,以及安全、可靠性和成本管理最佳实践。关键词:AWS, 云架构, 服务器less, 容器, 成本优化, 安全, 部署, 基础设施即代码, 微服务, 云计算。

AWS 0 次安装 0 次浏览 更新于 3/23/2026

名称: 在AWS上部署 描述: 选择和实现AWS服务和架构模式。用于设计AWS云架构、选择计算/存储/数据库服务、实现服务器less或容器模式,或应用AWS Well-Architected Framework原则时。

AWS 模式

目的

本技能为Amazon Web Services提供决策框架和实现模式。通过成熟的selection criteria、架构模式和Well-Architected Framework原则,导航AWS的200多个服务。专注于实用服务选择、成本意识设计和现代2025模式,包括Lambda SnapStart、EventBridge Pipes和S3 Express One Zone。

使用本技能当设计AWS解决方案、为特定工作负载选择服务、实现服务器less或容器架构,或优化现有AWS基础设施以降低成本、提高性能和可靠性时。

何时使用本技能

调用本技能当:

  • 为计算工作负载选择Lambda、Fargate、ECS、EKS或EC2
  • 基于访问模式选择数据库服务(RDS、Aurora、DynamoDB)
  • 为多层应用程序设计VPC架构
  • 使用API Gateway和Lambda实现服务器less模式
  • 在ECS或EKS上构建基于容器的微服务
  • 将AWS Well-Architected Framework应用于设计
  • 在保持性能的同时优化AWS成本
  • 实现安全最佳实践(IAM、KMS、加密)

核心服务选择框架

计算服务选择

决策流程:

执行时长:
  <15分钟 → 评估Lambda
  >15分钟 → 评估容器或VM

事件驱动/计划任务:
  是 → Lambda(服务器less)
  否 → 考虑流量模式

容器化:
  是 → 需要Kubernetes?
    是 → EKS
    否 → ECS(Fargate或EC2)
  否 → 评估EC2或先容器化

特殊需求:
  GPU/Windows/BYOL许可 → EC2
  可预测高流量 → EC2或ECS on EC2(成本优化)
  可变流量 → Lambda或Fargate

快速参考:

工作负载 首选 成本模型 关键优势
API后端 Lambda + API Gateway 按请求付费 自动扩展,无服务器
微服务 ECS on Fargate 按运行时付费 简单运维
Kubernetes应用 EKS $73/月 + 计算 可移植性,生态系统
批处理作业 Lambda或Fargate Spot 请求/spot定价 成本效率
长运行 EC2预留实例 30-60%节省 可预测成本

详细服务比较包括成本示例、性能特征和使用案例指南,参见references/compute-services.md

数据库服务选择

按访问模式决策矩阵:

访问模式 数据模型 首选 关键标准
事务型(OLTP) 关系型 Aurora 性能 + 高可用
简单CRUD 关系型 RDS PostgreSQL 成本 vs. 功能
键值查找 NoSQL DynamoDB 服务器less扩展
文档存储 JSON/BSON DynamoDB 灵活性 vs. MongoDB兼容
缓存 内存 ElastiCache Redis 速度 + 持久性
分析(OLAP) 列式 Redshift/Athena 专用 vs. 服务器less
时间序列 时间戳 Timestream 专用构建

查询复杂度指南:

  • 简单键值: DynamoDB(毫秒级延迟)
  • 中等连接(2-3表): Aurora或RDS(成本 vs. 性能)
  • 复杂分析: Redshift(专用)或Athena(服务器less,查询S3)
  • 实时流: DynamoDB Streams + Lambda

存储类选择、成本比较和迁移模式,参见references/database-services.md

存储服务选择

主要决策树:

数据类型:
  对象(文件,媒体) → S3 + 生命周期策略
  块(数据库,启动卷) → EBS
  共享文件(跨实例) → 评估协议

文件协议需求:
  NFS(Linux) → EFS
  SMB(Windows) → FSx for Windows
  高性能HPC → FSx for Lustre
  多协议 + 企业 → FSx for NetApp ONTAP

成本比较(1TB/月):

服务 月成本 访问模式
S3标准 $23 频繁访问
S3标准-IA $12.50 不频繁(>30天)
S3 Glacier即时 $4 归档,即时检索
EBS gp3 $80 块存储
EFS标准 $300 共享文件,频繁
EFS IA $25 共享文件,不频繁

推荐: 对80%+的存储需求使用S3。仅当需要共享文件访问时使用EFS/FSx。

S3存储类、EBS卷类型和生命周期策略示例,参见references/storage-services.md

服务器less架构模式

模式1: REST API(Lambda + API Gateway + DynamoDB)

架构:

客户端 → API Gateway(HTTP API) → Lambda → DynamoDB
                                        ↓
                                       S3(文件上传)

使用场景:

  • 构建具有CRUD操作的RESTful API
  • 可变或不可预测流量
  • 希望最小运维开销
  • 接受按请求付费成本模型

成本估算(1M请求/月):

  • 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日志用于调试

完整实现见examples/cdk/serverless-api/examples/terraform/serverless-api/

模式2: 事件驱动处理(EventBridge + Lambda + SQS)

架构:

S3上传 → EventBridge规则 → Lambda(处理) → DynamoDB(元数据)
                                              ↓
                                            SQS(下游任务)

使用场景:

  • 异步文件处理
  • 解耦微服务通信
  • 扇出模式(一个事件,多个消费者)
  • 需要重试逻辑和死信队列

关键功能(2025):

  • EventBridge Pipes: 简化源 → 过滤 → 丰富 → 目标
  • Lambda响应流: 流式响应最多20MB
  • Step Functions分布式映射: 并行处理数百万项

其他模式包括Step Functions编排、API Gateway WebSocket和Lambda SnapStart配置,见references/serverless-patterns.md

容器架构模式

模式1: ECS on Fargate(服务器less容器)

架构:

ALB → ECS服务(Fargate任务) → RDS Aurora
                                 ↓
                           ElastiCache Redis

使用场景:

  • 无需集群管理的容器化应用
  • 可变流量带自动扩展
  • 避免EC2实例管理
  • Docker部署

关键组件:

  • Application Load Balancer(基于路径路由)
  • 带Fargate启动类型的ECS集群
  • 任务定义(CPU、内存、容器镜像)
  • 基于CPU/内存或自定义指标的自动扩展
  • Service Connect用于内置服务网格(2025功能)

成本模型(2 vCPU, 4GB RAM, 24/7):

  • Fargate: ~$70/月
  • ALB: ~$20/月
  • RDS Aurora db.t3.medium: ~$50/月
  • 总计: ~$140/月

模式2: EKS(AWS上的Kubernetes)

使用场景:

  • 团队中有Kubernetes专业知识
  • 多云或混合云策略
  • 需要Kubernetes生态系统(Helm、Operator、Istio)
  • 复杂工作负载编排需求

关键功能(2025):

  • EKS自动模式: 全托管节点生命周期
  • EKS Pod身份: 简化IAM(替代IRSA)
  • EKS混合节点: 运行本地节点

成本考虑:

  • EKS控制平面:$73/月每集群
  • 工作节点:Fargate或EC2定价
  • 使用EKS on Fargate简化,EC2成本优化

ECS任务定义、EKS集群设置与CDK/Terraform和服务网格模式,见references/container-patterns.md

网络基础

VPC架构

标准3层模式:

VPC: 10.0.0.0/16

每可用区(跨3个AZ部署):
  公共子网:    10.0.X.0/24   (ALB, NAT网关)
  私有子网:   10.0.1X.0/24  (ECS, Lambda, 应用层)
  数据库子网:  10.0.2X.0/24  (RDS, Aurora, 隔离)

最佳实践:

  • 使用/16用于VPC CIDR(65,536 IP用于增长)
  • 使用/24用于子网CIDR(256 IP,251可用)
  • 跨最小2个AZ(推荐3个)部署以实现高可用
  • 使用安全组(有状态)用于实例级防火墙
  • 启用VPC流日志用于故障排除

负载均衡

服务选择:

负载均衡器 协议 使用案例 关键功能
ALB HTTP/HTTPS Web应用,API 路径/主机路由,Lambda目标
NLB TCP/UDP 高性能 静态IP,超低延迟
GWLB 第3层 安全设备 内联检查

ALB功能:

  • 基于路径路由:/api → 后端,/web → 前端
  • 基于主机路由:api.example.comweb.example.com
  • WebSocket和gRPC支持
  • 与Lambda集成(服务器less后端)

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访问分析器验证策略
  • 利用AWS Organizations SCPs设置护栏

数据保护

加密需求:

服务 静态加密 传输中加密
S3 SSE-S3或SSE-KMS HTTPS(TLS 1.2+)
EBS KMS加密 N/A(实例内)
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日志、指标、X-Ray)
  • 常见操作运行手册和剧本

2. 安全

  • 强身份基础(IAM角色和策略)
  • 深度防御(安全组、NACL、WAF)
  • 数据保护(静态和传输中加密)
  • 检测控制(CloudTrail、GuardDuty、Security Hub)

3. 可靠性

  • 多AZ部署(RDS多AZ、Aurora副本)
  • 自动扩展(EC2 ASG、ECS服务自动扩展)
  • 备份和恢复(自动快照、跨区域)
  • 混沌工程(故障注入模拟器)

4. 性能效率

  • 正确调整资源(使用Compute Optimizer)
  • 使用托管服务(减少运维开销)
  • 缓存策略(CloudFront、ElastiCache、DAX)
  • 持续监控和优化

5. 成本优化

  • 正确调整计算(匹配容量需求)
  • 定价模型(预留实例、Savings Plans、Spot)
  • 存储优化(S3智能分层、生命周期策略)
  • 成本监控(Cost Explorer、Budgets、Trusted Advisor)

6. 可持续性(2024新增)

  • 使用Graviton处理器(减少60%能源,性能提升25%)
  • 优化工作负载放置(可再生能源区域)
  • 存储效率(删除未使用数据、压缩)
  • 软件优化(高效代码、异步处理)

详细支柱实现指南、架构审查清单和Well-Architected工具集成,见references/well-architected.md

基础设施即代码

工具选择

AWS CDK(Cloud Development Kit):

  • 语言: TypeScript、Python、Java、C#、Go
  • 最适合: AWS原生工作负载,类型安全基础设施
  • 关键优势: 高级构造,合成到CloudFormation
  • 示例: examples/cdk/serverless-api/

Terraform:

  • 语言: HCL(HashiCorp配置语言)
  • 最适合: 多云环境
  • 关键优势: 最大生态系统,成熟状态管理
  • 示例: examples/terraform/serverless-api/

CloudFormation:

  • 语言: YAML或JSON
  • 最适合: 原生AWS集成,无需额外工具
  • 关键优势: AWS服务支持第1天
  • 示例: examples/cloudformation/lambda-api.yaml

CDK快速开始

# 安装CDK CLI
npm install -g aws-cdk

# 初始化新项目
cdk init app --language=typescript
npm install

# 部署基础设施
cdk bootstrap  # 一次性设置
cdk deploy

Terraform快速开始

# 安装Terraform
brew install terraform  # macOS

# 初始化项目
terraform init

# 预览更改
terraform plan

# 应用更改
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生命周期策略:

第0-30天:   S3标准         ($0.023/GB)
第30-90天:   S3标准-IA      ($0.0125/GB)
第90-365天:  S3 Glacier即时  ($0.004/GB)
第365天以上: S3深度归档     ($0.00099/GB)

EBS优化:

  • 使用gp3卷(比gp2便宜20%,可配置IOPS)
  • 删除未使用快照
  • 归档旧快照(便宜75%)

监控:

  • 启用AWS Cost Explorer(免费)
  • 设置AWS Budgets带警报
  • 使用成本分配标签用于归因
  • 查看Trusted Advisor成本检查

常见模式和示例

服务器less三层应用

CloudFront (CDN)
  → S3 (React前端)
  → API Gateway (REST API)
    → Lambda (业务逻辑)
      → DynamoDB (数据)
      → S3 (文件存储)

完整CDK实现: examples/cdk/three-tier-app/ 完整Terraform实现: examples/terraform/three-tier-app/

容器化微服务

Route 53 (DNS)
  → CloudFront (CDN)
    → ALB (负载均衡器)
      → ECS Fargate (服务)
        → RDS Aurora (数据库)
        → ElastiCache Redis (缓存)

完整实现: examples/cdk/ecs-fargate/

事件驱动数据流水线

S3上传
  → EventBridge规则
    → Lambda (转换)
      → Kinesis Firehose
        → S3数据湖
          → Athena (查询)

完整实现: 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
  • 服务器less模式: references/serverless-patterns.md - 高级Lambda、Step Functions、EventBridge
  • 容器模式: references/container-patterns.md - ECS Service Connect、EKS Pod身份
  • 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响应流: 流式响应最多20MB
  • EventBridge Pipes: 简化事件处理(源 → 过滤 → 丰富 → 目标)
  • S3 Express One Zone: 10倍更快S3,毫秒级延迟
  • ECS Service Connect: ECS内置服务网格
  • EKS自动模式: 全托管Kubernetes节点生命周期
  • EKS Pod身份: 简化Pod的IAM(替代IRSA)
  • Aurora Limitless数据库: 水平写扩展超越单写限制
  • DynamoDB标准-IA: 不频繁访问表节省60%成本
  • RDS蓝绿部署: 零停机版本升级

快速决策清单

选择服务前回答:

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

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

开始使用

针对新AWS项目:

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

针对现有AWS项目:

  1. 运行AWS Trusted Advisor获取推荐
  2. 回顾Well-Architected Framework支柱
  3. 优化成本(正确调整、预留实例、存储生命周期)
  4. 迁移到现代服务(EC2 → Fargate、RDS → Aurora)
  5. 改进安全态势(启用GuardDuty、实现最小权限)
  6. 使用IaC自动化(逆向工程到Terraform或CDK)