2011-02-02 246 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启动的任何实例都会发送一个电子邮件,其中包含您选择的任何信息(只要您的计算机可用)准备。

它在设置时无需任何操作,而且在操作时可以坚如磐石。