如何在两台AWS EC2实例间复制300GB+文件?仅复制单个目录
两台AWS EC2间复制300GB+图片目录的最佳方案
针对你要在两台AWS EC2实例之间复制300GB+图片目录的需求,我整理了几个实用的方案,按推荐优先级排序:
1. rsync(最推荐的常规方案)
这是处理大文件/大量小文件传输的首选工具,尤其适合EC2内网环境,优势非常明显:
- 支持增量复制:只传输变化的文件,后续同步也很方便
- 支持断点续传:中途中断后重新运行命令会自动从断点继续,不用从头再来
- 内网传输无公网流量费用,速度拉满
操作步骤:
确保目标EC2能通过SSH访问源EC2(用密钥对验证即可),然后在目标实例上执行:
rsync -avz -e "ssh -i /path/to/your-key.pem" ec2-user@source-ec2-private-ip:/path/to/source/directory/ /path/to/target/directory/
-a:归档模式,保留文件权限、时间戳等元数据-v:显示详细传输进度,方便监控-z:压缩传输(图片本身压缩率不高,但能小幅减少流量;如果是内网传输可以去掉-z进一步提升速度)-e:指定SSH密钥路径,避免输入密码
2. AWS S3中转(跨区域/需备份场景首选)
如果两台EC2不在同一个VPC,或者你想顺便做一份数据备份,用S3中转是很稳妥的选择:
- 利用AWS S3的高带宽和稳定传输能力,
aws s3 sync同样支持增量传输 - 跨区域传输时,S3的传输效率往往比EC2直接跨区域传输更高
操作步骤:
- 在源EC2上把目录同步到S3:
aws s3 sync /path/to/source/directory/ s3://your-bucket-name/temp-image-folder/
- 在目标EC2上从S3同步到本地:
aws s3 sync s3://your-bucket-name/temp-image-folder/ /path/to/target/directory/
- 注意:确保两台EC2都配置了S3读写权限(通过IAM角色或Access Key),传输完成后可以删除S3里的临时文件夹。
3. scp(仅适合简单小体量场景,不推荐)
scp是最基础的SSH文件拷贝工具,但不支持断点续传,如果传输中途中断就得从头开始,而且对于300GB这么大的体量、尤其是大量小图片文件,传输效率远不如rsync,所以只推荐临时小文件传输用它。
命令示例:
scp -r -i /path/to/your-key.pem ec2-user@source-ec2-private-ip:/path/to/source/directory/ /path/to/target/directory/
4. AWS DataSync(企业级大规模传输)
如果是企业级场景,或者你需要定期做这类大规模数据传输,AWS DataSync是专门优化的解决方案:
- 针对TB级数据传输做了性能优化,支持监控传输进度、日志记录
- 支持EC2之间、EC2与S3/EFS等多种存储服务的传输
- 自动化程度高,配置一次后可以重复使用
不过对于300GB的体量来说,DataSync有点“大材小用”,配置也比rsync复杂一些,适合有长期大规模传输需求的场景。
总结一下:
- 同VPC内EC2传输:优先用rsync,简单高效成本低
- 跨区域/需要备份:用S3中转,稳定还能留备份
- 企业级长期需求:考虑DataSync
内容的提问来源于stack exchange,提问作者Mi2
相关产品推荐
相关产品推荐

