You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将119个AWS EC2快照迁移至GCP?请求技术支持

批量迁移AWS EC2快照至GCP的可行方案

前提准备

  • AWS账号需具备:EC2快照读取权限、S3桶读写权限(用于中转导出的镜像文件)
  • GCP账号需具备:Cloud Storage管理员权限、Compute Engine磁盘创建权限
  • 提前创建一个AWS S3中转桶和一个GCP Cloud Storage目标桶

手动批量迁移流程

1. 将EC2快照导出至AWS S3

  • 登录AWS EC2控制台,批量选中目标快照,右键选择「导出到Amazon S3」
  • 设置导出格式为VHD(GCP官方支持的磁盘镜像格式),指定中转S3桶及存储路径
  • 等待所有快照导出完成(可在EC2控制台的「导出任务」页面查看进度)

2. 同步S3镜像文件至GCP Cloud Storage

  • 登录GCP Cloud Storage控制台,使用「传输」功能,选择「Amazon S3」作为源,输入S3桶信息并配置权限
  • 批量选择所有导出的VHD文件,启动传输任务

3. 导入Cloud Storage文件为GCP Compute磁盘

  • 登录GCP Compute Engine控制台,进入「磁盘」页面,选择「创建磁盘」
  • 来源选择「Cloud Storage文件」,选中对应的VHD文件,设置磁盘区域、类型后完成创建
  • 批量操作可通过控制台的批量选择功能快速完成

自动化脚本方案(适合119个快照的大规模场景)

使用AWS CLI和GCP CLI编写脚本,实现全流程自动化:

1. 批量导出EC2快照到S3

# 替换为你的快照ID列表、S3桶名
SNAPSHOT_IDS=("snap-xxxxxx" "snap-yyyyyy" ...)
S3_BUCKET="aws-snapshot-transfer-bucket"

for snap_id in "${SNAPSHOT_IDS[@]}"; do
  aws ec2 export-snapshot \
    --snapshot-id "$snap_id" \
    --disk-image-format VHD \
    --s3-export-location "S3Bucket=$S3_BUCKET,S3Prefix=snapshots/$snap_id/"
done

2. 同步S3文件到GCP Cloud Storage

# 替换为你的GCP存储桶名
GS_BUCKET="gcp-snapshot-import-bucket"

for snap_id in "${SNAPSHOT_IDS[@]}"; do
  gsutil cp "s3://$S3_BUCKET/snapshots/$snap_id/*.vhd" "gs://$GS_BUCKET/imports/$snap_id/"
done

3. 批量创建GCP磁盘

# 替换为你的GCP区域
GCP_ZONE="us-central1-a"

for snap_id in "${SNAPSHOT_IDS[@]}"; do
  gcloud compute disks create "migrated-disk-$snap_id" \
    --zone "$GCP_ZONE" \
    --source-uri "gs://$GS_BUCKET/imports/$snap_id/*.vhd" \
    --type pd-standard
done

常见失败原因排查

  • 加密快照导出失败:需确保AWS KMS密钥允许ec2.amazonaws.com服务角色访问,或先将快照复制为未加密版本再导出
  • 跨云文件传输失败:检查S3桶是否开启了跨域访问,或给GCP服务账号授予S3读取权限;也可生成S3文件预签名URL,直接用gsutil拉取
  • GCP磁盘导入失败:确认镜像格式为VHD(禁止使用RAW格式),检查文件大小未超过对应磁盘类型的上限,确保GCP区域与存储桶区域一致

内容的提问来源于stack exchange,提问作者Gabriel Alves de Oliveira

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 14:04:56