SuperAPI AI 工具集

aws-aurora

部署与运维

查看项目

更新于 10-15 12:26

技能介绍

用途

本技能面向在 AWS 上使用 Amazon Aurora 的开发者,重点解决无服务器(尤其是 Lambda)场景下的数据库连接管理问题。Aurora 是兼容 MySQL/PostgreSQL 的关系型数据库,具备无服务器伸缩、高可用与企业级特性,适合 ACID 合规的工作负载。资料的核心原则是:无服务器场景使用 RDS Proxy,追求简单则使用 Data API,并始终做好连接池。

主要能力与方案选型

资料列出了 Aurora 的几种形态及各自适用场景:

  • Aurora Serverless v2:适用于负载波动、需要自动伸缩的场景,容量单位为 ACU,范围 0.5-128。
  • Aurora Provisioned:适用于可预测负载、追求最大性能的场景。
  • Aurora Global:适用于多区域与灾难恢复。
  • Data API:适用于无需 VPC 的无服务器简单 HTTP 访问。
  • RDS Proxy:适用于 Lambda 与高并发场景的连接池。

三种连接策略

  1. RDS Proxy(资料推荐的 Lambda 方案):Lambda 经代理连接 Aurora,具备连接池复用、自动故障转移、IAM 认证支持,且兼容现有 SQL 客户端。
  2. Data API(无服务器最简方案):Lambda 通过 HTTP 访问 Aurora,无需 VPC、无需管理连接,但单次查询延迟更高,且限于 Aurora Serverless。
  3. 直连:仅适合 ECS、EC2 等长期运行的服务器,需自行管理连接池,不适合无服务器。

使用方式(资料给出的示例要点)

  • RDS Proxy:资料提供了 CDK 创建代理的示例,包含 requireTLS、idleClientTimeout(30 分钟)、maxConnectionsPercent(90)、maxIdleConnectionsPercent(10)、borrowTimeout(30 秒)等参数;并给出基于 pg 与 @aws-sdk/rds-signer 的 IAM 认证连接代码,Lambda 中 max 设为 1,复用 Pool。
  • Data API:需先对集群启用 HTTP 端点(aws rds modify-db-cluster --enable-http-endpoint),再使用 data-api-client(TypeScript)或 boto3 的 rds-data(Python)执行查询、插入与事务,含 begin/commit/rollback 示例。
  • Prisma:通过 RDS Proxy 端点配置 DATABASE_URL(含 connection_limit=1),在 Lambda 中复用 PrismaClient。
  • Serverless v2 容量:资料给出 Dev/Test、小/中/大型生产的 Min/Max ACU 建议表,并提供扩缩容唤醒时的指数退避重试代码。
  • 迁移:可使用 Prisma Migrate(migrate dev / migrate deploy / generate),或通过迁移 Lambda 在部署时执行迁移,CI/CD 中以环境变量传入 DATABASE_URL。
  • 非 Lambda 连接池:可使用 PgBouncer sidecar(transaction 池模式)或应用层 Pool(max 20 等参数)。

监控与安全

监控方面列出 Aurora 的 CPUUtilization、DatabaseConnections、FreeableMemory、ServerlessDatabaseCapacity、AuroraReplicaLag,以及 RDS Proxy 的 DatabaseConnectionsCurrentlyBorrowed、DatabaseConnectionsCurrentlySessionPinned、QueryDatabaseResponseLatency、ClientConnectionsReceived 等 CloudWatch 指标,并给出启用 Performance Insights 的命令。安全方面涵盖 IAM 数据库认证(令牌有效期 15 分钟)与 Secrets Manager 获取及轮换凭据,强调不要硬编码凭据。资料还附有集群、Serverless v2、Data API、Proxy、快照相关的 CLI 快速参考。

限制与反模式

资料明确列出若干反模式:Lambda 直连 Aurora、未设置连接上限、忽视冷启动(Serverless v2 扩容需要时间)、不使用只读副本分流、缺少 IAM 认证、缺少重试逻辑、容量过度配置、跳过 Secrets Manager。Data API 有更高的单次查询延迟且仅限 Aurora Serverless;扩容唤醒需要重试处理。其他未在资料中提及的功能、收费、价格或平台信息暂未提供。