它确实需要花费不同的时间在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启动的任何实例都会发送一个电子邮件,其中包含您选择的任何信息(只要您的计算机可用)准备。
它在设置时无需任何操作,而且在操作时可以坚如磐石。