You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从AWS us-east-1跨区域读取RDS MySQL数据并更新本区域数据库

AWS跨区域表行数统计自动化方案

假设你使用的是AWS托管数据库(以下方案默认适配DynamoDB,RDS/Aurora等可对应调整计数接口,整体架构逻辑不变),具体实现如下:

1. 一站式自动化实现方案

全程仅需在us-east-1区域部署资源,无需跨区域操作:

  • 首先在us-east-1创建Lambda函数,为其配置IAM权限:允许读取三个目标区域对应items表的访问权限,以及us-east-1区域MainDB.globaltracker表的写入权限
  • Lambda内分别初始化不同区域的数据库SDK客户端,示例Python代码片段:
import boto3
# 初始化各区域DynamoDB客户端,其他数据库替换对应服务名即可
ddb_clients = {
    "us-east-1": boto3.client("dynamodb", region_name="us-east-1"),
    "ap-south-1": boto3.client("dynamodb", region_name="ap-south-1"),
    "eu-central-1": boto3.client("dynamodb", region_name="eu-central-1")
}
tracker_ddb = boto3.client("dynamodb", region_name="us-east-1")
  • 计数逻辑按需二选一:
    • 允许分钟级误差:直接调用DescribeTable接口获取后台自动统计的ItemCount属性,无需扫表,毫秒级返回,无额外开销
    • 需要精确计数:调用Scan接口指定Select='COUNT'参数,配合分页逻辑完成全表计数,可根据业务吞吐量调整扫描速度避免影响线上业务
  • 完成三个区域的行数统计后,直接将结果写入MainDB.globaltracker表即可

2. 定期运行实现方式

直接使用us-east-1的Amazon EventBridge做全托管定时调度:

  • 进入EventBridge控制台创建定时规则,按需求配置cron表达式,例如每天凌晨2点执行的表达式为0 2 * * ? *
  • 规则触发目标选择前面创建的Lambda函数即可,支持配置运行失败告警、自动重试策略,无需自行维护调度服务

3. 跨区域读取效率优化

  • 所有AWS SDK的跨区域调用默认走AWS内部骨干网,比公网调用延迟低40%以上,无需额外配置专线
  • 如果使用DynamoDB,且本身有跨区域读写需求,可开启全局表(Global Table),直接读取us-east-1本地副本,延迟可降至10ms以内
  • 精确计数场景下,使用ParallelScan并行扫描替代单线程扫描,扫描速度可提升3~10倍,注意根据表的预留吞吐量调整并行数
  • 如果使用RDS/Aurora,可创建跨区域只读副本,所有计数请求走只读副本,完全不影响主库线上业务,跨区域副本同步延迟通常在1秒以内

内容的提问来源于stack exchange,提问作者Ganga

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 05:36:05