我很高興Amazon EC2
用戶,我在這裏和那裏跟隨了一些教程(主要是this one),並且我成功部署了一個node.js
應用程序。在亞馬遜EC2上縮小我的單實例node.js/mongodb應用程序 - 從頭開始
我目前有t2.nano
機器,它可以很好地作爲我的情侶用戶的測試環境。目前我的iOS應用程序已經準備就緒,因此在發佈大版本之前,我需要關注可擴展性併爲更多用戶做好準備。
我樂觀地認爲我很快就會有1000個用戶。我希望準備好整個環境,以便至少能夠爲這些用戶順利工作。但問題是 - 我不知道我應該如何開始配置一切。
糾正我,如果我錯了,但我認爲我需要2-3臺機器t2.medium
(?)所有這些運行我的node.js
代碼,並由Amazon's Load Balancer
處理,但數據庫呢?
如果我把事情做好了,我需要在一臺機器上(上面提到的那些t2.medium
之一)設置一個mongodb
主實例,並在另外兩臺機器上創建slave實例?
但是 - 如果我這樣做 - 那麼在機器之間複製數據呢?另外 - 每個t2.medium
機器上運行的每臺node.js
服務器必須與數據庫建立連接 - 是否指向主數據庫?
我試圖找到任何教程 - 類似於我用來部署單個應用程序的教程 - 但我很努力。我發現this youtube video一個傢伙描述他如何用5臺機器(一臺主人,其餘的人是奴隸)來設置環境,但我不確定這是否是一個好方向。
請問你們能否幫助我,並在此給我提示?我不知道什麼時候開始,現在我真的很感激任何事情。 謝謝!
證明納米是不夠的。使用http://locust.io/或類似工具加載測試您的應用程序。檢查瓶頸,並縮小最弱的組件。 –
是的,你說得對,'nano'確實不夠。目前我需要擴展環境,所以我想知道我該怎麼做 - 我是否需要設置3臺'中型'機器在單個負載平衡器後面?如果是的話 - 我如何將它們連接到我的數據庫?我曾想過用node.js和3'medium「機器與數據庫建立3臺'medium'機器 - 其中一臺有主設備和兩臺從設備,但是如何將這些設備連接到一個工作環境?我是否必須將每個node.js服務器指向我的主數據庫,並希望 - 在過載的情況下 - 從站自動接管? – randomuser1
從nano開始,您可以享受橫向和縱向可擴展性。使用哪一個,以及要擴展的組件取決於負載測試和成本比較的結果。典型的設置使用主要讀/寫,並使用輔助冗餘,但有用戶案例直接連接到輔助。當您連接到副本集時,驅動程序的工作是找出哪個節點是主節點,並在選出後立即切換到下一個主節點。你可以繼續。這樣說,副本集使數據庫變得更慢,它與規模無關。 –