如何在AWS中从快照创建Windows实例

时间:2012-11-19 04:02:24

标签: amazon-ec2 amazon-web-services

我的公司希望在Amazon Web Service中拍摄Windows的每日快照。我们可以毫无问题地拍摄快照,但是当我尝试从快照创建实例时,它总是创建一个linux ami。所以当服务器启动时,它总是无法进行健康检查。

是否可以从快照创建Windows实例?

2 个答案:

答案 0 :(得分:10)

[请注意,我假设您使用的是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中,而不是您想要只需通过专用操作CreateImage创建这样的AMI,其中从运行或停止的Amazon EBS支持的实例创建Amazon EBS支持的AMI [强调我的]

  • 此过程在Creating Amazon EBS-Backed AMIs中列出(虽然此部分介绍了创建'新'AMI,但该过程与您的备份方案相同。)
  • 请注意,CreateImage会自动处理附加到您的实例的其他EBS卷,如果有的话:
    • 如果除了根设备卷之外还使用实例存储卷或EBS卷自定义实例,则新AMI包含这些卷的块设备映射信息。从此新AMI启动实例时,实例会自动启动这些其他卷。

一旦你有一个像这样生成的图像(AMI),从该AMI创建你的Amazon EC2实例应该按照需要运行,无论是Windows还是Unix。

答案 1 :(得分:0)

试试这个

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;