关于 aws-solution-architect
面向初创团队的 AWS 架构设计技能,涵盖云原生模式,并关注扩展性、安全性与成本。可提供架构方案、基础设施模板、成本估算、安全评估,以及部署或迁移指引。
主要功能
- 01无服务器与事件驱动架构设计
- 02生成基础设施即代码模板
- 03规划扩展能力与数据存储
- 04提供成本优化建议
- 05安全与合规评估
- 06部署和迁移指引
适用场景
- 01设计无服务器应用后端
- 02为 Web 应用生成基础设施模板
- 03审查 AWS 成本与安全实践
- 04规划分阶段云迁移
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ alirezarezvani/ claude-code-skill-factory --skill aws-solution-architect安装后在 Claude Code 中输入/aws-solution-architect确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
architecture_designer.pycost_optimizer.pyexpected_output.jsonHOW_TO_USE.mdsample_input.jsonserverless_stack.py详细介绍
初创公司 AWS 解决方案架构师
此技能提供全面的 AWS 架构设计专业知识,面向初创公司,着重采用无服务器技术、实现可扩展性、优化成本并应用现代云原生模式。
能力
- 无服务器架构设计:Lambda、API Gateway、DynamoDB、EventBridge、Step Functions、AppSync
- 基础设施即代码:CloudFormation、CDK(Cloud Development Kit)、Terraform 模板
- 可扩展的应用架构:自动扩缩、负载均衡、多区域部署
- 数据与存储解决方案:S3、RDS Aurora Serverless、DynamoDB、ElastiCache、Neptune
- 事件驱动架构:EventBridge、SNS、SQS、Kinesis、Lambda 触发器
- API 设计:API Gateway(REST 和 WebSocket)、AppSync(GraphQL)、速率限制、身份验证
- 身份验证与授权:Cognito、IAM、细粒度访问控制、联合身份
- CI/CD 流水线:CodePipeline、CodeBuild、CodeDeploy、GitHub Actions 集成
- 监控与可观测性:CloudWatch、X-Ray、CloudTrail、警报、仪表板
- 成本优化:预留实例、Savings Plans、资源规格优化、预算警报
- 安全最佳实践:VPC 设计、安全组、WAF、Secrets Manager、加密
- 微服务模式:服务网格、API 组合、Saga 模式、CQRS
- 容器编排:ECS Fargate、EKS(Kubernetes)、App Runner
- 内容分发:CloudFront、边缘站点、源站屏蔽、缓存策略
- 数据库迁移:DMS、架构转换、零停机迁移
输入要求
架构设计需要提供:
- 应用类型:Web 应用、移动端后端、数据流水线、微服务、SaaS 平台
- 流量预期:每日用户数、每秒请求数、地理分布
- 数据要求:存储需求、数据库类型、备份和保留策略
- 预算限制:每月支出上限、成本优化优先级
- 团队规模与专业水平:开发人员数量、AWS 经验水平、DevOps 成熟度
- 合规需求:GDPR、HIPAA、SOC 2、PCI-DSS、数据驻留
- 可用性要求:SLA 目标、正常运行时间目标、灾难恢复 RPO/RTO
接受以下格式:
- 应用需求的文本描述
- 包含结构化架构规范的 JSON
- 现有架构图或文档
- 当前 AWS 资源清单(用于优化)
输出格式
结果包括:
- 架构图:使用 draw.io 或 Lucidchart 格式呈现的可视化图示
- CloudFormation/CDK 模板:可直接部署的基础设施即代码(IaC)
- Terraform 配置:兼容多云的基础设施定义
- 成本估算:详细的每月成本明细及优化建议
- 安全评估:最佳实践检查清单、合规性验证
- 部署指南:分步实施说明
- 运行手册:运维流程、故障排查指南、灾难恢复计划
- 迁移策略:分阶段迁移计划、回滚流程
使用方法
“为拥有 10 万用户的移动应用设计一个使用 Lambda 和 DynamoDB 的无服务器 API 后端” “为采用多租户架构的 SaaS 平台创建一个经过成本优化的架构” “为具有自动扩缩功能的三层 Web 应用生成 CloudFormation 模板” “设计一个使用 EventBridge 和 Step Functions 的事件驱动微服务架构” “优化我当前的 AWS 配置,将成本降低 30%”
脚本
architecture_designer.py:生成架构模式和服务建议serverless_stack.py:创建无服务器应用堆栈(Lambda、API Gateway、DynamoDB)cost_optimizer.py:分析 AWS 成本并提供优化建议iac_generator.py:生成 CloudFormation、CDK 或 Terraform 模板security_auditor.py:验证 AWS 安全最佳实践并执行合规性检查
架构模式
1. 无服务器 Web 应用程序
使用场景:SaaS 平台、移动后端、低流量网站
技术栈:
- 前端:S3 + CloudFront(静态托管)
- API:API Gateway + Lambda
- 数据库:DynamoDB 或 Aurora Serverless
- 身份验证:Cognito
- CI/CD:Amplify 或 CodePipeline
优势:无需管理服务器、按使用量付费、自动扩展、运维开销低
成本:小到中等流量每月 $50-500
2. 事件驱动的微服务
使用场景:复杂业务工作流、异步处理、解耦系统
技术栈:
- 事件:EventBridge(事件总线)
- 处理:Lambda 函数或 ECS Fargate
- 队列:SQS(用于处理失败的死信队列)
- 状态管理:Step Functions
- 存储:DynamoDB、S3
优势:松散耦合、独立扩展、故障隔离、易于测试
成本:每月 $100-1000,具体取决于事件量
3. 现代三层应用程序
使用场景:包含动态内容的传统 Web 应用、电商、CMS
技术栈:
- 负载均衡器:ALB(Application Load Balancer)
- 计算:ECS Fargate 或 EC2 Auto Scaling
- 数据库:RDS Aurora(MySQL/PostgreSQL)
- 缓存:ElastiCache(Redis)
- CDN:CloudFront
- 存储:S3
优势:成熟可靠的模式、易于理解、扩展灵活
成本:每月 $300-2000,具体取决于流量和实例规格
4. 实时数据处理
使用场景:分析、IoT 数据摄取、日志处理、流式处理
技术栈:
- 摄取:Kinesis Data Streams 或 Firehose
- 处理:Lambda 或 Kinesis Analytics
- 存储:S3(数据湖)+ Athena(查询)
- 可视化:QuickSight
- 告警:CloudWatch + SNS
优势:可处理数百万个事件、实时洞察、存储成本效益高
成本:每月 $200-1500,具体取决于数据量
5. GraphQL API 后端
使用场景:移动应用、单页应用、灵活的数据查询
技术栈:
- API:AppSync(托管式 GraphQL)
- 解析器:Lambda 或直接集成 DynamoDB
- 数据库:DynamoDB
- 实时功能:AppSync 订阅(WebSocket)
- 身份验证:Cognito 或 API 密钥
优势:单一端点、减少数据获取过多或不足、实时订阅
成本:中等用量每月 $50-400
6. 多区域高可用性
使用场景:全球应用、灾难恢复、合规要求
技术栈:
- DNS:Route 53(基于地理位置的路由)
- CDN:搭配多个源站的 CloudFront
- 计算:多区域 Lambda 或 ECS
- 数据库:DynamoDB Global Tables 或 Aurora Global Database
- 复制:S3 跨区域复制
优势:全球低延迟、灾难恢复、数据主权
成本:单区域成本的 1.5-2 倍
最佳实践
无服务器设计原则
- 无状态函数 - 将状态存储在 DynamoDB、S3 或 ElastiCache 中
- 幂等性 - 妥善处理重试,使用唯一请求 ID
- 冷启动优化 - 对关键路径使用预置并发,优化程序包大小
- 超时管理 - 设置适当的超时时间,使用 Step Functions 处理长时间运行的流程
- 错误处理 - 实现重试逻辑、死信队列和指数退避
成本优化
- 合理配置资源 - 从小规模开始,监控指标,根据实际用量扩展
- 预留容量 - 对用量可预测的工作负载使用 Savings Plans 或 Reserved Instances
- S3 生命周期策略 - 转移到更便宜的存储层级(IA、Glacier)
- Lambda 内存优化 - 测试不同的内存设置,以平衡成本和性能
- CloudWatch 日志保留 - 设置适当的保留期限(大多数情况下为 7-30 天)
- NAT Gateway 替代方案 - 使用 VPC 端点,在开发环境中考虑使用单个 NAT
安全加固
- 最小权限原则 - 使用权限最少的 IAM 角色
- 全面加密 - 静态数据加密(KMS)和传输中加密(TLS/SSL)
- 网络隔离 - 私有子网、安全组、NACL
- 密钥管理 - 使用 Secrets Manager 或 Parameter Store,绝不硬编码
- API 保护 - WAF 规则、速率限制、API 密钥、OAuth2
- 审计日志 - 使用 CloudTrail 记录 API 调用,使用 VPC Flow Logs 记录网络流量
可扩展性设计
- 优先横向扩展 - 通过增加小型实例而不是升级为更大型实例来扩展
- 数据库分片 - 按租户、地理位置或时间划分数据
- 只读副本 - 将读取流量从主数据库分流
- 缓存层 - CloudFront(边缘)、ElastiCache(应用)、DAX(DynamoDB)
- 异步处理 - 使用队列(SQS)处理非关键操作
- 自动扩缩策略 - 目标跟踪(CPU、请求)或阶梯扩缩
DevOps 与可靠性
- 基础设施即代码 - 版本控制、同行评审、自动化测试
- 蓝绿部署 - 零停机发布、即时回滚
- 金丝雀发布 - 以少量流量测试新版本
- 运行状况检查 - 应用级运行状况端点、优雅降级
- 混沌工程 - 测试故障场景,验证恢复流程
- 监控与告警 - 为关键指标设置 CloudWatch 警报
服务选择指南
计算
- Lambda:事件驱动、短时任务(<15 min)、流量变化较大
- Fargate:容器化应用、长时间运行的进程、流量可预测
- EC2:自定义配置、需要 GPU/FPGA、Windows 应用
- App Runner:从源代码简单部署容器
数据库
- DynamoDB:键值、文档存储、无服务器、个位数毫秒延迟
- Aurora Serverless:关系型数据库、工作负载变化较大、自动扩缩
- Aurora Standard:高性能关系型数据库、流量可预测
- RDS:传统数据库(MySQL、PostgreSQL、MariaDB、SQL Server)
- DocumentDB:兼容 MongoDB 的文档存储
- Neptune:用于关联数据的图数据库
- Timestream:时序数据、IoT 指标
存储
- S3 Standard:频繁访问、低延迟
- S3 Intelligent-Tiering:自动优化成本
- S3 IA (Infrequent Access):备份、归档(至少 30 天)
- S3 Glacier:长期归档、合规
- EFS:网络文件系统、实例间共享存储
- EBS:EC2 块存储、高 IOPS
消息与事件
- EventBridge:事件总线、松耦合微服务
- SNS:发布/订阅、扇出通知
- SQS:消息排队、解耦、缓冲
- Kinesis:实时流数据、分析
- MQ:托管消息代理(RabbitMQ、ActiveMQ)
API 与集成
- API Gateway:REST API、WebSocket、限流、缓存
- AppSync:GraphQL API、实时订阅
- AppFlow:SaaS 集成(Salesforce、Slack 等)
- Step Functions:工作流编排、状态机
创业公司专项考量
MVP(最小可行产品)架构
目标:快速发布,基础设施精简
建议:
- Amplify(全栈部署)
- Lambda + API Gateway + DynamoDB
- 使用 Cognito 进行身份验证
- 使用 CloudFront + S3 部署前端
成本:$20-100/月 设置时间:1-3 天
成长阶段(扩展至 10k-100k 用户)
目标:应对增长,同时保持成本效益
增加:
- 使用 ElastiCache 进行缓存
- 使用 Aurora Serverless 处理复杂查询
- CloudWatch 控制面板和警报
- CI/CD 流水线(CodePipeline)
- 多可用区部署
成本:$500-2000/月 迁移时间:1-2 周
扩容(10 万以上用户,A 轮融资及以上)
目标:可靠性、可观测性、全球覆盖
添加:
- 多区域部署
- DynamoDB Global Tables
- 高级监控(X-Ray、第三方 APM)
- 使用 WAF 和 Shield 防护 DDoS
- 专属支持计划
- 预留实例/Savings Plans
成本:每月 3000–10000 美元 迁移时间:1–3 个月
常见问题及规避方法
技术债务
- 过早过度设计 - 只有 100 位用户时,不要按 1000 万用户的规模构建
- 监控不足 - 从第一天起就设置基本监控
- 忽视成本 - 立即启用 Cost Explorer 和账单提醒
- 依赖单一区域 - 从一开始就规划多区域部署
安全错误
- 公开的 S3 存储桶 - 使用存储桶策略,阻止公开访问
- IAM 权限过于宽泛 - 避免使用 "*" 权限,指定具体资源
- 凭据硬编码 - 使用 IAM 角色和 Secrets Manager
- 数据未加密 - 默认启用加密
性能问题
- 没有缓存 - 尽早添加 CloudFront 和 ElastiCache
- 查询效率低下 - 使用索引,避免在 DynamoDB 中执行扫描
- Lambda 程序包过大 - 使用层,尽量减少依赖项
- N+1 查询 - 实现 DataLoader 模式,批量执行操作
意外成本
- 资源未删除 - 为所有资源添加标签,并定期检查
- 数据传输成本 - 尽可能让流量保持在同一 AZ/区域内
- NAT Gateway 费用 - 使用 AWS 服务的 VPC 端点
- CloudWatch Logs 不断累积 - 设置保留策略
合规与治理
数据驻留
- 使用指定区域(GDPR 合规可选择 eu-west-1)
- 启用 S3 存储桶复制限制
- 配置 Route 53 地理位置路由
HIPAA 合规
- 仅使用符合 BAA 要求的服务
- 启用静态和传输中加密
- 实施审计日志记录(CloudTrail)
- 配置带有私有子网的 VPC
SOC 2 / ISO 27001
- 启用 AWS Config 合规规则
- 使用 AWS Audit Manager
- 实施最小权限访问
- 定期开展安全评估
局限性
- Lambda 局限性:执行时间上限为 15 分钟,内存上限为 10GB,存在冷启动延迟
- API Gateway 限制:超时时间为 29 秒,负载大小上限为 10MB
- DynamoDB 限制:项目大小上限为 400KB,默认使用最终一致性读取
- 区域可用性:并非所有服务都在所有区域提供
- 供应商锁定:部分无服务器服务特定于 AWS(可考虑使用抽象层)
- 学习曲线:需要具备 AWS 专业知识和 DevOps 知识
- 调试复杂性:与单体架构相比,分布式系统更难排查问题
实用资源
- AWS Well-Architected Framework:https://aws.amazon.com/architecture/well-architected/
- AWS Architecture Center:https://aws.amazon.com/architecture/
- Serverless Land:https://serverlessland.com/
- AWS Pricing Calculator:https://calculator.aws/
- AWS Cost Explorer:跟踪并分析支出
- AWS Trusted Advisor:自动检查最佳实践
- CloudFormation Templates:https://github.com/awslabs/aws-cloudformation-templates
- AWS CDK Examples:https://github.com/aws-samples/aws-cdk-examples