Joh*_*ire 7 cloud amazon-ec2 amazon-web-services
我正在使用的Windows AMI(EBS支持)的启动时间存在巨大差异.有些人在3分钟内就开始了.其他人可能需要20多分钟.我的理解是默认的Windows AMI可能很慢,因为它们需要两次重新启动才能激活,但在我的情况下,这些都是自定义的机器,我创建的是公共或快照.
在类似的说明中,我正在检索EC2控制台中的日志文件,以了解我的机器何时启动.但是,有些机器似乎没有生成任何日志?实际上,我有一个可变的启动时间和变量日志记录,在这种情况下,我怎么能真正告诉Windows机器已成为可用的?
这确实需要时间变化量在EC2推出的Windows AMI.您可以通过为实例设置固定的计算机名称来最小化它.像在任何Windows计算机上一样执行此操作 - 在"我的电脑","计算机名称"选项卡的属性中.然后,从"开始"菜单的"所有程序"列表中运行"EC2ConfigService Settings".该程序由亚马逊在大多数基础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)
Run Code Online (Sandbox Code Playgroud)
该代码需要亚马逊的SDK for .NET,它是免费的.编写包含上述代码的程序.将程序设置为在计算机启动后运行,在登录之前,使用Windows任务计划程序 - 创建一个在"系统启动时"触发的调用程序的任务.
此处记录了SNS的设置:SNS文档
发送电子邮件看起来很麻烦,但是,在发送电子邮件时,亚马逊的EC2环境具有很高的限制性.许多人试图将EC2用作垃圾邮件平台,因此亚马逊已经彻底阻止了SMTP(电子邮件)流量,除非亚马逊规定.您不能只在Amazon安全组上打开一个端口来绕过Amazon的块.
亚马逊确实有一个可以在EC2内使用的一般电子邮件设施.它被称为亚马逊简单电子邮件服务(SES).这对您来说效果不佳,因为它是专为批量电子邮件设计的.因此,SES的定价,异常处理和消息传递不能很好地满足您的需求,我不这么认为.
另一方面,SNS对此非常有用.它包括一个初始电子邮件给收件人(您,或许您可能想要通知您的服务器上线的其他人)询问他们是否希望收到该主题的未来消息; 他们可以选择退出,并且必须回复以进一步接收.
可以从亚马逊的AWS管理控制台轻松完成设置过程(如上面的方框所示).(您的问题意味着您已经拥有此EC需要的AWS EC2帐户.)设置完成后,从AMI启动的任何实例都会发送一个电子邮件,其中包含您选择的任何信息(可用于您的程序)准备.
在设置中它是免费的,并且在操作中坚如磐石.
小智 1
无论 Windows AMI 的来源如何,它都会在启动过程中重新启动多次,然后才能通过 RDP 使用。所有 Windows AMI 均源自 Amazon 生产的 Windows AMI,它们在设计上就具有此启动过程。[有人建议将此引导过程硬编码到在来宾虚拟机内运行的自定义内核中。]
控制台日志通常需要 2 到 5 分钟才会显示。
不幸的是,EC2 上的 Windows 比 Linux 更难自动化和跟踪。RightScale和Scalr人员在将 Windows 集成到他们的管理平台中做了一些出色的工作。Opscode Chef配置管理工具还支持 EC2 中的 Windows,并可以帮助您发现实例何时可供使用。