AWS | Amazon Web Services
设置
首次使用时,请阅读setup.md以了解集成选项。该技能可立即使用——个性化设置是可选的。
使用时机
用户需要AWS基础设施指导。助手负责处理架构决策、服务选择、成本优化、安全加固和部署模式。

架构
内存存储于~/aws/目录。有关结构,请参阅memory-template.md。
~/aws/
├── memory.md # Account context + preferences
├── resources.md # Active infrastructure inventory
└── costs.md # Cost tracking + alerts
快速参考
| 主题 | 文件 |
|---|---|
| 设置流程 | setup.md |
| 内存模板 | memory-template.md |
| 服务模式 | services.md |
| 成本优化 | costs.md |
| 安全加固 | 安全.md |
核心规则
1. 首先验证账户上下文
在任何操作之前,确认:
- 区域(默认:us-east-1,但需询问)
- 账户类型(个人/初创/企业)
- 现有基础设施(VPC、子网、安全组)
aws sts get-caller-identity
aws ec2 describe-vpcs --query 'Vpcs[].{ID:VpcId,CIDR:CidrBlock,Default:IsDefault}'
2. 成本优先架构
每条建议都包含成本影响:
| 阶段 | 推荐技术栈 | 月度成本 |
|---|---|---|
| MVP(<1k用户) | 单台EC2 + RDS | 约$50 |
| 成长期(1-10k) | ALB + ASG + RDS多可用区 | 约$200 |
| 规模化(10k+) | ECS/EKS + Aurora + ElastiCache | 约$500以上 |
默认采用最小可行实例。扩展很容易;缩减则浪费资金。
3. 默认安全
每项资源都包含:
- 最小权限原则的IAM
- 静态加密(至少使用KMS默认密钥)
- VPC隔离(数据库无公共子网)
- 安全组明确拒绝所有入站
4. 基础设施即代码
生成Terraform或CloudFormation以实现可复现性:
# Prefer Terraform for multi-cloud portability
terraform init && terraform plan
绝不依赖仅通过控制台进行的更改。
5. 标签策略
每项资源都需打标签以进行成本分配:
--tags Key=Environment,Value=prod Key=Project,Value=myapp Key=Owner,Value=team
6. 从第一天起就进行监控
随基础设施部署CloudWatch警报:
- 账单警报(避免意外)
- CPU/内存阈值
- 错误率峰值
成本陷阱
NAT网关数据处理($0.045/GB):VPC端点对于S3/DynamoDB是免费的。一个繁忙的应用仅NAT一项每月就可能烧掉500美元。
aws ec2 create-vpc-endpoint --vpc-id vpc-xxx \
--service-name com.amazonaws.us-east-1.s3 --route-table-ids rtb-xxx
EBS快照会无限累积:自动备份创建的快照永远不会删除。请设置生命周期策略。
aws ec2 describe-snapshots --owner-ids self \
--query 'Snapshots[?StartTime<=`2024-01-01`].[SnapshotId,StartTime,VolumeSize]'
CloudWatch日志默认保留期限为永久:
aws logs put-retention-policy --log-group-name /aws/lambda/fn --retention-in-days 14
闲置负载均衡器每月至少花费16美元:即使流量为零,ALB也会收费。请删除未使用的负载均衡器。
跨可用区数据传输双向均收费,每GB 0.01美元:跨可用区频繁通信的微服务会快速累积费用。请尽可能将服务部署在同一区域。
安全陷阱
S3存储桶策略会覆盖ACL:控制台可能显示ACL为"私有",但存储桶策略仍可能暴露所有内容。
aws s3api get-bucket-policy --bucket my-bucket 2>/dev/null || echo "No policy"
aws s3api get-public-access-block --bucket my-bucket
默认VPC安全组允许所有出站流量:攻击者可通过出站通道窃取数据。请限制出站流量。
同时拥有控制台访问和编程访问权限的IAM用户:代码中的凭证容易泄露。请使用角色+临时凭证。
控制台中RDS公开访问选项默认为"是":务必仔细核查:
aws rds describe-db-instances --query 'DBInstances[].{ID:DBInstanceIdentifier,Public:PubliclyAccessible}'
性能模式
Lambda冷启动:
- 对延迟敏感的函数使用预置并发
- 保持包体积小(解压后小于50MB)
- 在处理器外部初始化SDK客户端
RDS连接限制:
| 实例 | 最大连接数 |
|---|---|
| db.t3.micro | 66 |
| db.t3.small | 150 |
| db.t3.medium | 300 |
为Lambda使用RDS代理以避免连接耗尽。
EBS卷类型:
| 类型 | 使用场景 | IOPS |
|---|---|---|
| gp3 | 默认(性能稳定) | 3,000基准 |
| io2 | 数据库(性能有保障) | 最高可达64,000 |
| st1 | 大数据(高吞吐量) | 500 MiB/秒 |
服务选择
| 需求 | 服务 | 原因 |
|---|---|---|
| 静态网站 | S3 + CloudFront | 每月几美分,全球CDN |
| API后端 | Lambda + API Gateway | 零闲置成本 |
| 容器应用 | ECS Fargate | 无需集群管理 |
| 数据库 | RDS PostgreSQL | 托管式,支持多可用区 |
| 缓存 | ElastiCache Redis | 会话/缓存,延迟低于DynamoDB |
| 队列 | SQS | 多数情况下比SNS更简单 |
| 搜索 | OpenSearch | Elasticsearch 托管服务 |
CLI 要点
# Configure credentials
aws configure --profile myproject
# Always specify profile
export AWS_PROFILE=myproject
# Check current identity
aws sts get-caller-identity
# List all regions
aws ec2 describe-regions --query 'Regions[].RegionName'
# Estimate monthly cost
aws ce get-cost-forecast --time-period Start=$(date +%Y-%m-01),End=$(date -v+1m +%Y-%m-01) \
--metric UNBLENDED_COST --granularity MONTHLY
安全与隐私
凭证:此技能使用 AWS CLI,它从~/.aws/credentials或环境变量中读取凭证。该技能从不存储、记录或传输 AWS 凭证。
本地存储:偏好设置和上下文存储在~/aws/目录下——没有任何数据离开您的机器。
CLI 命令:所有显示的命令默认均为只读。破坏性操作(删除、终止)需要用户明确确认。
相关技能
使用clawhub install <slug>安装(如果用户确认):
基础设施——架构决策云——多云模式docker— 容器基础后端— API设计
反馈
- 如有帮助:
clawhub star aws - 保持更新:
clawhub sync


微信扫一扫,打赏作者吧~