Amazon RDS与EC2与MySQL相应的优势/局限是什么?

Mac*_*ver 132 mysql amazon-ec2 amazon-rds

我意识到两者之间的几个基本差异,即

  1. EC2会更便宜

  2. RDS我不需要做维护

除了这两个之外,从RDS运行我的数据库是否有任何优势,而不是作为MySQL服务器的单独EC2服务器.假设类似的实例大小,在能够处理负载方面都会遇到相同的限制吗?

为了给你更多关于我使用的信息,我有一个数据库,没有太大或任何东西(最大的表100万行),只有高的SELECT卷.

efa*_*cao 135

这是一个简单的问题,答案非常复杂!

简而言之:如果您使用RAID0 EBS,EC2将提供最高性能.执行RAID0 EBS需要相当大的维护开销,例如:

http://alestic.com/2009/06/ec2-ebs-raid

http://alestic.com/2009/09/ec2-consistent-snapshot

没有RAID0 EBS的EC2将提供糟糕的I/O性能,因此它甚至不是一个真正的选择.

RDS将提供非常好(但不是最大)的开箱即用性能.管理控制台太棒了,升级实例很容易.点击即可获得高可用性和只读从站.真的棒极了.

简短回答:使用RDS.还在围栏上?跟RDS一起去!如果您喜欢头痛并调整最后一点以获得最佳性能,那么您可以考虑使用EC2 + EBS RAID 0. Vanilla EC2是MySQL托管的一个糟糕选择.

  • 关于4小时维护窗口,重要的一点是,您的服务器每周不会停机4小时!那就是当他们要进行维护时,如果有维护要做的话.我已经有几个月和几个月运行的RDS服务器没有停机时间. (8认同)
  • 我们的RDS服务器运行了YEARS,停机时间为零.一次重大中断(大约6小时)一次,一旦AWS自行解决,一切都恢复正常.(我应该指出这是一个多AZ实例,但它无法故障转移到备份). (2认同)

And*_*res 24

这篇文章中,有一个很好的基准:

  • 在小型EC2 + EBS上运行MySql
  • 在小型EC2 + EBS上运行MySql +调整MySql参数
  • 小型RDS

基准测试非常好,因为它不仅仅关注理想条件(只有一个线程),而且更集中在更现实的场景中,50个线程命中数据库.

  • 发表基准测试很好,但作者真诚地承认他没有正确调整Innodb(改变的最重要的一个参数当然是innodb_buffer_pool_size ....他没有这样做) (2认同)

Jef*_*ing 12

RDS实际上不是一个高可用性系统.阅读RDS常见问题解答中的细则.在故障转移事件期间,故障转移最多可能需要3分钟.额外的亚马逊将决定它需要"升级"您的rds实例并在那时进行故障转移,这将使您的数据库停机"最多3分钟"(我们的经验是它可能需要更长的时间).

RDS高可用性与主 - 主或从 - 主复制非常不同,而且速度要慢得多.它们不使用mysql复制,而是使用某种ebs复制.所以在故障转移的情况下,它会将ebs挂载到备份机器上,启动mysql,等待mysql执行故障恢复(希望没有任何损坏太糟糕),然后执行dns切换.

我希望这可以帮助你评估.


Dav*_*idJ 6

我们选择使用EC2 MySQL实例,因为我们具有高读取量并需要主从复制.当然,您可以自己启动多个RDS实例并在它们之间设置MySQL复制,但我们使用Scalr.net,它使用EC2实例为您管理.

基本上,我们只告诉Scalr我们需要多少个MySQL实例来保持它们,自动化复制设置,如果主站终止等,则处理从站升级到主站的自动故障转移等.它同时执行SQL转储备份和EBS卷快照大师.因此,当需要创建新的从属服务器时,它会自动临时安装最后一个主快照的EBS卷以初始化从属数据库,然后从适当的点开始复制.所有指向并单击:)(不,我不适用于Scalr或任何其他.如果您不想使用他们的服务,Scalr可用作开源)


Shi*_*hin 5

关于维护窗口问题.如果您使用多可用区,则RDS将在另一个可用区中创建备用副本,这样就不会有维护停机时间,您可以保护自己免受区域故障的影响.

这就是我打算在下周左右做的事情.当然它会花费你更多,但我还没有那么努力.