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