2011-06-12 114 views
6

我有一個EBS支持的EC2運行實例。 EBS商店擁有一個數據庫。我想從中創建一個AMI。有人可以提供指導嗎?如何從EBS支持的EC2實例創建AMI?

  1. 是否必須關閉MySQL?
  2. 我的AMI會嘗試連接到同一個EBS商店嗎? (災難)
  3. 將創建AMI自動快照我的EBS卷並創建副本? (希望是這一個)

感謝您的耐心通過一個長期的問題。我承認那裏有類似的信息,但沒有真正解決可能出錯的地方。

這個SO問題:

http://stackoverflow.com/questions/4475532/creating-an-ec2-ami-with-an-ebs-backed-instance-is-it-possible

是特定於ElasticFox,我沒有使用任何工具(喜歡命令行)。我不相信這個問題也被回答。

此博客:

http://instantbadger.blogspot.com/2009/09/how-to-create-and-save-ami-image-from.html

而有益的有關創建AMI,沒有提及EBS在所有和我有點擔心所有的數據。

在此先感謝!

回答

1

在開始您的問題之前,我建議您在開始創建映像之前將您的MySQL數據庫備份到未存儲爲快照的文件或EBS中。 (當然測試,你可以將其恢復到別的地方比你的生產系統)

我用:

mysqldump --add-drop-table -u root -p databasename > database.sql 

備份和:

mysql -u root -p databasename < database.sql 

恢復。

  1. 不,您不必關閉MySQL,但必須防止在創建AMI時寫入數據庫。
  2. 不,創建AMI也會爲您的EBS卷創建一個新快照(其內容與創建映像時的內容一樣)。
  3. 是,看多2

有點信息: 我寧願關閉數據庫snapshoting或創建圖像時,如果可能的話。也就是說,我不是任何意思的MySQL專家,但這裏有一些指導從http://aws.amazon.com/articles/1663?_encoding=UTF8&jiveRedirect=1

使用上面設置的密碼在實例上啓動一個MySQL會話。

mysql -u root -p 

在mysql會話中,將表格刷新到磁盤並獲取鎖定。將文件系統沖洗到磁盤並凍結。不要退出MySQL會話,否則將失去鎖定和快照,可能不一致的數據庫文件!

FLUSH TABLES WITH READ LOCK; 
SHOW MASTER STATUS; 
SYSTEM sudo xfs_freeze -f /vol 
+0

謝謝。這是我將最終使用的方法。這是相當複雜的,因爲我也有複製設置,但這篇文章給了我起點。一旦我有了完整的答案,我也會將其發佈給其他人。 – cone 2011-06-13 14:46:51

+0

樂意幫忙,祝你好運。 – steenhulthin 2011-06-13 14:50:03

1

確保您始終按照steenhulthin的建議通過傾銷來備份您的MySQL。

此鏈接將有助於創造新的EBS支持的AMI: http://www.capsunlock.net/2009/12/create-ebs-boot-ami.html

我也建議你的MySQL數據放置到一個單獨的EBS卷或更好的搜查卷。

+0

MySQL數據已在EBS商店中。 – cone 2011-06-13 14:48:01

3

亞馬遜控制檯爲您提供了一個選擇來做這個東西。

只需登錄到您的aws控制檯並瀏覽您希望創建AMI的實例ID即可。

  1. 右鍵單擊實例並單擊「停止」。
  2. 右鍵單擊實例並單擊「創建AMI」。
  3. 輸入名稱爲您的AMI &點擊確定。

就是這樣。這將創建一個AMI。有關詳細信息,請參閱:http://docs.amazonwebservices.com/AWSEC2/2011-05-15/UserGuide/index.html?Tutorial_CreateImage.html

+0

我不能讓DB停機,但謝謝。 – cone 2011-06-13 14:47:09

相關問題