一、开篇语
1.1 传统数据库的压力越来越大
随着全球网民的持续增长,数据库的压力已越来越成为一个企业的瓶颈。在业务和用户量的的持续增长下,如何保证数据库的安全性、稳定性、可用性? 国内市场竞争激烈,经常提出一个idea,会有无数人跟进。如何在很短的时间内提供功能齐全的数据库,降低企业运营成本,提高生产效率? 传统数据库面临着如何解决新建成本高、操作配置复杂、无视觉界面、技术人员要求高等痛点? 随着云时代的到来,这些问题有望得到解决。 简称云数据库RDS,其优化和部署在云中完成,具有简单、方便、稳定、可靠、灵活、管理方便等特点。同时,云数据库一般具有:读写分离、主复制、故障切换、数据备份、按需扩展等功能。让我们来看看它比传统数据库有什么优势!
1.2 云数据库 vs 传统数据库
云数据库 | 传统数据库 | |
---|---|---|
安全性 | 防DDos各种数据库安全漏洞的攻击、流量清洗及时修复。 |
自行购买一些安全的软硬件、依靠运维人员技术能力、开发人员行为规范规避。 |
可用性 | 云数据库一般提供主备双节点,双节点可以在同一地区的不同时区。跨区域主备可以提供更大的可用性! 生成的数据库可用性高达999.9999%。一般云服务提供商提供自动备份功能。 |
一般部署在本地机房,多为同一机房多台机器之间的主备份。如果电缆被挖掘、突然停电、自然灾害和人为灾害,很容易造成不可估量的损失;依靠公司的技术人员,建立主备复制、监控、RAID等,高可用性参差不齐; |
效率性 | 直接选择节点、数据库类型,几分钟内就能拥有完整能力的高可用数据库,可视为0操作维护; |
依靠高级运维人员,Devops、开发人员、DBA合作、手动配置、许多中间环节需要依靠技术人员的能力和经验来规避风险。这需要很长时间。 |
操作性 | 对于开发人员来说,操作与当地数据库相同,没有感知;对于运维人员来说,可以直接在云服务提供商的控制台上方便操作,简单快捷。 |
对于运维人员来说,需要配置一些快速脚本,或者建立自己的操作系统。 |
资源利用率 |
按实际需要购买,可达近100% 资源利用率。如果后续需要扩容,在控制台中选择扩容的尺寸非常方便。 | 采购环节繁琐,流程缓慢,无法实时扩容。一般来说,资源比实际需要更多,因为如果设置较少,扩容会很麻烦。同时,业务也有高峰期和低峰期,资源闲置在低峰期造成浪费。 |
花费成本 | 1. 在硬件方面,根据需要选择合适的容量,可以方便快捷地扩容;2. 在软件方面,云服务提供商提供行业主流解决方案,操作方便快捷;无需重新开发。3. 在维护方面,基本不需要运维; |
需要购买服务器、托管机房,聘请专业技术人员。需要大量的硬件和软件成本(如使用)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 支持64发动机扩展TB存储,SQL Server则最多支持16TB。存储扩展可以随时完成,不会产生任何停机时间。
- Amazon RDS 与个人处理需要各种复杂的工作、高成本、工作时间的限制相比,提供自动化无差异的全脱管服务,Amazon 提供了7*24 小时自动处理只需要一点鼠标。以下是与传统数据库的比较:
传统数据库 | Amazon RDS | |
---|---|---|
模式设计 | 个人处理 | 个人处理 |
查询构建 | 个人处理 | 个人处理 |
查询优化 | 个人处理 | 个人处理 |
自动故障恢复 | 个人处理 | Amazon 自动化 |
备份还原 | 个人处理 | Amazon 自动化 |
隔离与安全 | 个人处理 | Amazon 自动化 |
行业合规 | 个人处理 | Amazon 自动化 |
一键扩展 | 个人处理 | Amazon 自动化 |
自动修补 | 个人处理 | Amazon 自动化 |
高级监控 | 个人处理 | Amazon 自动化 |
日常维护 | 个人处理 | Amazon 自动化 |
内置最佳实践 | 个人处理 | Amazon 自动化 |
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一起上云吧!