EC2中的High I/O实例使用SSD。如何在保证数据持久性的同时在这样的实例上运行数据库?
根据我的有限理解,我想使用弹性块存储(EBS),这样即使机器发生故障,磁盘上的数据也不会消失。另一方面,高I / O实例的实例存储SSD是短暂的并且不能用于数据库存储,因为例如,如果机器断电,则不保留数据图像。我的理解是否正确?
答案 0 :(得分:0)
它与其他短暂存储相同,但不保证持久性。持久性是通过在至少有一个实例写入EBS卷的实例之间进行复制来处理的。
答案 1 :(得分:0)
如果您希望数据持续存在,则需要使用EBS。无论性能如何,在短暂的驱动器上构建数据库似乎都是一个可疑的设计选择。
EBS现在提供4K IOPS卷,这取决于您的数据库要求,可能绰绰有余。
我的下一个问题是:您想托管/运行自己的数据库吗?
RDS和DynamoDB等交钥匙产品可能足以满足您的需求。使用它们比设置和管理自己的数据库容易得多。 RDS现在宣传“您现在可以为每个数据库实例配置高达3TB和30,000 IOPS”。对于许多问题集来说,这足以满足数据库的功能。
答案 2 :(得分:0)
要点1)如果您的工作负载需要高IO SSD用于DB,那么您应该设置Master Slave。理想情况下,建议在3个AZ上分布1个主设备和2个从设备。即使单个AZ发生中断,备用AZ也可以处理负载并满足您的高可用性需求。在主从之间,您可以根据数据库使用同步,半同步或异步复制。这个解决方案更昂贵。
第2点)通常,如果您的数据库本质上是OLTP,则优化的Amazon EBS PIOPS + EBS可为您提供一致的IOPS。单个EBS卷可提供4000 IOPS,您可以RAID 0多个卷并获得10k + IOPS的性能。很多客户都在AWS中采用这种方式。即使您可以使用EBS进行持久化,仍然建议使用Master-Slave架构实现高可用性。我在博客上写了关于这个主题的详细文章,请参阅它们以获取更多信息。