建议在Amazon EC2上进行数据存储,尤其是数据库

noa*_*ale 7 postgresql amazon-ec2 lvm amazon-ebs amazon-web-services

我一直在玩亚马逊的Web服务超过一年,但我不太明白它是如何工作的.例如,当我从EC2控制台中选择我选择的AMI并继续完成向导时,我会到达"存储配置选项卡".这里有几种选择.

有根卷选项卡,然后有EBS卷选项卡.这两者有何不同?我可以为每个分配的最大大小是多少?如何配置EBS卷以使用我的实例?比方说,我决定创建8个EBS卷,每个卷具有25 GB的存储空间....现在用于类似Postgresql数据库的东西,它自然地存在于根设备上,我如何配置它以便数据库存储在所有8个EBS卷中?从某种意义上说,8个EBS卷成为一个200 GB的驱动器,而postgres数据库数据存储在整个驱动器中.

任何形式的澄清将不胜感激.

Cra*_*ger 10

您应该阅读EBS与实例存储好处.我最近还在我的工作博客上写了一篇关于PostgreSQL角度的文章.另请参阅用于新EC2实例的根设备以及相关侧栏中列出的其他问题.

除非您仔细设置复制和定期备份,否则实例存储最终将占用您的数据.如果实例失败或终止,则无法将数据恢复到实例存储中.无论如何,您需要良好的备份,这对于实例存储更为重要,您需要更加谨慎地设置近实时复制.

另一方面,EBS更有可能受到中断和故障的影响,使其暂时无法使用; 您的数据可能仍然存在,但如果您在几个小时内无法访问它,则在修复故障之前无法进行故障转移.所以你真的需要良好的备份和复制.

快速回答,我会在帖子中留下详细解释:

  • 根卷是EBS或实例存储,具体取决于AMI类型.

  • 在卷选项卡中,您可以添加其他卷.无论AMI类型如何,您都可以在创建卷时选择这些是EBS还是实例存储卷.不同的实例大小对实例存储卷的数量和大小有不同的限制,但都对EBS卷具有相同的限制.

  • 实例存储卷的最大大小由实例类型定义.请参阅实例的文档.EBS卷的最大大小位于EBS文档的第一段:

    Amazon EBS卷在特定可用区中创建,大小可以从1 GB到1 TB.

  • PostgreSQL数据库并非"自然地存在于根卷上".它住在你放的地方.如果您正在使用软件包管理器安装版本,它通常会被放入/var/lib/pgsql/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实例上的实例存储似乎比其他选项更快......但如果您必须关闭或重新启动实例或实例失败,您将丢失实例存储卷上的所有数据,因此,如果要使用实例存储,则必须具有良好的备份和实时复制.