
我想將我的執行個體移到小型執行個體,但當我嘗試基於我的微型執行個體 AMI 啟動新的 AMI 時,它只提供了 64 位元執行個體的選項。
我最初的 ami 是基於 ubuntu 10.04 映像。
是否無法在 64 位元和 32 位元實例之間移動?
是否可以使用負載平衡器讓 32 位元實例和 64 位元實例一起運作?
我有一個網站/網路應用程序,我將向其中上傳大量數據。我將從 65g 的圖像開始,然後增加到 100+g 的圖像。
我不確定哪種實例類型最適合此目的。我打算使用負載平衡器和自動縮放來在負載較高時增加執行個體數量。
此外,在使用負載平衡器時,其中一個 AMI 執行個體是否會成為主映像,而其餘執行個體則充當其複製?
答案1
您只能在建立映像的相同架構(32 位元或 64 位元)上啟動映像。微型實例可以是 32 位元或 64 位元,但如果您在創建時使用 64 位元影像,那麼您就只能這麼做了。如果您的預算允許,您可以使用“大型”實例而不是“小型”實例。
您完全可以對不同類型的執行個體進行負載平衡(使用 Amazon 的 ELB 或其他實例,例如 HAProxy、Squid、varnish 等)。
我想你最大的問題是你打算在哪裡儲存這麼多資料。如果您打算讓多個實例提供相同的內容(並上傳到),那麼您將需要共享儲存。您可以使用 GlusterFS 之類的工具在實例之間共用數據,也可以擁有一個由 Web 實例 NFS 掛載的「儲存伺服器」。
自動縮放的工作原理是設定一個“啟動映像”,它是“主”映像的 AMI id。然後它啟動該映像以響應觸發器(即負載過高)。重要的是要考慮這在概念上意味著什麼 - 這意味著啟動的每個實例都將基於原始映像,並且不會有新資料或更新的配置等。
因此,總而言之,如果您要使用多個 Web 伺服器,那麼您需要某種形式的共用儲存。通常這是資料庫(可能在 Amazon 的 RDS 服務上),但聽起來您需要儲存大「檔案」而不是數據,因此您需要分散式儲存或儲存伺服器。
答案2
根據Amazon EC2 執行個體描述頁面,Micro 實例提供 32 位元和 64 位元版本,而 Small 實例類型僅提供 32 位元版本。這就是您無法在小型執行個體類型上啟動初始 64 位元 AMI的原因。
- 更新:AWS同時推出了64 位元無所不在,即每個實例類型都可以與 64 位元影像一起使用,這確實將使您能夠更輕鬆地垂直擴展(擴展到更大和更小的實例),而無需維護並行(32 位元和 64 位元)AMI(看EC2 更新:新的中型執行個體、64 位元 Ubiquity、SSH 用戶端了解詳情)。
關於您的負載平衡器問題:這很大程度上取決於您的使用模式 - 32 位元和 64 位元實例類型都可以在負載平衡器後面協同工作,不會出現任何問題。但是,我建議堅持使用一種實例類型。一般來說,如果您只是進行上傳而不進行圖像處理或類似的操作,我認為您主要關心的應該是 I/O 和內存。我建議簡單地嘗試一下,使用您的 Web 應用程式所需的最小設置,並對兩種實例類型進行一些負載測試。