一、开篇语
1.1 传统数据库的压力日益倍增
随着全球网民的持续增长,数据库的压力已越来越成为一个企业的瓶颈。在业务和用户量的的持续增长下,如何保证数据库的安全性、稳定性、可用性?
国内的市场竞争激烈,往往提出一个idea,就会有无数人跟进。如何在极短时间内提供一个具备完整功能的数据库,同时能够降低企业经营成本,提高生产效率?
传统数据库面临着:新建成本高昂、操作配置复杂、没有可视界面、对技术人员要求极高,如何解决这些痛点?
随着“云时代”的到来,这些问题有望解决。
云数据库简称RDS,它的优化和部署都在云端完成,具有简单方便、稳定可靠、弹性伸缩、便捷管理等特点。同时,云数据库一般具有:读写分离、主从复制、故障切换、数据备份、按需扩容等功能。我们来看看它与传统数据库相比存在哪些优势吧!
1.2 云数据库 vs 传统数据库
云数据库 | 传统数据库 | |
---|---|---|
安全性 | 防DDos攻击、流量清洗、及时修复各种数据库安全漏洞。 |
自行购买一些安全的软硬件、依靠运维人员技术能力、开发人员行为规范规避。 |
可用性 | 云数据库一般提供主备双节点,同时双节点可以在同一个地域的不同时区。跨地域的主备能够提供更大的可用性! |
一般部署在本地机房,大多为同机房的多机器之间的主从备份。如果电缆被挖、突然停电、天灾人祸等,容易造成不可估量损失;依靠公司技术人员,自行搭建主备复制、监控、RAID等,高可用性参差不齐; |
效率性 | 直接选择节点,数据库类型,在几分钟内即可拥有一个具备完整能力的高可用数据库,可以认为是0运维; |
依靠高级运维人员、Devops、开发人员、DBA等协作,手动配置,中间众多环节需要依靠技术人员的能力和经验来规避风险。耗时较为漫长。 |
操作性 | 对于开发人员,跟本地数据库一样操作,无感知;对于运维人员来说,能够直接在云服务提供商的控制台上便捷操作,简单快捷。 |
对于运维人员来说,需要自行配置一些快捷脚本,或者自行搭建操作系统。 |
|
按照实际所需购买,能够达到近100% 的资源利用率。 如果后续需要扩容,能够很方便的在控制台中选择扩容的大小。 |
采购环节繁琐,流程缓慢,不能实时扩容。 |
花费成本 | 1. 从硬件上来说,根据所需选择合适的容量,能够方便快捷扩容; |
需要购买服务器、托管机房、聘用专业的技术人员。需要耗费大量的硬件成本、软件成本(比如使用SQL Server就需要支付许可证费用)、人力成本、时间成本。 |
二、选择云数据库
2.1 走进Amazon RDS
由于数据库的重要性不言而喻,笔者研究各大云服务提供商的RDS,进行了一番深度体验之后,最终选择了介绍它: Amazon RDS!
Amazon是什么?它是美国最大的电子商务平台,是最早开始经营电子商务的公司之一。像国内有双十一购物节,Amazon在圣诞至元旦期间也会有促销活动。在活动期间需要大量的用户资源,而在平时又会闲置下来。为了提高硬件资源的利用率,于是想到了将它们“租”出去。正是这一举动,诞生了最早的云服务提供商之一。
背靠强大的技术能力、丰富的实战经验。如今,目前Amazon已成为最大的云服务提供商,据研究报告显示,截止2021年底,亚马逊全球云计算IaaS市场份额高达47.4%,相当于整个市场的”半壁江山“。
2.2 Amazon RDS 有哪些特点和优势所在?
Amazon RDS是一项托管关系数据库服务,支持六种常见数据库引擎选项,包括Amazon Aurora、MySQL、MariaDB、Oracle、Microsoft SQL Server和PostgreSQL,接下来我们来看它的产品特点。
- 降低维护成本:
- 使用简单:利用AWS管理控制台、Amazon RDS命令行界面或者简单的API调用就可以自动生成所需类型的数据库,同时会自动配置合适的参数和设置集,能够在几分钟内即可连接并进行精细控制和微调;
- 自动软件修补:安装的软件会同时安装最新的修补程序,保持最新状态。同时可以自行设置是否修补数据库实例以及修补时间。(比如说出现了什么漏洞,不需要咱们手动更新,就会自动安装补丁)
- 最佳实践建议:Amazon RDS可以分析数据库实例中的配置和使用率指标,从而提供最佳的实践指导,用户可以浏览提供的建议并根据自己所需进行选择执行。
- 提供多种存储类型:
- 通用型(SSD)存储:Amazon RDS 通用型存储是SSD型存储选项。是最常用的数据库存储类型。
- 预置了IOPS存储:能够提供快速、可预测和一致的I/O性能。这种类型专为I/O密集型事务(OLTP)数据库工作负载进行了优化。用户可以在创建数据库实例时指定IOPS速率。
- 可扩展性强:
- 支持一键式计算扩展:能够将部署的计算和内存资源最大扩展到32个vCPU 和 244 GiB RAM。计算扩展操作一般在几分钟内即可完成;
- 轻松扩展存储:通过MySQL、MariaDB、Oracle 和 PostgreSQL 引擎,支持扩展多达64TB存储,SQL Server则最多支持16TB。存储扩展可随时完成,且不会产生任何停机时间。
- Amazon RDS 提供了自动化无差别全脱管服务,比起个人处理需要各种繁复的工作、高额的成本、以及工作时间的限制,Amazon 提供了7*24 小时的自动处理,仅仅只需要小鼠标一点即可。如下为它与传统数据库的比较:
传统数据库 | Amazon RDS | |
---|---|---|
模式设计 | 个人处理 | 个人处理 |
查询构建 | 个人处理 | 个人处理 |
查询优化 | 个人处理 | 个人处理 |
自动故障恢复 | 个人处理 | Amazon 自动化 |
备份还原 | 个人处理 | Amazon 自动化 |
隔离与安全 | 个人处理 | Amazon 自动化 |
行业合规 | 个人处理 | Amazon 自动化 |
一键扩展 | 个人处理 | Amazon 自动化 |
自动修补 | 个人处理 | Amazon 自动化 |
高级监控 | 个人处理 | Amazon 自动化 |
日常维护 | 个人处理 | Amazon 自动化 |
内置最佳实践 | 个人处理 | Amazon 自动化 |
- 使用Amazon RDS能够帮助我们处理日常的大部分功能,而我们只需要关注去设计数据库的内容、怎么根据实际业务查询数据库。这样能够让企业能够节约更多的精力用在商业模式的创新上面。
2.3 可供参考的资料
了解到它的特点之后,我们可以来实际的上手测试它的效果;以下是博主搜集到的学习资料和活动:
- 学习资料:
- 官网: https://aws.amazon.com/cn/
- 数据库免费试用及上手教程:https://aws.amazon.com/cn/getting-started/databases/get-started/?nc=sn&loc=4&trk=fab55528-7c2e-4517-b90e-65b760ecfc1c&sc_channel=el
- 云原生数据库在线大全:https://www.awsevents.cn/CloudNative/listDetails.html?trk=1227489f-bfd0-430a-85df-750d92bb9d11&sc_channel=el
- 入门资源中心:https://aws.amazon.com/cn/getting-started/?nc1=h_ls&trk=32540c74-46f0-46dc-940d-621a1efeedd0&sc_channel=el
- 架构中心:https://aws.amazon.com/cn/architecture/?intClick=dev-center-2021_main&trk=3fa608de-d954-4355-a20a-324daa58bbeb&sc_channel=el
- 构建者库:https://aws.amazon.com/cn/builders-library/?cards-body.sort-by=item.additionalFields.sortDate&cards-body.sort-order=desc&awsf.filter-content-category=*all&awsf.filter-content-type=*all&awsf.filter-content-level=*all&trk=835e6894-d909-4691-aee1-3831428c04bd&sc_channel=el
- 用于在亚马逊云科技平台上开发和管理应用程序的工具包:https://aws.amazon.com/cn/tools/?intClick=dev-center-2021_main&trk=972c69e1-55ec-43af-a503-d458708bb645&sc_channel=el
- 活动:
- 前亚马逊云科技提供了100余种产品免费套餐。其中,计算资源Amazon EC2首年12个月免费,750小时/月;存储资源 Amazon S3 首年12个月免费,5GB标准存储容量;数据库资源 Amazon RDS 首年12个月免费,750小时;Amazon Dynamo DB 25GB存储容量永久免费。:https://aws.amazon.com/cn/free/?nc2=h_ql_pr_ft&all-free-tier.sort-by=item.additionalFields.SortRank&all-free-tier.sort-order=asc&awsf.Free%20Tier%20Types=*all&awsf.Free%20Tier%20Categories=*all&trk=e0213267-9c8c-4534-bf9b-ecb1c06e4ac6&sc_channel=el
- 最新优惠大礼包,200 数 据 与 分 析 抵 扣 券 , 200 数据与分析抵扣券,200 数据与分析抵扣券,200机器学习抵扣券,200$微服务与应用开发抵扣券。:https://www.amazonaws.cn/campaign/?sc_channel=el&sc_campaign=credit-acts-ldr&sc_country=cn&sc_geo=chna&sc_category=mult&sc_outcome=field&trkCampaign=request-credit-glb-ldr&trk=f45email&trk=02faebcb-3f61-4bcb-b68e-c63f3ae33c99&sc_channel=el
- 解决方案CloudFormation一键部署模版库:https://aws.amazon.com/cn/quickstart/?solutions-all.sort-by=item.additionalFields.sortDate&solutions-all.sort-order=desc&awsf.filter-content-type=*all&awsf.filter-tech-category=*all&awsf.filter-industry=*all
同学们在使用的时候,注意选择免费套餐。使用集群可能会产生费用先清楚再玩集群,出现计费情况可及时联系亚马逊客服帮忙抵消;接下来,我将实际使用Amazon RDS 来实战测试效果。
三、实战测试Amazon RDS
3.1 注册流程演示
- 首先登陆官网,选择
创建AWS账户
按钮:
- 填入你的邮箱、AWS账户名称(随便填,后面可以修改),然后点击
验证电子邮件地址
:
- 找到你邮箱收到的验证码,然后填入后进行创建密码阶段。
- 接下来,填入补充信息。
- 到了最关键的一步,补全信用卡/借记号信息;
- 验证手机号,输入验证码;
- 验证完成后即注册成功,如图所示:
3.2 安装MySQL流程演示
- 还是登录官网,然后点击
登录控制台
按钮:
- 接着输入咱们注册流程中填入的邮件地址和根密码,登录成功后展示如下界面:
3. 点击AWS右上角菜单,依次选择服务
-> 数据库
-> RDS
;
4. 进入RDS页面后,选择创建数据库按钮:
5. 由于博主日常使用MySQL较多,我们以MySQL创建示例。先选择MySQL,然后选择实例类型,写入实例标识、主用户名信息,最后填入密码(生产环境可以选择自动生成密码,这样能够保证安全性),点击创建数据库
。
其中生产环境与开发环境不同在于:多可用区部署(生产环境需要容灾)、预置IOPS存储作为默认值(综合性能更优秀)。
免费套餐就是白嫖的,真香~
- 创建完成后,会进入 Amazon RDS 中的数据库控制台页面,我们可以看到咱们的MySQL 正在自动创建:
Amazon RDS 创建的时候,会连带着将监控、备份等各种功能一应配好。安装完成后,会显示为可用状态;
- 点击实例名称,能够查看实例的状态和各种监控信息,如图所示。
> 走到这一步,说明安装数据库工作已经成功了。接下来,我们一起进入连接MySQL 的流程环节中;
3.3 配置安全组流程演示
默认的安全组不能在外网访问,所以为了能够在外网访问到咱们的MySQL,所以需要配置一个安全组;
- 我们可以通过菜单栏来查找,不过最简单的方式可以直接从输入框搜索EC2,如图所示选择第一个进入:
2. 选择网络与安全
,点击安全组
,然后选择创建安全组
:
3. 配置安全组规则。由于我们是测试使用,为了测试方便,可以直接先设置为所有流量
。
也可以配置指定的ip地址,它的出入站规则支持的协议非常丰富,后续可以去慢慢了解。
- 点击创建后,显示如下表示创建成功:
创建成功后,我们接下来就进行连接数据库的实战操作吧!
3.4 连接数据库流程演示
连接数据库的流程跟我们平时大同小异,博主此次演示MySQL 的连接流程,同学们可以参照对比来看。
- 在搜索栏中搜索RDS,进入后找到数据库实例,然后点击我们前面创建的数据库。
- 点击数据库实例标识名称,查看数据库信息。其中终端节点是我们访问数据库的host。同时可以看到公开可用性为否,说明目前外网还无法访问,接下来进行修改配置。
- 点击窗口的修改,将公开可用性设置为
公开访问
,同时修改安全组为刚才创建的internet-sale-group-anyu
,再点立即应用,最后点修改数据库实例
:
- 使用日常的mysql 连接工具,博主以Navicat为例。输入host、端口号及密码:
- 点击连接测试,显示如图界面说明连接成功:
6. 连接上去之后,可以看到界面跟我们平时建的mysql 一样,操作均一样:
3.5 可供参考的资料
- 博主提供了MySQL的实战案例,官方也提供了非常丰富的教程。
- Amazon RDS 官方用户指南: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html
- 创建MariaDB: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_GettingStarted.CreatingConnecting.MariaDB.html
- 创建SQL Server: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_GettingStarted.CreatingConnecting.SQLServer.html
- 创建MySQL:https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_GettingStarted.CreatingConnecting.MySQL.html
- 创建Oracle:https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_GettingStarted.CreatingConnecting.Oracle.html
- 创建PostgreSQL:https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_GettingStarted.CreatingConnecting.PostgreSQL.html
- 创建Web服务器和Amazon RDS:https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/TUT_WebAppWithRDS.html
- MySQL数据导入指南:https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/MySQL.Procedural.Importing.html
- 概述与功能:https://aws.amazon.com/cn/rds/
- 文档:https://docs.aws.amazon.com/rds/index.html
四、最后总结
- 之前所在公司,博主既是又当运维又当开发。实战测试了Amazon RDS,真的是感触良多,测试过程中总结了有这几点:
- 丰富的数据库类型。业界使用广泛的数据库种类都支持搭建。同时自研了Amazon Aurora,它是一款兼容MySQL和PostgreSQL的一种增强型关系型数据库。(不得不说亚马逊是真的强啊~)
- 自动化的创建方式。通过标准创建/轻松创建两种类型,满足不同群体创建数据库需求;同时创建时能够配置好我们所需要的配套设施(如监控系统、备份功能等)。
- 便捷的操作界面。可以通过菜单栏,也可以搜索框进入。在RDS控制台中,可以通过按钮进行修改/删除/重启/停止/创建副本/创建快照等等功能。以前需要自己手动创建的功能,现在只需要点点点啦~
- 完善的配套功能。安装完成后就可以看到监控、日志和事件、配置、维护和备份等众多功能。比如监控就非常详细,它支持时间范围筛选、不同实例之间的比较,还有各种不同的监控种类等。
- 超低的学习门槛。从注册到使用,每一步写的很详细,同时教程和文档非常全面,还可以专家帮你解答。
- 回到主题,随着云服务日益深入,我们需要顺势而上。很多同学说,我没有使用过云服务呀,为什么一定得要它?实际上,它已经深入到咱们生活中的方方面面。当我们换手机的时候,以前的电话、短信、相片等信息可以通过云服务从一台手机同步到另外一台手机。不需要购买电脑,只需要用自己手机的流量,就可以拥有一台云电脑。不需要安装,只需要流量就可以在线玩的云游戏。
- 以上是生活中的例子,当然从SaaS、PaaS、IaaS上来说,也有非常多的云服务产品可供我们使用,云服务已经进入到我们的方方面面了。
- PaaS下的Amazon RDS, 正引领着新一代的数据库解决方案。顺应时代,逐浪前行,2022年,让你的数据库与Amazon RDS一起上云吧!