【问题标题】:AWS S3 data transfer using AWS CLI使用 AWS CLI 传输 AWS S3 数据
【发布时间】:2017-07-26 09:25:36
【问题描述】:

我正在尝试使用 AWS CLI 将存储在 s3 中的 25 tb 数据从一个 aws 账户转移到另一个 AWS 账户中的另一个 s3 存储桶(两者都在不同的区域),有人可以建议我使用哪个 EC2 实例更好吗?使用 CLI 进行数据传输的过程,主要是完成传输可能需要多长时间。

【问题讨论】:

标签: amazon-web-services amazon-s3 aws-cli


【解决方案1】:

复制文件

复制很简单!使用AWS Command-Line Interface (CLI):

aws s3 sync s3://source-bucket s3://destination-bucket

数据将直接在存储桶之间传输 - 数据将不会被下载和上传。因此,您使用什么大小的 EC2 实例并不重要——您甚至可以从自己的计算机上运行命令,并且速度一样快。 CLI 将为要复制的每个文件向 S3 发送必要的复制命令。

使用sync 命令的好处是,如果出现问题,可以恢复复制,因为它只复制自上次同步以来丢失或更新的文件。

权限

需要考虑的是如何允许访问以复制文件。假设您有:

  • 具有存储桶 A 的帐户 A
  • 帐户 B 与存储桶 B
  • 您希望从存储桶 A 复制到存储桶 B

您应该从账户 B 中有权写入存储桶 B 的用户(“用户 B”)运行 sync 命令。

您还需要向存储桶 A 添加专门允许用户 B 访问的存储桶策略。该策略类似于:

{
  "Id": "Policy1",
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "ReadOnlyAccess",
      "Action": [
        "s3:GetObject",
        "s3:ListBucket"
      ],
      "Effect": "Allow",
      "Resource": "arn:aws:s3:::my-bucket/*",
      "Principal": {
        "AWS": [
          "arn:aws:iam::123456789012:user/user-b"
        ]
      }
    }
  ]
}

arn 值是用户 B 的 ARN。

时机

如果桶在同一个区域,传输会更快。但是,我不知道转移需要多长时间。 25TB其实是很多数据! (你有没有试过在电脑上复制 1TB 的数据?速度很慢!)

好处是您可以多次使用aws s3 sync 命令。假设您需要在周末进行转移。您可以在一周内运行该命令,然后在周末再次运行它。只会复制已添加/更改的文件,因此最终的复制窗口会非常小。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-06-26
    • 1970-01-01
    • 1970-01-01
    • 2018-11-10
    • 2020-07-17
    • 1970-01-01
    • 2018-07-12
    相关资源
    最近更新 更多