【发布时间】:2016-02-12 16:29:28
【问题描述】:
我的公司想要在 Amazon Web Service 中拍摄一个窗口的每日快照。我们可以毫无问题地拍摄快照,但是当我尝试从快照创建实例时,它总是会创建一个 linux ami。所以当服务器启动时,它总是无法通过健康检查。
是否可以从快照创建 windows 实例?
【问题讨论】:
标签: amazon-ec2 amazon-web-services
我的公司想要在 Amazon Web Service 中拍摄一个窗口的每日快照。我们可以毫无问题地拍摄快照,但是当我尝试从快照创建实例时,它总是会创建一个 linux ami。所以当服务器启动时,它总是无法通过健康检查。
是否可以从快照创建 windows 实例?
【问题讨论】:
标签: amazon-ec2 amazon-web-services
[请注意,我假设您使用的是 EBS 支持的 EC2 实例;如果没有,请查看 Eric Hammond 的解释为什么You Should Use EBS Boot Instances on Amazon EC2.]
听起来对相关 AWS 概念可能存在误解:
虽然Amazon EBS 快照确实用于在后台创建Amazon Machine Images (AMI),但您不会为手头的用例明确与它们进行交互。具体来说,您不想使用CreateSnapshot,它只创建 Amazon EBS 卷 的快照并将其存储在 Amazon S3 中,而您只想简单地创建这样的 AMI 通过专用操作 CreateImage,从正在运行或停止的 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;
【讨论】: