目录

2022年,你的数据库还没有上云吗

2022年,你的数据库还没有上云吗?

一、开篇语

1.1 传统数据库的压力日益倍增

https://i-blog.csdnimg.cn/blog_migrate/d8651c5bb6fb1b8c695a2db641f5c333.png#pic_center

随着全球网民的持续增长,数据库的压力已越来越成为一个企业的瓶颈。在业务和用户量的的持续增长下,如何保证数据库的安全性、稳定性、可用性?

国内的市场竞争激烈,往往提出一个idea,就会有无数人跟进。如何在极短时间内提供一个具备完整功能的数据库,同时能够降低企业经营成本,提高生产效率?

传统数据库面临着:新建成本高昂、操作配置复杂、没有可视界面、对技术人员要求极高,如何解决这些痛点?

随着“云时代”的到来,这些问题有望解决。

云数据库简称RDS,它的优化和部署都在云端完成,具有简单方便、稳定可靠、弹性伸缩、便捷管理等特点。同时,云数据库一般具有:读写分离、主从复制、故障切换、数据备份、按需扩容等功能。我们来看看它与传统数据库相比存在哪些优势吧!

1.2 云数据库 vs 传统数据库

云数据库传统数据库
安全性防DDos攻击、流量清洗、及时修复各种数据库安全漏洞。自行购买一些安全的软硬件、依靠运维人员技术能力、开发人员行为规范规避。
可用性云数据库一般提供主备双节点,同时双节点可以在同一个地域的不同时区。跨地域的主备能够提供更大的可用性! 生成的数据库为高可用架构,可用性高达99.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%,相当于整个市场的”半壁江山“。

https://i-blog.csdnimg.cn/blog_migrate/d0f078cc618301be73979643701fd831.png#pic_center

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/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
  • 活动:
    • :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

      2

      0

      0 机器学习抵扣券,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

    • :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 注册流程演示

  1. 首先登陆 ,选择 创建AWS账户 按钮:

    https://i-blog.csdnimg.cn/blog_migrate/ca0ff07710f53ea863026acb039e1c3c.png#pic_center

  2. 填入你的邮箱、AWS账户名称(随便填,后面可以修改),然后点击 验证电子邮件地址

    https://i-blog.csdnimg.cn/blog_migrate/b30f8c9669397ffbdf74039d036bd368.png#pic_center

  3. 找到你邮箱收到的验证码,然后填入后进行创建密码阶段。

    https://i-blog.csdnimg.cn/blog_migrate/ce29ef5dc42fc0194b2fd38a0d95e724.png#pic_center

  4. 接下来,填入补充信息。

    https://i-blog.csdnimg.cn/blog_migrate/5751100d7748f4fb0b264a7e03959e03.png#pic_center

  5. 到了最关键的一步,补全信用卡/借记号信息;

    https://i-blog.csdnimg.cn/blog_migrate/43e694f0d262ee185fb2ec07e58a32c1.png#pic_center

  6. 验证手机号,输入验证码;

    https://i-blog.csdnimg.cn/blog_migrate/736ff0b4fd22366debdc87d86fc1066f.png#pic_center

  7. 验证完成后即注册成功,如图所示:

    https://i-blog.csdnimg.cn/blog_migrate/2038bc4f0c8efacdd5163e55d78afb31.png#pic_center

3.2 安装MySQL流程演示

  1. 还是登录 ,然后点击 登录控制台 按钮:

    https://i-blog.csdnimg.cn/blog_migrate/2f3ac7d8e19fdfc5be51ef04890d909b.png#pic_center

  2. 接着输入咱们注册流程中填入的邮件地址和根密码,登录成功后展示如下界面:

https://i-blog.csdnimg.cn/blog_migrate/15ef1c5956decde2b7a848ce70f94f03.png#pic_center

  1. 点击AWS右上角菜单,依次选择 服务 -> 数据库 -> RDS

https://i-blog.csdnimg.cn/blog_migrate/a8ed10acfe1d8fa8999442536f2e99bf.png#pic_center

  1. 进入RDS页面后,选择创建数据库按钮:

https://i-blog.csdnimg.cn/blog_migrate/e4de2447ef19a3c1323a92464506e678.png#pic_center

  1. 由于博主日常使用MySQL较多,我们以MySQL创建示例。先选择MySQL,然后选择实例类型,写入实例标识、主用户名信息,最后填入密码(生产环境可以选择自动生成密码,这样能够保证安全性),点击 创建数据库

https://i-blog.csdnimg.cn/blog_migrate/e11f5fb4d9e163d39c172a0515777747.png#pic_center

其中生产环境与开发环境不同在于:多可用区部署(生产环境需要容灾)、预置IOPS存储作为默认值(综合性能更优秀)。

免费套餐就是白嫖的,真香~

  1. 创建完成后,会进入 Amazon RDS 中的数据库控制台页面,我们可以看到咱们的MySQL 正在自动创建:

    https://i-blog.csdnimg.cn/blog_migrate/13238040a5ef31742d8d443c15083b72.png#pic_center

Amazon RDS 创建的时候,会连带着将监控、备份等各种功能一应配好。安装完成后,会显示为可用状态;

  1. 点击实例名称,能够查看实例的状态和各种监控信息,如图所示。 https://i-blog.csdnimg.cn/blog_migrate/f6f568cc0ed4adc606ed33f87bd5cac2.png#pic_center

    走到这一步,说明安装数据库工作已经成功了。接下来,我们一起进入连接MySQL 的流程环节中;

3.3 配置安全组流程演示

默认的安全组不能在外网访问,所以为了能够在外网访问到咱们的MySQL,所以需要配置一个安全组;

  1. 我们可以通过菜单栏来查找,不过最简单的方式可以直接从输入框搜索EC2,如图所示选择第一个进入:

https://i-blog.csdnimg.cn/blog_migrate/5a07c60584a37600c7f3b3fe89d9e5b1.png#pic_center

  1. 选择 网络与安全 ,点击 安全组 ,然后选择 创建安全组 :

https://i-blog.csdnimg.cn/blog_migrate/06858fc2c449541ccd167ac10bfa6ff9.png#pic_center

  1. 配置安全组规则。由于我们是测试使用,为了测试方便,可以直接先设置为 所有流量

https://i-blog.csdnimg.cn/blog_migrate/89c49506ce7d16893b2585aba9be6604.png#pic_center

也可以配置指定的ip地址,它的出入站规则支持的协议非常丰富,后续可以去慢慢了解。

  1. 点击创建后,显示如下表示创建成功:

    https://i-blog.csdnimg.cn/blog_migrate/1da6fd1e6d229d6e4900f4aee7b1db13.png#pic_center

创建成功后,我们接下来就进行连接数据库的实战操作吧!

3.4 连接数据库流程演示

连接数据库的流程跟我们平时大同小异,博主此次演示MySQL 的连接流程,同学们可以参照对比来看。

  1. 在搜索栏中搜索RDS,进入后找到数据库实例,然后点击我们前面创建的数据库。

    https://i-blog.csdnimg.cn/blog_migrate/25843c39461f77090c836ac579092eca.png#pic_center

  2. 点击数据库实例标识名称,查看数据库信息。其中终端节点是我们访问数据库的host。同时可以看到公开可用性为否,说明目前外网还无法访问,接下来进行修改配置。

    https://i-blog.csdnimg.cn/blog_migrate/137d27df10858e5d50a9a80d0c171392.png#pic_center

  3. 点击窗口的修改,将公开可用性设置为 公开访问 ,同时修改安全组为刚才创建的 internet-sale-group-anyu ,再点立即应用,最后点 修改数据库实例

    https://i-blog.csdnimg.cn/blog_migrate/ed700a806d36a3e5e223f5d48c6edafc.png#pic_center

    https://i-blog.csdnimg.cn/blog_migrate/75d6bdc0898b612ca0afb449abb1af03.png#pic_center

    https://i-blog.csdnimg.cn/blog_migrate/9d3a8fc88e8cefa38fd9ad2eb0c96ef8.png#pic_center

  4. 使用日常的mysql 连接工具,博主以Navicat为例。输入host、端口号及密码:

    https://i-blog.csdnimg.cn/blog_migrate/5c264932e2a13d9a0692156ab26340f7.png#pic_center

  5. 点击连接测试,显示如图界面说明连接成功:

https://i-blog.csdnimg.cn/blog_migrate/5106160fd9468a4ddb3815a72044e7c3.png#pic_center

  1. 连接上去之后,可以看到界面跟我们平时建的mysql 一样,操作均一样:

https://i-blog.csdnimg.cn/blog_migrate/f5865857ba0b9eb82d15f5990364c920.png#pic_center

3.5 可供参考的资料

  • 博主提供了MySQL的实战案例,官方也提供了非常丰富的教程。
    • :https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_GettingStarted.CreatingConnecting.MySQL.html
    • :https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_GettingStarted.CreatingConnecting.Oracle.html
    • :https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_GettingStarted.CreatingConnecting.PostgreSQL.html
    • :https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/TUT_WebAppWithRDS.html
    • :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上来说,也有非常多的云服务产品可供我们使用,云服务已经进入到我们的方方面面了。

    https://i-blog.csdnimg.cn/blog_migrate/1c58246abe9eee5823d811e00a099f44.png#pic_center

  • PaaS下的Amazon RDS, 正引领着新一代的数据库解决方案。顺应时代,逐浪前行,2022年,让你的数据库与Amazon RDS一起上云吧!