博客
关于我
云计算之路:数据库服务器的选择——舍RDS取云服务器
阅读量:417 次
发布时间:2019-03-06

本文共 1415 字,大约阅读时间需要 4 分钟。

云计算之路系列博文分享的是我们将网站从IDC机房迁移至云计算平台(阿里云)的实际经历,目前处于准备阶段,这次分享的是我们选择数据库服务器面临的权衡与取舍。

在阿里云上,数据库服务器有两个选择:云服务器与RDS(关系型数据库服务)。这两者的主要区别是什么呢?

可以这样理解,选择云服务器就如同租用毛坯房,你得自己装修、自己置家具、自己打扫。而选择RDS则如同住五星级酒店。

云服务器是运行在集群上的虚拟机,阿里云采用的是Xen虚拟化技术。云服务器使用的是SATA硬盘,而主流的服务器通常使用SAS硬盘。SATA硬盘通过网络存储集群实现,每次写入数据时会同时保存三份,从而在性能上换取可靠性。阿里云客服提供的数据显示,云服务器的写速度一般为15MB/s,读速度为70MB/s,IOPS在500~700之间。硬盘写入速度是云服务器的硬伤,也是成本低的主要原因。

RDS(关系型数据库服务)则是跑在物理服务器上的数据库实例。以SQL Server为例,阿里云会在物理服务器上预装好SQL Server,并将其中一个SQL Server数据库实例出租,限定该实例所能使用的硬件资源。物理服务器配置强劲,硬盘性能远高于云服务器,维护也由阿里云的DBA负责。硬盘读写速度快、维护成本低是RDS的优势,但也带来了成本高和资源限制的问题。

最初我们并不知情,后来在尝试将"找找看"索引放在云服务器上建数据库时,发现云服务器的硬盘写入速度较慢。不久后,我们从阿里云客服那了解到RDS的相关信息,得知其硬件性能更优,于是对RDS进行了评估。

如果选择与现有数据库服务器差不多的硬件配置(8G内存、400G硬盘空间),成本为3870元/月,硬盘性能确实会比现有数据库服务器高,但存在以下限制:

  • 无法远程控制数据库服务器,只能通过SQL Server管理工具进行连接。
  • 一个数据库实例支持的数据库数量有限(约7个)。
  • SQL Server版本仅限2008版本。
  • 数据库最大连接数有限制(此配置为800)。
  • 这些限制虽然存在,但总体上RDS的选择还是有吸引力。于是我们决定使用RDS,接下来便需要考虑如何将数据迁移至RDS上。

    阿里云平台仅提供一种迁移方案:导出目标数据库的生成脚本(详见),适用于数据文件总大小在10G以内的场景。然而,我们的一个数据库数据文件却有70G之大。对此,阿里云客服建议仍然采用适用于10G以下数据文件的导出脚本。对于70G的数据库,导出脚本后再将其大文件导入到远程数据库,经验尚浅,这个过程让人略感头疼。

    这个经历让我们对RDS产生了一些不满,甚至一度给了阿里云客服一个差评。经历了这次"气愤事件"后,我们并未陷入困境,反而促使我们重新思考:是否必须使用RDS?

    进一步计算发现,购买RDS的费用远高于云服务器配置。例如,8G内存的RDS成本为3870元/月,而顶级配置的云服务器(8核CPU、32G内存)仅需2779元/月,相比之下节省约1000元/月。云服务器虽然硬盘性能稍逊一筹,但内存资源丰富,足以弥补性能差距。此外,云服务器还提供Memcached和NoSQL等级别缓存,可帮助减轻数据库压力。

    基于以上考虑,我们决定先采用云服务器作为数据库服务器,若性能仍不足再考虑迁移至RDS。此外,可以将数据库分布至多台云服务器上运行,进一步提升性能和可用性。

    这就是我们的选择——暂时选择云服务器而非RDS。先够用,没用再说。

    转载地址:http://fehkz.baihongyu.com/

    你可能感兴趣的文章
    Nginx Location配置总结
    查看>>
    Nginx 动静分离与负载均衡的实现
    查看>>
    Nginx 反向代理解决跨域问题
    查看>>
    Nginx 反向代理配置去除前缀
    查看>>
    nginx 后端获取真实ip
    查看>>
    Nginx 学习总结(17)—— 8 个免费开源 Nginx 管理系统,轻松管理 Nginx 站点配置
    查看>>
    nginx 常用配置记录
    查看>>
    Nginx 我们必须知道的那些事
    查看>>
    Nginx 的 proxy_pass 使用简介
    查看>>
    Nginx 的配置文件中的 keepalive 介绍
    查看>>
    nginx 配置 单页面应用的解决方案
    查看>>
    nginx 配置~~~本身就是一个静态资源的服务器
    查看>>
    Nginx下配置codeigniter框架方法
    查看>>
    nginx添加模块与https支持
    查看>>
    Nginx的Rewrite正则表达式,匹配非某单词
    查看>>
    Nginx的使用总结(一)
    查看>>
    Nginx的是什么?干什么用的?
    查看>>
    Nginx访问控制_登陆权限的控制(http_auth_basic_module)
    查看>>
    nginx负载均衡的五种算法
    查看>>
    Nginx配置ssl实现https
    查看>>