通过 AWS DataSync 加速数据传输 - 从本地到 S3 和 EFS 的迁移
自动化从本地到 S3 和 EFS 的高速数据传输。介绍代理部署、任务调度和传输数据的完整性验证。
DataSync 概述
DataSync 是自动化和加速本地与 AWS 之间数据传输的服务,每个任务可实现最高 10 Gbps 的吞吐量。与 rsync 或 robocopy 相比可实现最高 10 倍的传输速度,最大限度利用网络带宽。传输协议经过专有优化,通过 TCP 窗口缩放和并行流传输来吸收 WAN 延迟。支持从本地 NFS/SMB 文件服务器向 S3、EFS、FSx for Windows、FSx for Lustre、FSx for OpenZFS 传输数据。还支持 HDFS (Hadoop Distributed File System) 的数据迁移,可用于大数据平台的云迁移。
代理与任务设计
在本地部署 DataSync 代理 (VMware ESXi、Hyper-V、KVM 的虚拟机),连接到源存储。代理 VM 的推荐资源为 4 个以上 vCPU、16 GB 以上 RAM。单个代理可并行运行多个任务,添加代理即可实现横向扩展。在任务中指定源位置 (本地 NFS) 和目标位置 (S3 存储桶),设置传输选项 (文件元数据保留、排除过滤器、带宽限制)。元数据保留选项可在目标保持 POSIX 权限、时间戳、UID/GID,将文件服务器的访问控制原样反映到迁移目标。通过计划执行自动化每日差异传输,可持续同步本地与 AWS 的数据。传输完成后自动验证数据完整性,如有校验和不匹配则会报告。
AWS 间传输与调度
DataSync 也支持 AWS 服务间的数据传输。可无需代理执行 S3 存储桶间、EFS 间、FSx 间、S3 到 EFS 的传输。还支持跨账户和跨区域传输,可用于 DR 环境的数据复制。通过任务调度自动化定期传输,以每日或每周的增量传输同步数据。通过传输过滤器根据文件名模式或更新时间筛选传输对象,避免不必要数据的传输。通过 EventBridge 集成,可构建以任务完成或失败为触发器的自动化工作流,例如启动 Glue 作业、执行 Lambda 函数或发送 SNS 通知。任务执行报告可输出到 CloudWatch Logs,监控已传输文件数、字节数、耗时和错误详情。 了解 DataSync 最佳实践时,相关书籍(Amazon)可供参考。
与其他数据传输方式的比较
AWS 提供多种数据传输选项,根据数据量和需求进行正确选择很重要。DataSync 最适合通过网络进行持续同步和迁移,具备仅传输变更数据的增量传输和自动完整性验证。AWS Transfer Family (SFTP/FTPS/FTP) 适合合作伙伴集成和与旧系统的文件交换,可在不更改现有 SFTP 工作流的情况下实现云化,但不适合大量数据的批量迁移。S3 复制 (CRR/SRR) 提供存储桶间的对象级复制,写入时自动复制,但不能用于本地到 AWS 的传输。AWS Snow Family (Snowball Edge、Snowcone) 用于网络带宽有限的环境或通过物理设备运输 PB 级数据。典型的迁移模式是用 Snowball 传输初始大量数据,之后用 DataSync 同步差异。
设计最佳实践与注意点
部署 DataSync 时需要注意的关键点。第一,带宽限制 (bandwidth throttle) 的设置。在与生产网络共享的线路上运行 DataSync 时,工作时间限制带宽,夜间安排全速传输,避免影响业务流量。第二,目标 S3 存储类的选择。DataSync 可指定对象放置的存储类,不常访问的归档数据可直接放置到 S3 Glacier Instant Retrieval 以降低成本。第三,传输大量小文件 (数百万个文件) 时,每任务开销增加,按目录拆分任务并行执行可最大化吞吐量。第四,安全性与合规。传输中的数据通过 TLS 1.2 加密,目标 S3 支持 SSE-S3、SSE-KMS 或 SSE-C 服务器端加密。使用 VPC 端点 (PrivateLink) 可确保代理与 AWS 之间的通信不经过公共互联网。IAM 策略可细粒度控制任务执行权限,CloudTrail 记录所有 API 调用。DataSync 符合 HIPAA、PCI DSS、SOC 1/2/3 要求,可用于受监管行业的数据迁移。
DataSync 的费用
DataSync 按复制的数据量计费,每 GB 约 0.0125 美元。从本地传输需要代理运行环境 (VM),但代理本身不产生额外费用。AWS 服务间的传输也是相同的数据量计费。传输目标的存储费用 (S3、EFS、FSx) 另行产生。通过差异传输仅传输已更改的文件,最小化数据量以优化成本。设置带宽限制不影响数据量计费,因此传输速度和成本不是权衡关系,成本仅与传输的字节数成正比。大量数据的初次传输可考虑与 AWS Snowball 配合使用。
总结
DataSync 是加速和自动化从本地到 AWS 以及 AWS 服务间数据传输的服务。通过 CBT 和并行流最大化 WAN 带宽利用率,通过差异传输高效同步仅已更改的文件。支持包括 HDFS 在内的多种数据源,以及通过 VPC 端点的安全传输。与 Snow Family 组合或利用带宽限制,可灵活应对各种迁移场景。