为什么将 RDS over EC2 用于 Postgres?

kev*_*kev 14 postgresql aws amazon-ec2 amazon-rds

我有一个当前在 EC2 上运行的数据库。由于我必须将它移到更大的机器上,因此出现了使用 RDS 的问题。

价钱:

我可以按需获得带有两个 SSD(每个 16GB)、两个 vCPU 和 4GB 内存的EC2 c3.large实例,价格为每小时 0.132 美元[1]

最接近的(考虑价格)RDS机器db.m3.medium每小时 0.125 美元(单可用区)[2]。这台机器有相同数量的内存,但只有一个 vCPU [3]。此外,我将不得不为存储和 io [2]付费。

因此,这两个的价格将非常相似。

EC2 的优势:

  1. 如前所述,还有一个 vCPU。
  2. 使用 EC2 时,我可以将 Write-Ahead-Log 放在第二张磁盘上(向 db 写入大量内容时性能提升很大)。
  3. 我可以在我的 EC2 实例上运行pgbouncer(性能更高,因为我可以保持连接打开)。
  4. 我可以编辑配置文件(最终会提高性能)

RDS的优势:

  1. 自动进行每日备份。

RDS 能否覆盖 EC2 的优势(尤其是 2.)?还有其他优点吗?

Cra*_*ger 10

像大多数事情一样,这是成本与努力/复杂性的权衡。

RDS 更容易,但灵活性较差,并且在相同级别的性能下成本更高。

(特别要注意,无法复制进或出 RDS


小智 6

对于单实例比较,并不多,但是 RDS 有很多优点,在不同区域维护具有只读副本的多可用区设置等比我更喜欢在 EC2 中处理。RDS 做了大量的工具,否则你必须自己做;这总是一个加分项。RDS 还为您的数据库提供了统一的接口,在我看来,这是一个相当大的优势,并且有助于在数据库部署中强制执行一致性。当然,我们仍然在实例上使用 pgbouncer。

坦率地说,与 EC2 相比,我更喜欢在 coloc 硬件上运行数据库。我讨厌在 EC2 中运行数据库。移动它们,进行转储和备份是噩梦般的,因为 ec2 的 I/O 性能简直太糟糕了,而且购买大量 iops 非常昂贵,而且仍然无法以任何方式接近硬件性能。如果我能忍受 RDS 的限制,我会一直使用它。