如何使用 Data Pipeline 在我的 Amazon S3 存储桶之间运行一次性复制或自动定时同步?

上次更新时间:2020 年 6 月 18 日

我想通过一次性任务或定时同步的方式在两个 Amazon Simple Storage Service (Amazon S3) 存储桶之间传输数据。如何使用 AWS Data Pipeline 设置存储桶之间的复制或同步操作?

解决方法

注意:使用 Data Pipeline 是在 S3 存储桶之间传输数据的方法之一。其他方法包括使用 S3 批量操作、启用复制或通过 AWS 命令行界面 (AWS CLI) 运行 cp 或 sync 命令。

1.    确认您的 AWS Identity and Access Management (IAM) 用户或角色具有使用 Data Pipeline 的足够权限

2.    以您的 IAM 用户或角色身份登录 AWS Data Pipeline 控制台。确认控制台设置为某个支持 Data Pipeline 的 AWS 区域

重要提示:源存储桶和目标存储桶不必位于相同区域,并且存储桶和管道也不必位于相同的区域,但跨区域传输数据将会产生费用。请务必查看 Amazon S3 数据传输定价

3.    选择创建管道

4.    对于名称,输入管道的名称。

5.    对于,选择使用模板构建。然后选择运行 AWS CLI 命令

6.    对于 AWS CLI 命令,要设置复制操作,请输入以下命令:

aws s3 cp s3://source-AWSDOC-EXAMPLE-BUCKET1 s3://destination-AWSDOC-EXAMPLE-BUCKET2

注意:复制命令将会覆盖目标存储桶中任何与源存储桶中键名相同的对象。

要设置同步操作,请输入以下命令:

aws s3 sync s3://source-AWSDOC-EXAMPLE-BUCKET1 s3://destination-AWSDOC-EXAMPLE-BUCKET2

注意:同步命令将会对源存储桶和目标存储桶进行比较,然后仅传输有差异的数据。

7.    对于运行,一次性复制或同步作业应选择在管道激活时。定时复制或同步应选择按计划,然后根据您的使用案例填写运行间隔开始时间结束时间字段。

8.    对于日志记录,您可以选择已启用,然后输入日志的 S3 位置。如果您不需要日志记录,您可以选择已禁用

9.    对于 IAM 角色,您可以选择默认角色自定义角色。默认角色拥有下列 Amazon S3 权限:s3:CreateBuckets3:DeleteObjects3:Get*s3:List*s3:Put*

注意:如果存储桶具有使用 AWS Key Management Service (AWS KMS) 的默认加密,您必须向该 Data Pipeline 角色授予使用 AWS KMS 密钥的权限

10.    选择激活

注意:您还可以为存储桶中的每个根级前缀创建多个管道,从而优化性能。