Postgresql
為什麼在 Postgres 上使用 RDS over EC2?
我有一個目前在 EC2 上執行的數據庫。由於我必須將它移動到更大的機器上,所以出現了使用 RDS 的問題。
價錢:
我可以按需以每小時 0.132 美元的價格獲得一個帶有兩個 SSD(每個 16GB)、兩個 vCPU 和 4GB 記憶體的EC2實例
c3.large
$$ 1 $$.最接近(考慮價格)的RDS機器
db.m3.medium
每小時 0.125 美元(單可用區)$$ 2 $$. 這台機器的記憶體量相同,但只有一個 vCPU$$ 3 $$. 此外,我將不得不支付儲存和 io$$ 2 $$.所以這兩個的價格會非常相似。
EC2 的優勢:
- 如前所述,多了一個 vCPU。
- 使用 EC2 時,我可以將 Write-Ahead-Log 放在第二張光碟上(向 db 寫入大量內容時性能得到很大提升)。
- 我可以在我的 EC2 實例上執行pgbouncer(更高的性能,因為我可以保持連接打開)。
- 我可以編輯配置文件(最終會提高性能)
RDS 的優勢:
- 自動進行每日備份。
RDS 能否涵蓋 EC2 的優勢(尤其是 2.)?還有其他優點嗎?
像大多數事情一樣,這是成本與努力/複雜性的權衡。
RDS 更簡單,但靈活性較差,並且相同性能水平的成本更高。
對於單個實例比較,不多,但 RDS 有很多優勢,在不同區域維護具有隻讀副本的多可用區設置等比我更願意在 EC2 中處理。RDS 提供大量工具,否則您必須自己動手;這總是一個優點。RDS 還為您的數據庫提供了一個統一的介面,在我看來這是一個相當大的優勢,並且它有助於加強數據庫部署的一致性。當然,我們仍然在實例上使用 pgbouncer。
坦率地說,比起在 EC2 中,我更喜歡在 coloc 硬體上執行數據庫。我討厭在 EC2 中執行數據庫。移動它們,進行轉儲和備份是噩夢般的,因為 ec2 的 i/o 性能簡直糟糕透頂,而且購買大量 iops 非常昂貴,而且仍然無法以任何方式接近硬體性能。如果我能忍受 RDS 的限制,我會一直使用它。