Skip to content
返回部署

部署 DynamoDB

AWS NoSQL 数据库,单位数 ms 延迟、自动扩缩和全球表。

平台进阶

为什么

DynamoDB 全托管 NoSQL,任意规模单位数 ms 延迟、自动扩缩和全球表多区域。按请求或预置容量付费。

平台即服务采用率 2024 年增长 24%,团队从虚拟机管理转向 git push 部署。the cloud infrastructure market reached $330B in 2024, growing 22% year-over-year (Synergy Research),PaaS 层捕获了大多数新工作负载。

何时使用

AWS 上键值和文档工作负载用 DynamoDB,尤其 serverless。复杂查询(无 JOIN)避免。

如何做

1. 创建 — aws dynamodb create-table 配 key schema 2. 索引 — GSI 用于替代访问模式 3. 容量 — 按需(按请求付费)或预置 4. 认证 — IAM 角色访问,无密码 5. 全球 — 全球表多区域复制 6. 流 — DynamoDB Streams 变更事件 7. 查询 — aws dynamodb query 或 SDK

示例

# 创建表 aws dynamodb create-table --table-name users --attribute-definitions AttributeName=id,AttributeType=S --key-schema AttributeName=id,KeyType=HASH --billing-mode PAY_PER_REQUEST # SDK import { DynamoDBClient, PutItemCommand } from "@aws-sdk/client-dynamodb"; const client = new DynamoDBClient({}); await client.send(new PutItemCommand({ TableName: "users", Item: { id: { S: "123" }, name: { S: "Alice" } }, })); # 全球表(多区域) aws dynamodb create-global-table --global-table-name users --replication-group RegionName=us-east-1 RegionName=eu-west-1

常见问题

  • ⚠热分区 — key 分布不均,用随机后缀分散
  • ⚠限流 — 预置容量过低,切按需
  • ⚠环境间配置漂移 — 使用基础设施即代码(Terraform/Pulumi)保持 dev/staging/prod 一致

最佳实践

  • ✓不可预测工作负载用按需 — 无需容量规划
  • ✓先设计访问模式 — DynamoDB 是 NoSQL,schema 跟查询
  • ✓设置健康检查和优雅关闭 — 处理 SIGTERM 以在退出前排空进行中的请求

常见问题解答