AWS 发布关系型数据库迁移服务

  • Richard Seroter
  • 张卫滨

2016 年 4 月 1 日

话题:云计算DevOps语言 & 开发

在经历了一个 beta 阶段,并且见证了客户将超过 1,000 个 on-premises 数据库迁移到云端之后,AWS 正式发布了他们的数据库迁移服务(Database Migration Service)。这个按需使用的云服务支持实时的迁移场景,借助无模式的转换工具,在迁移过程中,用户可以使用该服务切换数据库平台。

Amazon 在去年秋天他们的年度 re:Invent 会议上第一次透露该服务,并且在一个 AWS region 中为客户提供了功能有限的预览功能。现在,数据库迁移服务(DMS)面向所有的客户开放,可以在 AWS 全球八个 region 上使用。在一篇宣布该服务可用的博客文章中,AWS 的首席布道师 Jeff Barr 描述了这个管理型的服务是如何运行的

AWS 数据库迁移服务需要在 AWS 上搭建并管理一个副本实例(replication instance)。这个实例从源数据库中获取数据,并将其加载到目标数据库之中,它可以在一次性的迁移之后,进行持续的复制,从而最小化迁移过程的停机时间。在这个过程中,DMS 会处理与迁移相关的复杂细节,包括从一个数据库平台到另外一个数据库平台的数据类型转换(例如从 Oracle 到 Aurora)。这个服务同时会监控副本以及实例的健康状况,如果出错的话,会给出提示,如果必要的话,还会自动地提供替换实例。

尽管 DMS 端点始终要位于 AWS 中——运行在 EC2 虚拟机上或位于关系型数据库服务(Relational Database Service)中——但是其他的端点可以位于任意可访问到的主机上。副本实例位于端点之间,处理数据的安全传输。DMS 可以用来实现一次性的迁移,也可以实现数据库后续的复制。在配置迁移任务的时候,用户可以选择“完全加载已有的数据,完全加载后续的数据变更或者仅复制后续的数据变更”。DMS 所支持的关系型数据库范围广泛,支持相似的数据库平台之间的迁移,也支持从一个数据库平台迁移至另一个数据库平台。

AWS 数据库迁移服务可以用于 Oracle、SQL Server PostgreSQL、Amazon Aurora、MySQL 或 MariaDB 的迁移。DMS 支持同种类型之间的迁移,如 Oracle 到 Oracle,也支持不同数据库平台之间的迁移,如 Oracle 到 Amazon Aurora 或 SQL Server 到 MySQL 之间的迁移。AWS 数据库迁移服务能够将 on-premises 数据库迁移至 Amazon RDS 或 Amazon EC2 中,将运行在 EC2 上的数据库迁移至 RDS,或者进行反向的迁移,也能将某个 RDS 数据库迁移至另外一个 RDS 数据库。

不管使用哪种源或目标数据库引擎,要让 DMS 正常运行起来,用户不需要在本地安装驱动或软件。关于用户迁移数据库以及将数据库引擎替换为更为开放的方案方面, Amazon指出在这个比例上会有一些惊喜的发现。

“在 AWS 数据迁移服务的预览版本期间,上百家客户已经将成千的 on-premises 数据库转移到了 Amazon Aurora、其他 Amazon RDS 引擎或运行在 Amazon EC2 的数据库之中”,AWS 关系型数据库服务(Relational Database Service)的副总裁 Hal Berenson 这样说道,“客户不断地告诉我们,他们想要将 on-premises 数据库迁移到 AWS 上,并且迁移为更加开放的数据库引擎方案,不过对 AWS 数据库迁移服务的反响还是超出了我们的预期。在预研版本期间,三分之一的数据库迁移都使用到了 AWS 的数据迁移服务,他们不仅将数据库转移到 AWS Cloud 中,还在这个过程中切换了数据库引擎。”

有些客户会选择迁移至不同的、非商业的数据库平台,这些客户被告知可以使用AWS 模式转换工具(Schema Conversion Tool),这个工具会将源模式和存储过程转换为合适的目标格式。具体来讲,它会得到 Microsoft SQL Server 或 Oracle 的源模式,然后将其转换为一种格式,这种格式能够运行在基于 PostgreSQL、Aurora 或 MySQL 的 Amazon RDS 实例中。这个免费的转换工具可以作为客户端软件运行在 Windows、OS X 或 Linux 桌面上。

Amazon 将 DMS 定位为用户能够承受得起的数据迁移方案。迁移软件本身是没有成本的,客户只需要支付副本实例的费用。这些副本实例“会包括足够的存储空间,用于交换空间(swap space)、副本日志和数据缓存,大多数的副本和进站的数据传输(inbound data transfer)是免费的”。在托管副本实例时,有两种可用的 EC2 实例类型:T2 和 C4。T2 提供了有限的性能和超频的 CPU 使用。在开发和测试的迁移或者执行阶段性的迁移任务时,Amazon 推荐使用该方案。C4 用于高性能和低延迟的场景,建议用在大型的数据库上。T2 实例带有 50GB 的网络附加存储(network attached storage),C4 实例包含了 100GB 的网络附加存储。对于额外的存储,它的成本是每 GB 每月 0.115 美元(针对美国用户)。对于每个账户,AWS 支持所有副本实例的存储最高达 6TB。尽管进站数据传输是免费的,并且相同 AWS Availability Zone 之内,数据库之间的传输也没有成本,但是在 Availability Zones、AWS regions 之间,或将数据传输到环境之外的话,就会按照每 GB 来计算传输费用了。

DMS 用户可以迁移源数据的所有表,也可以迁移这些表的一个子集。我们可以料想到,针对 Oracle(源数据库目标数据库)、SQL Server(源数据库, 目标数据库), PostgreSQL(源数据库)以及 MySQL(源数据库, 目标数据库)这些数据库的迁移分别支持哪些特性都会有相关的说明。比较有意思的是,对于 DMS 来说,加密的数据源也不存在什么问题

AWS 数据库迁移服务会在 SQL 接口层连接到你的数据库端点上。如果你使用了 Oracle 或 SQL Server 的透明数据加密(Transparent Data Encryption)特性的话,AWS 数据迁移服务会从源数据库中抽取出加密的数据,然后将其复制到目标数据库中。对于存储级别的加密来讲,同样如此。只要 AWS 数据迁移服务具有到源数据库的正确凭证,它就能够连接到源数据库并将数据(按照加密的形式)传送至目标库。

很多公司正在致力于将资产转移到公有云,但是对私有云的投资也在不断增长。在采用公有云的过程中,数据迁移的成本和复杂性可能会是一个掣肘的因素,所以像 AWS 这样的提供商会持续致力于简化该活动的服务。

查看英文原文:AWS Launches Relational Database Migration Service

立即免费注册 AWS 账号,获得 12 个月免费套餐:点击注册

有云计算问题?立刻联系 AWS 云计算专家:立即联系

云计算DevOps语言 & 开发