Google Cloud 提供了工具、产品、指导和专业服务,帮助您将数据从 Amazon Simple Storage Service (Amazon S3) 迁移到 Cloud Storage。本文档讨论如何设计、实施和验证从 Amazon S3 迁移到 Cloud Storage 的计划。本文档介绍整个迁移过程的一部分,您将在其中创建 Amazon S3 工件的清单,并创建关于如何处理迁移过程的计划。
本文档中的讨论适用于希望详细了解如何规划和实现迁移过程的云管理员。它还适用于正在评估迁移机会和想要探索迁移可能是什么样子的决策者。
本文档是关于从 AWS 迁移到 Google Cloud 的系列文章中的一篇,该系列文章包括以下文档:
- 开始
- 从 Amazon EC2 迁移到 Compute Engine
- 从 Amazon S3 迁移到 Cloud Storage(本文档)
- 从 Amazon EKS 迁移到 Google Kubernetes Engine
- 从 Amazon RDS 和 Amazon Aurora for MySQL 迁移到 Cloud SQL for MySQL
- 从 Amazon RDS 和 Amazon Aurora for PostgreSQL 迁移到 Cloud SQL for PostgreSQL 和 AlloyDB for PostgreSQL
- 从 Amazon RDS for SQL Server 迁移到 Cloud SQL for SQL Server
- 从 AWS Lambda 迁移到 Cloud Run
如需迁移到 Google Cloud,建议您遵循迁移到 Google Cloud:使用入门中所述的迁移框架。
下图说明了迁移过程的路径。
您可能需要通过一系列迭代从来源环境迁移到 Google Cloud,例如,您可能会先迁移一部分工作负载,然后再迁移其他工作负载。对于每个单独的迁移迭代,您都需要遵循一般迁移框架的各个阶段:
- 评估和发现工作负载和数据。
- 在 Google Cloud 上规划和构建基础。
- 将工作负载和数据迁移到 Google Cloud。
- 优化您的 Google Cloud 环境。
如需详细了解此框架的各个阶段,请参阅迁移到 Google Cloud:使用入门。
如需设计有效的迁移计划,建议您验证计划的每个步骤,并确保您具有回滚策略。为了帮助验证您的迁移计划,请参阅迁移到 Google Cloud:验证迁移计划的最佳做法。
评估来源环境
在评估阶段,您需要确定从来源环境迁移到 Google Cloud 的要求和依赖项。
评估阶段对于成功迁移而言至关重要。您需要深入了解需要迁移的工作负载,它们的要求和依赖项以及您当前的环境。您需要清楚自己的起点,这样才能成功地计划和执行 Google Cloud 迁移。
评估阶段包括以下任务:
- 构建一个完整的工作负载清单。
- 根据工作负载的属性和依赖项对工作负载进行分类。
- 为您的团队开展 Google Cloud 培训和指导
- 在 Google Cloud 上构建实验和概念验证。
- 计算目标环境的总拥有成本 (TCO)。
- 为工作负载选择迁移策略。
- 选择迁移工具。
- 定义迁移计划和时间表。
- 验证迁移计划。
如需详细了解评估阶段和这些任务,请参阅迁移到 Google Cloud:评估和发现工作负载。以下部分基于该文档中的信息。
构建 Amazon S3 存储桶的清单
如需确定迁移范围,请创建两份清单:Amazon S3 存储桶的清单,以及存储在存储桶中的对象的清单。
构建 Amazon S3 存储桶的清单后,请考虑每个 Amazon S3 存储桶的以下数据点,以优化该清单:
- 您是如何配置 Amazon S3 存储桶服务器端加密的。
- Amazon S3 存储桶身份和访问权限管理的设置。
- S3 阻止公有访问的配置。
- Amazon S3 存储桶的任何成本分配标签。
- S3 对象锁定的配置。
- 您是如何访问 Amazon S3 存储桶的。
- 您是如何配置申请方付款的。
- Amazon S3 对象版本控制的设置。
- 适用于 Amazon S3 的 AWS Backup 政策的配置。
- 您是否使用 Amazon S3 Intelligent-Tiering。
- 您是如何配置 Amazon S3 对象复制的。
- Amazon S3 对象生命周期。
我们还建议您收集有关 Amazon S3 存储桶的相关数据,以便计算每个存储桶所含对象的汇总统计信息。例如,如果您收集对象总大小、平均对象大小和对象数量,则可以估算从 Amazon S3 存储桶迁移到 Cloud Storage 存储桶迁移所需的时间和费用。
如需构建 Amazon S3 存储分区的清单并收集有关 Amazon S3 存储分区的数据点,您可以实现依赖于 AWS 工具的数据收集机制和流程,例如:
- Amazon S3 监控工具
- S3 分析
- AWS 多账号多区域数据汇总
- AWS API
- AWS 开发者工具
- AWS 命令行界面
为帮助您避免迁移期间出现问题,并帮助估算迁移所需的工作量,我们建议您评估 Amazon S3 存储桶功能与类似的 Cloud Storage 存储桶功能之间的对照关系。下表汇总了此对照关系。
如前所述,在进行比较时,上表所列的功能看起来可能很相似。但是,两个云服务提供商在功能设计和实现方面的差异可能会对从 Amazon S3 到 Cloud Storage 的迁移产生重大影响。
构建存储在 Amazon S3 对象中的对象的清单
构建 Amazon S3 存储分区的清单后,我们建议您使用 Amazon S3 清单工具构建存储在这些存储分区中的对象的清单。
如需构建 Amazon S3 对象的清单,请考虑每个对象的以下信息:
- Amazon S3 对象名称
- Amazon S3 对象大小
- Amazon S3 对象元数据
- Amazon S3 对象子资源
- Amazon S3 对象版本,以及是否需要迁移这些版本
- Amazon S3 对象预签名网址
- Amazon S3 对象转换
- Amazon S3 对象标签
- Amazon S3 对象存储类
- Amazon S3 对象归档
我们还建议您收集有关 Amazon S3 对象的相关数据,以了解您和您的工作负载创建、更新和删除 Amazon S3 对象的频率。
为帮助您避免迁移期间出现问题,并帮助估算迁移所需的工作量,我们建议您评估 Amazon S3 对象功能与类似的 Cloud Storage 对象功能之间的对照关系。下表汇总了此对照关系。
Amazon S3 功能 | Cloud Storage 功能 |
---|---|
对象命名规则 | 对象名称要求 |
对象元数据 对象标签 |
对象元数据 |
对象子资源 | 对象元数据 |
对象预签名网址 | 签名网址 |
对象转换 | 适用于 Cloud Storage 的 Pub/Sub 通知 Cloud Run 函数 Cloud Run |
对象存储类 对象归档 |
Cloud Storage 存储类别 |
如前所述,在进行比较时,上表所列的功能看起来可能很相似。但是,两个云服务提供商在功能设计和实现方面的差异可能会对从 Amazon S3 到 Cloud Storage 的迁移产生重大影响。
完成评估
从 Amazon S3 环境构建清单后,请完成评估阶段的其余活动,如迁移到 Google Cloud:评估和发现您的工作负载中所述。
规划和构建基础
在规划和构建阶段,您需要预配和配置基础架构以执行以下操作:
- 在 Google Cloud 环境中支持您的工作负载。
- 连接来源环境和 Google Cloud 环境以完成迁移。
规划和构建阶段由以下任务组成:
- 构建资源层次结构。
- 配置 Google Cloud 的 Identity and Access Management (IAM)。
- 设置结算功能。
- 设置网络连接。
- 强化安全性。
- 设置日志记录、监控和提醒。
如需详细了解这些任务,请参阅迁移到 Google Cloud:规划和构建基础。
将数据和工作负载从 Amazon S3 迁移到 Cloud Storage
如需将数据从 Amazon S3 迁移到 Cloud Storage,我们建议您按照迁移到 Google Cloud:转移大型数据集中的指南设计数据迁移计划。该文档建议使用 Storage Transfer Service,这款 Google Cloud 产品可让您将数据从多个来源迁移到 Cloud Storage,例如从本地环境或其他云存储空间服务。Storage Transfer Service 支持多种类型的数据转移作业,例如:
- 运行一次的转移作业:按需将数据从 Amazon S3 或其他受支持的来源转移到 Cloud Storage。
- 预定的转移作业:按计划将数据从 Amazon S3 或其他受支持的来源转移到 Cloud Storage。
- 事件驱动的转移作业:在 Amazon S3 向 Amazon Simple Queue Service (SQS) 发送 Amazon S3 事件通知时自动转移数据。
如需实施数据迁移计划,您可以配置一个或多个数据转移作业。例如,如需缩短迁移期间的切换期,您可以实施持续复制数据迁移策略,具体如下:
- 配置运行一次的转移作业,将数据从 Amazon S3 存储桶复制到 Cloud Storage 存储桶。
- 执行数据验证和一致性检查,将 Amazon S3 存储桶中的数据与复制到 Cloud Storage 存储桶中的数据进行比较。
- 设置事件驱动的转移作业,在 Amazon S3 存储桶的内容发生更改时,自动将数据从 Amazon S3 存储桶转移到 Cloud Storage 存储桶。
- 停止有权访问正在迁移的数据的工作负载和服务(即上一步中涉及的数据)。
重构工作负载以使用 Cloud Storage 而非 Amazon S3。您可以使用以下方法之一或按顺序使用这些方法来重构工作负载:
- 从 Amazon S3 到 Cloud Storage 的简单迁移。 在简单迁移中,您可以使用现有的工具和库生成向 Amazon S3 发出的经过身份验证的 REST 请求,从而生成向 Cloud Storage 发出的经过身份验证的请求。
- 从 Amazon S3 到 Cloud Storage 的完整迁移。在完整迁移中,您可以使用 Cloud Storage 的所有功能,包括多个项目和 OAuth 2.0 身份验证。
等待复制使 Cloud Storage 与 Amazon S3 完全同步。
启动工作负载。
如果不再需要 Amazon S3 环境作为后备选项,您可以弃用该环境。
将对象从支持的来源迁移到 Cloud Storage 时,Storage Transfer Service 可以保留某些元数据。我们建议您评估 Storage Transfer Service 是否可以迁移您感兴趣的 Amazon S3 元数据。
在设计数据迁移计划时,我们还建议您评估 AWS 网络出站流量费用和 Amazon S3 费用。例如,考虑以下数据转移选项:
- 通过公共互联网。
- 使用互连链路。
- 使用 Amazon CloudFront。
您选择的选项可能会影响您的 AWS 网络出站流量费用和 Amazon S3 费用。还可能还会影响预配和配置基础架构所需的工作量和资源。如需详细了解费用,请参阅以下内容:
- AWS 文档中的了解数据传输费用
- Amazon S3 价格
当您将数据从 Amazon S3 迁移到 Cloud Storage 时,我们建议您使用 VPC Service Controls 构建边界,边界可以明确拒绝 Google Cloud 服务之间的通信,除非服务已获得授权。
优化您的 Google Cloud 环境
优化是迁移的最后一个阶段。在此阶段中,您将对优化任务进行迭代,直到目标环境满足您的优化要求。每个迭代的步骤如下:
- 评估您的当前环境、团队和优化循环。
- 确定优化要求和目标。
- 优化您的环境和团队。
- 调整优化循环。
重复执行这个任务序列,直到达到您的优化目标。
如需详细了解如何优化 Google Cloud 环境,请参阅迁移到 Google Cloud:优化您的环境和 Google Cloud 架构框架:性能优化。
后续步骤
- 了解其他 AWS 到 Google Cloud 的迁移过程。
- 了解如何将 AWS 和 Azure 服务与 Google Cloud 进行比较。
- 了解何时寻求迁移帮助。
- 如需查看更多参考架构、图表和最佳实践,请浏览 Cloud 架构中心。
贡献者
作者:Marco Ferrari | 云解决方案架构师