我的公司想要在 Amazon Web Service 中拍摄一个窗口的每日快照。我们可以毫无问题地拍摄快照,但是当我尝试从快照创建实例时,它总是会创建一个 linux ami。所以当服务器启动时,它总是无法通过健康检查。
是否可以从快照创建 Windows 实例?
我的公司想要在 Amazon Web Service 中拍摄一个窗口的每日快照。我们可以毫无问题地拍摄快照,但是当我尝试从快照创建实例时,它总是会创建一个 linux ami。所以当服务器启动时,它总是无法通过健康检查。
是否可以从快照创建 Windows 实例?
[请注意,我假设您使用的是 EBS 支持的 EC2 实例;如果没有,请查看 Eric Hammond 的解释,为什么您应该在 Amazon EC2 上使用 EBS 引导实例。]
听起来对相关 AWS 概念可能存在误解:
虽然Amazon EBS快照确实用于在后台创建Amazon 系统映像 (AMI),但您不会为手头的用例明确地与它们进行交互。具体来说,您不想使用CreateSnapshot,它只创建 Amazon EBS卷的快照并将其存储在 Amazon S3中,而您只想通过专用操作CreateImage创建这样的 AMI ,该操作创建 Amazon EBS 支持的来自正在运行或停止的 Amazon EBS 支持的实例的 AMI [强调我的] :
一旦你有一个像这样生成的图像 (AMI),从那个 AMI 创建你的Amazon EC2实例应该可以按需要工作,无论是 Windows 还是 Unix。
尝试这个
var launchRequest = new RunInstancesRequest()
{
ImageId = amiID,
InstanceType = ConfigurationManager.AppSettings["AwsInstanceType"],
MinCount = 1,
MaxCount = 1,
KeyName = keyPairName,
SecurityGroupIds = groups,
SubnetId = ConfigurationManager.AppSettings["AwsSubnetId"],
};
RunInstancesResponse runInstancesResponse = amazonEc2client.RunInstances(launchRequest);
var InstanceId = runInstancesResponse.Reservation.Instances[0].InstanceId;
var trequest = new CreateTagsRequest();
trequest.Resources=new List<string>(){InstanceId};
List<Tag> tags=new List<Tag>();
Tag tag=new Tag("Name","TestCodeFinal");
tags.Add(tag);
trequest.Tags = tags;
amazonEc2client.CreateTags(trequest);
Reservation reservation = runInstancesResponse.Reservation;