将数据库放在EC2或RDS上?

时间:2016-11-02 12:54:58

标签: amazon-web-services amazon-ec2 amazon-rds rds

我是AWS的新手,我有一个不断增长的网站,它连接到许多API,我的数据库不断增长,我只是不想达到系统崩溃的程度。

所以我有:

  1. 网站
  2. 在网站内部,有一个连接到大型数据库的应用程序,它首先对信息进行排序,然后将客户重定向到将连接到10个API的处理页面
  3. 您可以重新运行所有应用程序或向API发送进一步请求的管理面板
  4. 现在我的问题是:将数据库放在同一个EC2服务器上是否更好?如果我在RDS上单独使用它会更好?

    我的成长项目有什么最好的?

3 个答案:

答案 0 :(得分:4)

首先,将DB从主网站实例中卸载具有优势。您可以对单独的实体进行基准测试,并确定要扩展哪个

对于24x7服务,请为您的数据库使用RDS。您可以在将来轻松创建自动故障转移恢复(但仍需要一些干预)。您可以独立于主应用程序创建数据库快照备份。

如果您每两周只需要这些服务并且数据恢复并不重要,那么将RDB放入EC2可能会为您节省一些钱。 (更新):现在AWS允许您临时“停止”RDS数据库并在需求服务器上启动它,但是,RDS将在7天后自动启动。如果您根据需要使用昂贵的RDS实例,请确保设置通知以处理此类情况。

其次,当您从应用服务器卸载RDB时,您将获得额外的灵活性来对您的网站进行负载均衡。您可以选择使用ELB甚至SPOT实例。

对于新的管理员,设置带有SSD驱动程序的AWS EC2 RDBMS(例如m3.large 2x32GB SSD)非常诱人,因为您不需要处理EBS IOPS调整,短暂的SSD驱动器将为您提供最大的IOPS关联用那个SSD。但是,您无法扩展SSD。对于RDS,您使用EBS,当您面临IOPS瓶颈时,您可以扩大磁盘空间以获得更多IOPS,或者提供额外的IOPS。

答案 1 :(得分:2)

您应该将AWS设置设计为短暂的,应该能够删除EC2实例而不会影响您的站点。这与将数据库直接托管在EC2实例上形成对比,因此简而言之,您绝对应该使用RDS。

答案 2 :(得分:1)

  1. this thread

    为您的数据库使用单独的服务器
      

    可扩展性。保持Web服务器无状态允许您扩展   你的网络服务器水平非常轻松。这个很   难以水平扩展数据库服务器。

  2. 除非您有非常具体的需求(例如:ssh访问数据库实例),否则Amazon RDS几乎总是比自我管理数据库主机更好。 Amazon RDS Product Page有一个全面的功能列表 TL; DR使用Amazon RDS,您将自动获得:

    • 备份
    • 时间点恢复
    • 故障转移(使用多可用区)
    • 软件修补
    • 监控和提醒