Ubuntu

將自定義 32 位 AMI 轉換為 64 位 AMI 的簡單方法?

  • September 22, 2011

我已經定制了(EBS 支持的)AMI,用於執行我們的應用程序的展示版本。(AMI 包含 Ubuntu 11.04 和應用程序本身的 Tomcat 和 MySQL 設置,以及用於輕鬆一鍵更新展示的 Jenkins)。

這是一個 32 位 AMI,這意味著我有以下實例類型選項

  • 微 (t1.micro)
  • 小(m1.small)
  • 高 CPU 中型 (c1.medium)

我們注意到我們希望展示伺服器的性能比 c1.medium 所能提供的更高。(具體來說,我懷疑“I/O 性能:中等”可能是一個瓶頸,儘管鑑於我們對所有事情都使用 EBS,我不確定改進這是否會有所幫助。)

無論如何,為了使用更強大的實例類型(例如“m1.large”或“c1.xlarge”),我需要一個 64 位 AMI

一種方法是從乾淨的 64 位Ubuntu AMI創建一個新實例,然後在那裡重新設置我的系統,最後將其保存為新的 AMI。我可以使用目前設置安裝一個卷,然後將cp -a一些東西放到新實例的根磁碟上,這會有所幫助。但即便如此,這種方法可能有些乏味和耗時。

所以,我的問題是,有沒有更簡單、自動化的方式將 32 位 AMI 轉換為 64 位?

不,沒有自動化的方法。您必須從 Ubuntu-plain 開始創建一個新的 AMI。

可以轉換 Unbuntu 安裝,但它真的很亂。最好做一個新鮮的 AMI。

最佳實踐:

  1. 每當您建構 AMI(甚至設置實例)時,請始終記錄您安裝和配置軟體所採取的確切步驟,以及您在其中放置了哪些數據以及放置在何處。這有很多好處,包括可以輕鬆地為不同的架構重建相同的 AMI。

更好的是,我建議編寫大部分或全部安裝、配置步驟的腳本,以便您可以自動建構 AMI。這使得調整設置和測試新版本變得容易。

下面是我如何建構一個安裝了 Git 和 gitolite 的 Ubuntu AMI 的範例,用於私有 Git 儲存庫伺服器:

https://github.com/alestic/alestic-git/blob/master/bin/alestic-git-build-ami

  1. 上面的第一個建議是設置通常在根卷上執行的軟體。您的數據應放置在執行 AMI 後附加到實例的單獨 EBS 卷上。這有很多好處,包括在實例之間移動數據的能力,例如當您想要切換到執行新的 AMI 時。它還允許您製作數據卷的副本以附加到開發實例。

您可能認為此建議對您來說為時已晚,但您即將建構另一個 AMI,所以…

引用自:https://serverfault.com/questions/313379