2012-01-05 48 views
4

我剛開始使用亞馬遜EC2,並試圖讓我的腦海中的數據庫應該如何工作。如果我有一個高流量網站,並希望負載平衡多個實例上的流量,我猜這些實例將不得不將數據檢索並保存到一個單獨的實例,以避免數據在多臺計算機上分散。我應該在自己的EC2實例上運行MongoDB嗎?

我應該在這種情況下安裝和自身的實例上運行的MongoDB,並所有其他實例連接到這個單一的數據存儲?或者我應該只在同一個實例上運行mongo和我的http服務器?

很想聽聽你的一些最佳實踐。

回答

4

也許這是沒有必要的,而你正在開發,但一旦你去製作你應該這樣做。

更重要的是,如果您正在運行生產數據,則可能需要運行a replica set才能備份以防萬一發生故障,以免丟失數據並且不會中斷服務。

的DB餓了記憶,所以有與其他進程共享它,它是一個壞主意。在應用程序服務器,你可能需要比內存更多的CPU,因此可以使用高CPU實例類型(c.medium,c1.xlarge),並使用高內存類型爲你的DB(m2.large等)(高CPU實例是便宜)

此外,從架構的角度,最好是能夠從數據庫獨立擴展應用程序服務器的數量。如果將應用程序服務器和數據庫放在同一臺計算機上,那麼如果稍後必須遷移到其他計算機上,則可能會導致問題。

相關問題