我应该使用EBS还是S3来存储我的数据库?

6
我想在Amazon EC2实例上托管网站,但为了可靠性,我希望将底层数据库存储在更持久的存储介质上。不会有任何文件上传或类似操作,但我想确保数据库查询和更新速度快。我应该使用EBS还是S3?如果需要更多信息,请留言。
3个回答

7

您不能将数据库存储在S3上。如果您想要将数据库存储在某个地方,那么它只能存储在EBS或实例存储中。


啊,我没有意识到那不是一个选项。所以 S3 只是用来备份之类的东西? - cfrederich
没错。你可以在上面存储内容,但不能存储可进行随机访问的文件,这是数据库所必需的。 - Femi
好的,谢谢。所以我想更好的问题是,将数据库运行在实例上并备份到S3上,还是将其运行在EBS上并备份到S3上更明智呢? - cfrederich
这可能不再是真的了。ClouSE似乎暗示他们有一个存储引擎,可以使用S3或Google CS来处理MySQL: http://www.oblaksoft.com/documentation/faq/ 但不知道它的工作效果如何,因为其他信息非常少。 - awidgery

2
仅仅是基于其他非常好的答案,你可以将你的数据库存储为一个.sql文件在s3上。但是你的网站/应用程序无法对这个文件进行查询,因为s3没有MySQL程序(文件!=数据库)。
亚马逊RDS将您的数据库备份存储到s3中作为.sql文件(我假设),他们通过编程方式访问并用于在其失败时恢复您的RDS数据库实例。
EBS与RDS的优点已经在其他答案中提到,但仅仅为了明确,RDS的一个关键优势是亚马逊通过提供备份等来处理恢复失败实例的问题。
我不确定DB复制部分,因为它似乎是一个单独的概念,我读过这个不是RDS的特性。更有经验的DBA似乎经常指出这一点,作为不使用RDS的原因。是否有人能澄清一下?

1

就像@Femi所说,您不能使用S3作为数据库,但是您可以使用其中之一的instance-store/EBS/RDS。以下是更多信息:

如果您的实例崩溃,instance store将消失,而EBS卷最近出现了相当大的问题-尽管这比instance-store好,但我建议您看看Amazon RDS,我曾经在我的一个项目中使用过它,非常酷。

Amazon RDS具有相当多的优势:

http://aws.amazon.com/rds/

特点:

  • 自动备份
  • 数据库快照
  • 自动主机替换
  • 复制

当您比较EBS和RDS时,两者都需要付费,但与EBS相比,RDS稍微多一些费用,但是它是值得的。亚马逊会处理所有事情,如果您的网站受到流量驱动,它有自动复制的解决方案。


1
RDS是由亚马逊管理并提供服务的MySQL数据库。EBS是一种虚拟卷,可以像常规实例存储一样挂载和使用,具有稍高的可靠性和灵活性。 - Murukesh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接