您应该阅读EBS 与实例存储的优势。我最近也在我的工作博客上写了一点关于这个的 PostgreSQL 角度。另请参阅用于新 EC2 实例的根设备以及相关边栏中列出的其他问题。
除非您仔细设置复制和定期备份,否则实例存储最终会吃掉您的数据。如果实例失败或终止,如果它位于实例存储中,您将无法取回数据。无论如何,您都需要良好的备份,这对于实例存储更为重要,并且您需要更加小心地设置近实时复制。
另一方面,EBS 更容易受到中断和故障的影响,使其在一段时间内不可用;您的数据可能仍然存在,但如果您在几个小时内无法访问它,您将无法进行故障转移,直到故障得到修复。所以无论如何你真的需要好的备份和复制。
快速回答,我将在帖子中留下详细的解释:
根卷是 EBS 或实例存储,具体取决于 AMI 类型。
在卷选项卡中,您可以添加其他卷。无论 AMI 类型如何,您都可以在创建卷时选择这些是 EBS 还是实例存储卷。不同的实例大小对实例存储卷的数量和大小有不同的限制,但对 EBS 卷的限制都相同。
实例存储卷的最大大小由实例类型定义。请参阅您的实例的文档。EBS 卷的最大大小在 EBS 文档的第一段中:
Amazon EBS 卷在特定的可用区中创建,大小可以从 1 GB 到 1 TB。
PostgreSQL 数据库并没有真正“自然地存在于根卷上”。它住在你放的地方。如果您使用的是安装包管理器的版本,它通常会放在/var/lib/pgsql
or/var/lib/postgres
中,但您可以更改启动脚本选项以将其移动到其他位置,将其替换为指向所需位置的符号链接,或者在那一点。关于如何在 Stack Overflow、dba.stackexchange.com 和 serverfault 上移动 PostgreSQL 有很多讨论,所以我不会在这里重复所有这些。
要组合多个 EBS 卷,请使用 Linux 的软件 RAID (md)。就 Linux 而言,EBS 就像任何其他磁盘一样,因此请参阅设置 Linux 软件 RAID 的常用文档。
就我个人而言,我对 EC2 的性能非常不满意,至少对 PostgreSQL 来说是这样。您可以获得一个非常快速的数据库运行,但价格非常昂贵。如果您想为短期工作启动一些大型数据库,这非常方便,但作为长期托管选项并不经济,您最好寻找提供更好 I/O 性能的 VPS 提供商。搜索 ServerFault、dba.stackexchange.com 等。
最后,提醒一下:高 I/O 实例上的实例存储似乎比其他选项更快……但如果您必须关闭或重新启动实例或实例失败,您将丢失实例存储卷上的所有数据,因此,如果您要使用实例存储,则必须有良好的备份和实时复制。