如何将我的 DynamoDB 表从一个 AWS 账户迁移到另一个账户?

上次更新时间:2020 年 9 月 24 日

如何执行跨账户 DynamoDB 表迁移?

简短描述

您可以使用 AWS Data Pipeline 或 Amazon EMR 将 DynamoDB 表移动到另一个 AWS 账户。Data Pipeline 是最快、最简单的方法,但提供的自定义选项较少。对于拥有更多技术专业知识并希望更好地控制流程的用户,Amazon EMR 是更好的选择。

解决方法

Data Pipeline

要使用 Data Pipeline 将 DynamoDB 表移动到其他账户,请参阅如何使用 Data Pipeline 将 DynamoDB 表备份到位于不同账户中的 S3 存储桶?

注意:目标账户无法访问 Amazon Simple Storage Service (Amazon S3) 存储桶中的 DynamoDB 数据。要使用这些数据,请将其还原到 DynamoDB 表。

Amazon EMR

当您使用 Amazon EMR 迁移 DynamoDB 表时,有两个选项可用,具体取决于您的使用案例:

  • 如果您可以承受迁移过程中的停机时间,请停止对源表的写入操作,以确保目标表与源表保持同步。
  • 如果无法承受停机时间,则必须将迁移期间发生的所有事务存储在暂存表中。在将原始表迁移到其他 AWS 账户后,可将新交易从暂存表推送到目标表。

注意:使用 Amazon EMR 迁移表所需的时间可能会有很大差异,具体取决于网络性能、DynamoDB 表的预配置吞吐量、表中存储的数据量以及其他因素。

使用 Amazon EMR 迁移 DynamoDB 表:

  1. 在源账户和目标账户中启动 EMR 集群。在 Software configuration(软件配置)部分中,确保您选择了包含 Apache Hive 的选项。
    注意:安全最佳实践是将 Amazon EMR 集群启动到私有子网中。私有子网必须具有 Amazon S3 VPC 终端节点和指向 DynamoDB 的路由。有关详细信息,请参阅私有子网。如果集群需要访问互联网,请使用位于公有子网中的 NAT 网关。有关更多信息,请参阅带有公有子网和私有子网 (NAT) 的 VPC
  2. 确保两个账户中的 EMR_EC2_DefaultRole AWS Identity and Access Management (IAM) 角色都有写入目标账户中的 S3 存储桶的权限。有关更多信息,请参阅为 IAM 服务角色配置访问 AWS 服务和资源所需的 Amazon EMR 权限
  3. 在源账户中,使用 SSH 连接到主节点
  4. 在源账户中,使用 Hive 命令将 DynamoDB 表数据导出到目标账户中的 S3 存储桶。
  5. 在目标账户中,将 Amazon S3 数据导入到新 DynamoDB 表
  6. 如果您使用暂存表捕获在迁移过程中发生的写入,请在暂存表上重复步骤 4 和 5。

这篇文章对您有帮助吗?


您是否需要账单或技术支持?