2011-02-02 135 views
7

我正在使用的Windows AMI(EBS支持)的啓動時間有很大的差異。有些在短短3分鐘內啓動。其他人可能需要20分鐘以上。我的理解是,默認的Windows AMI可能會很慢,因爲它們需要兩次重新啓動才能激活,但在我的情況下,這些都是自定義的機器,無論是公共還是我創建的快照。真的很慢AMI發佈


在類似的說明中,我正在檢索EC2控制檯中的日誌文件以瞭解我的機器何時啓動。但是,有些機器似乎不會生成任何日誌?所以,實際上,我有一個可變啓動時間和可變日誌記錄,在這種情況下,我怎麼才能真正知道Windows機器已變得可用?

回答

1

無論您的Windows AMI的源是什麼,它在啓動過程中都會重新啓動很多次,然後才能通過RDP提供。所有的Windows AMI都來自亞馬遜公司生產的Windows AMI,它們通過設計具有此啓動過程。 [有人建議將此啓動過程硬編碼到客戶VM內部運行的定製內核中。]

控制檯日誌通常需要2到5分鐘纔會顯示。

不幸的是,EC2上的Windows比linux更難以自動化和跟蹤。 RightScaleScalr人已經做了一些優秀的工作,將Windows集成到他們的管理平臺中。 Opscode Chef配置管理工具還支持EC2中的Windows,並可幫助您發現實例何時可以使用。

5

確實需要花費不同的時間在EC2中啓動Windows AMI。您可以通過爲實例設置一個固定的機器名稱來最小化它。在任何Windows計算機上執行此操作 - 在「我的電腦」,「計算機名稱」選項卡的屬性中。然後,從開始菜單的「所有程序」列表中運行「EC2ConfigService設置」。該計劃由亞馬遜在大多數基礎AMI上安裝。在該程序中,在「常規」選項卡上,選中「設置計算機名稱」。 這樣可以避免系統在啓動鏡像時自行重新啓動一次,因爲它必須設置名稱。

仍然,你想成爲通知當你的實例準備好了!這是亞馬遜簡單通知服務的完美工作。該服務(也被稱爲SNS)很容易以編程方式使用(例如,從一個Windows .NET項目),免費(對於前100,000條消息,總計少於1GB),並且通知是即時的。

代碼發送通知(在VB.NET):

Imports Amazon.EC2.AmazonEC2Client 
    Imports Amazon.SimpleNotificationService 
    DIM LabSNS As New AmazonSimpleNotificationServiceClient(Lab_AWSKey, Lab_AWSSecretKey) 
    Dim PubReq As New Amazon.SimpleNotificationService.Model.PublishRequest 
    Dim Msg As String 'Messege to be built up, then be sent. It is body of eMail. 
    Msg = "The instance is running and ready!" 
    Msg = Msg + vbCrLf + "Previous State of machine was:" & PreviousState 'A made-up global 
    Msg = Msg + [Any other info. I want to send myself about the start of the instance.] 
    PubReq.WithTopicArn(Topic)'Topic is a global. It's value is a key from SNS topic setup. 
    PubReq.WithSubject("EC2 Instance is Ready!") 
    PubReq.WithMessage(Msg) 
    LabSNS.Publish(PubReq) 

代碼要求亞馬遜的SDK for .NET這是免費的。編寫一個包含上述代碼的程序。將程序設置爲在計算機啓動後以及使用Windows任務計劃程序登錄之前運行 - 創建一個在「系統啓動時」觸發的調用該程序的任務。

對SNS的設置記錄在這裏:SNS Documentation

它看起來像一個很大的麻煩,發送電子郵件,但是,亞馬遜的EC2環境是非常嚴格的,當談到發送電子郵件。許多人試圖將EC2用作垃圾郵件平臺,因此亞馬遜已經徹底阻止了SMTP(電子郵件)流量,除非亞馬遜規定。您不能僅在亞馬遜安全組上打開一個端口來繞過亞馬遜的區塊。

亞馬遜有一個通用的電子郵件設施,可以在EC2內使用。它被稱爲亞馬遜簡單電子郵件服務(SES)。這對你來說不太合適,因爲它是爲批量電子郵件設計的。所以,我不認爲SES的定價,異常處理和消息傳遞不適合您的需求。

另一方面,SNS對此非常有用。它包括一個給收件人的初始電子郵件(你可能想要通知你的服務器上線),詢問他們是否希望接收未來的主題消息;他們有權選擇退出,並且必須回覆以進一步接收。

安裝過程(如上面的塊所示)都可以從Amazon的AWS管理控制檯輕鬆實現。 (您的問題意味着您已擁有此ECO EC2帳戶。)設置完成後,從AMI啓動的任何實例都會發送一個電子郵件,其中包含您選擇的任何信息(只要您的計算機可用)準備。

它在設置時無需任何操作,而且在操作時可以堅如磐石。