带你轻松迁移数据库到AWS
JSON 数据无数不在,它是一种非常灵活的格式,你可以很方便地修改一条数据的 Schema。它是一种轻量级的数据交换格式,目前使用最广泛的 API 标准 RESTfull API,它的输出标准也是 JSON。使用 JSON 进行数据建模最符合人类语言的逻辑。以上这些使用场景,我们都需要一种文档数据库来存储 JSON 数据,它既不是关系型数据库,也不是键值数据库。 哪些应用场景会用到文档数据库呢?因为 JSON 数据的灵活,文档数据已经渗透到各个领域,比如在游戏中,存储用户信息,装备积分等;在物流中,存储订单信息,订单状态;在社交中,存储用户信息以及用户发表的朋友圈信息;在视频直播中,存储用户信息和礼物信息等。 为了满足客户这些使用场景,AWS 为客户提供了 DocumentDB 数据库,见名知意,它是一个云原生的文档数据库,与 MongoDB 兼容,你可以把现有的 MongoDB 数据库通过 DMS 或 mongodump/mongorestore 等原生方式迁移上 AWS。 DocumentDB 扩展性很强,水平扩展在分钟级别,最多可以扩展到 15 个读副本;垂直扩展也在分钟级,最高扩展至 768 GiB 内存;存储可以自动扩展,最高支持 64TB。这些特性都是我们在自建数据库很难实现的。 内存数据库 如今的应用越做越大,很多都已经开始进行分布式或者微服务架构,这时候就需要一个存储库来储存用户的会话信息,不然用户可能处于频繁的登陆状态;还有应用要求提升数据查询速度,这就需要给数据库添加缓存层等。以上这些应用场景都会需要内存数据库。 那么 AWS 同样在云中为客户提供了完全托管的内存数据库 Amazon ElastiCache,客户可以把一些热数据、会话数据、消息数据、排行数据等存放在其中,以加速数据的存取速度。它支持两种存储引擎,Memcached 和 Redis。 极致性能:能够支持要求最严苛且需要亚毫秒级响应时间的应用程序。 轻松扩展:通过使用 AWS 管理控制台或者简单的 API,用户可以根据应用需要添加或删除缓存集群中的节点。 安全性:支持 Amazon VPC,可以进行网络隔离。通过安全组来管理集群的访问权限。 高可用:可将 2 到 6 个节点归入一个具有副本的集群,如果一个节点出于任何原因发生故障,您不会丢失所有数据。 图数据库 关系型数据库有了,键值和内存数据库也有了,已经基本满足大部分应用的日常需求,对于 AWS 来说,这还不够。用户还会面临性能和schema变更不易的问题,因此 AWS 推出了图数据库 Neptune。 使用图形数据库处理社交网络数据非常高效,Amazon Neptune 可以快速轻松地处理大量的用户配置文件和交互,从而构建社交网络应用程序。 时序数据库 顾名思义,时序数据库是和时间相关的数据库。因为很多对数据的查新都是以时间段为基础的, 适用于 IoT 和运营应用程序。因此 AWS 为用户提供了 Amazon Timestream,专门处理时序数据,目前还处于注册预览版。 分类账数据库 分类账数据库的使用场景也很好理解,最适合的场景是“记账本”。“账本”是不能被更改的,每一笔记录都不能被改动,被忠实的记录下来,以备查询。Amazon Quantum Ledger Database 就应运而生了。 这听起来和“区块链”有点关系,不过 QLDB 是有中心的,而“区块链”是去中心化的,那么你可能会问,AWS 有没有去中心化的数据库,回答是有的,那就是 Amazon Managed Blockchain。我们很难去想 AWS 到底不存在什么数据库,用户需要的它有,用户用不到的它也有,可以说达到了“应有尽有”的程度。 迁移工具 介绍了这么多的数据库,以及各种数据库的使用场景和特性,几乎满足日常应用的所有需求,那我们肯定是想知道如何使用这些数据库,以及如何把目前本地自建的数据库迁移到云中。下面我们将介绍 AWS 为客户提供的迁移神器 AWS Database Migration Service,以及 DMS 如何帮助客户便捷高效地把数据迁移到云中的数据库。 同样 DMS 也是完全托管的,这让我们把主要精力放在迁移任务上面来。DMS 支持多种数据库作为迁移的源,也支持多种数据库作为迁移的目标,从下面的表格可以详细了解支持哪些数据库: 数据迁移的源 数据迁移的目标 Oracle、SQL Server、MySQL、MariaDB、PostgreSQL、SAP ASE、MongoDB、DB2 LUW、Azure SQL、Amazon RDS、S3 Oracle、SQL Server、MySQL、MariaDB、PostgreSQL、SAP ASE、Amazon RDS、Amazon Redshift、Amazon S3、Amazon DynamoDB、Amazon Elasticsearch Service、Amazon Kinesis Data Streams、Amazon DocumentDB、Amazon Neptune、Apache Kafka 我们可以从表格中看到各种数据库引擎,AWS DMS 支持同构数据库迁移,如 MySQL 迁移到 MySQL,也支持异构数据迁移,如 Oracle 到 MySQL,在进行异构数据库迁移的过程,AWS 还为用户提供一款工具 AWS Schema Conversion Tool,可以使用 AWS SCT 将源数据库架构和大部分对象自动转换为与目标数据库兼容的格式。 对 DMS 的总结,可以简单概括为下面几个小特性: 简单易用 最少停机时间 持续数据复制 多数据源支持 运行可靠 AWS DMS 可以成为复制和迁移数据库的最佳工具,它可以帮助用户将数据库工作负载迁移到 AWS 并更改数据库引擎,同时最大程度地减少停机时间。根据 AWS 的说明,使用 AWS DMS 已经进行了 20,000 个数据库到 AWS 云的迁移。由于使用该产品获得了如此广泛的成功,因此没有理由不将数据库迁移到 AWS,那么下面就开始我们的数据库迁移之旅吧。 迁移方式 所有的数据库都有自己的备份还原工具,使用这些工具我们可以方便的进行数据离线迁移,但是会造成较长的停机时间,主要看数据量的大小。如果需要最小的停机时间,那 DMS 是最佳选择。下面大致列举了各种迁移方式对业务的一个影响程度,可以根据自己的实际情况进行选择。 因素 离线(转储) 混合 在线(DMS) 复杂度 非常简单 复杂 中等 速度 快 中等 慢 停机时间 高 中 低 二、云上数据库迁移实践 迁移解决方案 我们在本地数据中心有各式各样的自建数据库,如果对数据库迁移上云,我们该如何选择云中的数据库呢,我下面简单整理了一个列表,针对不同的场景,我们可以选择对应的解决方案。 现有应用程序 MySQL ---> Amazon Aurora for MySQL,RDS for MySQL PostgreSQL ---> Amazon Aurora for PostgreSQL,RDS for PostgreSQL MariaDB ---> Amazon Aurora for MySQL,RDS for MariaDB Oracle ---> 利用 AWS SCT 检测复杂性因素 ---> Amazon Aurora,RDS for Oracle SQL Server ---> 利用 AWS SCT 检测复杂性因素 ---> Amazon Aurora,RDS for SQL Server MongoDB ---> DocumentDB 新的应用程序 如果不需要关系类功能 ---> Amazon DynamoDB 如果需要关系类功能 ---> Amazon Aurora 内存存储/缓存 Redis ---> Amazon ElasticCache Memcached ---> Amazon ElasticCache 时序数据 Amazon Timestream(注册预览版) 跟踪各应用程序变更、加密可验证性,具备中央可信权威 Amazon Quantum Ledger Database 迁移须知 数据库是任何应用程序的主要组件之一,因此我们必须谨慎地进行迁移。您需要知道数据库的大小,数据库内部表的大小以及数据库模式。 (编辑:应用网_阳江站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |