暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

EC2数据到S3,你缺的就是速度

AWS Azure技术分享 2020-07-31
2377

很多人在从AWS EC2 向AWS S3 进行数据传输的时候发现有时候速度特别慢,此时脑袋里面不禁发出几个疑问:

  • EC2 和 S3 之间的流量带宽有多少?
  • 哪些因素会影响传输速度呢?
  • 我该如何改善传输速度呢?

EC2和S3之间的流量带宽有多少

Amazon EC2 和 Amazon S3 之间的流量最高可使用 25 Gbps 的带宽
哪些因素会影响传输速度呢
EC2 实例和 S3 存储桶之间的数据传输速率取决于几个因素,包括:
  • 实例和存储桶所在的 AWS 区域。
  • 数据传输的媒介,例如是通过 Internet 传输还是通过 Amazon Virtual Private Cloud (Amazon VPC) 终端节点传输。
  • 正在传输的对象的大小。
  • EC2 实例的资源利用率、CPU 利用率、内存、磁盘 I/O、网络功能和网络限制。

如何改善传输速度/最佳实践

1. 启用EC2 实例上的增强联网功能

增强联网可以加大带宽,提高每秒数据包数 (PPS) 性能,并降低实例间的延迟。您可以启用增强联网,无需任何额外费用。

2. 使用并行工作负载进行数据传输

为了尽可能改善传输所需的总时间,可考虑将传输拆分为多个彼此互斥的操作。例如,如果您在使用 AWS CLI,则可以同时运行 aws s3 cp(复制)、aws s3 mv(移动)或 aws s3 sync(同步)多个实例。

注意:作为最佳实践,请确保您使用的是最新版本的 AWS CLI

3. 在 AWS CLI 上自定义上传配置

您可以 Amazon S3 自定义以下 AWS CLI 配置来加快数据传输:

  • multipart_chunksize:此值设置 AWS CLI 在单个文件的分段上传中上传的每个部分的大小。通过此设置,您可以将较大的文件(例如 300 MB)分解为较小的部分,以加快上传速度。
    注意:分段上传要求单个文件上传时所分的不同部分不超过 10000 个。您必须确保您所设置的区块大小平衡了各部分文件大小和部分数量。

  • max_concurrent_requests:默认情况下,AWS CLI 支持多线程。您可以更改 max_concurrent_requests 值以增加可以同时发送到 Amazon S3 的请求数。默认值为 10。增加此值后,您得到的响应可能会变得迟缓。但是,将较高的 max_concurrent_requests 值与并行工作负载结合使用时,总体上可以实现更好的传输速度。
    注意:运行的线程越多,消耗的计算机资源也越多。您必须确保您的计算机拥有足够的资源来支持您想要的最大并发请求数。

4. 使用VPC 终端节点

如果您的 EC2 实例与 S3 存储桶位于同一区域,请考虑为 Amazon S3 使用 VPC 终端节点。VPC 终端节点可以帮助提高整体性能并减少网络地址转换 (NAT) 的负载。

使用 VPC 终端节点的另一个好处是,您可以在没有互联网网关、NAT 设备或 VPN 连接的情况下私下连接到 VPC。VPC 中的实例不需要公共 IP 地址即可与 Amazon S3 存储桶之类的资源进行通信。使用 VPC 终端节点时,VPC 和 Amazon S3 之间的数据流量会在 AWS 网络上路由。

5. 升级EC2 实例类型

如果您的 EC2 实例的 CPU 使用率很高,则可能成为总体传输速度的瓶颈。您可以将实例升级为另一种实例类型以提供更高的内存和网络性能。对于同一个实例类型,较大的实例大小通常能提供比较小的实例大小更高的网络性能。

注意:最佳做法是,选择一种具有至少 10 Gbps 网络连接的实例类型,以在 EC2 实例和 Amazon S3 之间保持持续且可靠的网络带宽。

6. 使用分块传输

如果您正在传输大文件,分段上传和远程 GET 可以帮助提高整体传输性能。

● 十分钟掌握AWS定时开关机,你Get到了吗?

 特定 IP 访问我的 S3 存储桶,一招就够了

● 三种方式教你如何删除Azure闲的托管磁盘

● 自动化 Amazon EBS 快照生命周期

● Automation实现Azure VM 自动开关机,Get到了吗?

文章转载自AWS Azure技术分享,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论