7

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

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

4

2 回答 2

10

[请注意,我假设您使用的是 EBS 支持的 EC2 实例;如果没有,请查看 Eric Hammond 的解释,为什么您应该在 Amazon EC2 上使用 EBS 引导实例。]

听起来对相关 AWS 概念可能存在误解:

虽然Amazon EBS快照确实用于在后台创建Amazon 系统映像 (AMI),但您不会为手头的用例明确地与它们进行交互。具体来说,您不想使用CreateSnapshot,它只创建 Amazon EBS的快照并将其存储在 Amazon S3中,而您只想通过专用操作CreateImage创建这样的 AMI ,该操作创建 Amazon EBS 支持的来自正在运行或停止的 Amazon EBS 支持的实例的 AMI [强调我的] :

  • 此过程在创建 Amazon EBS 支持的 AMI中进行了概述(虽然本部分涉及创建“新”AMI,但该过程与您的备份方案相同)。
  • 请注意,CreateImage还会自动处理附加到您的实例的其他 EBS 卷(如果有):
    • 如果除了根设备卷之外,您还使用实例存储卷或 EBS 卷自定义了您的实例,则新的 AMI 包含这些卷的块储存设备映射信息。当您从这个新的 AMI 启动一个实例时,该实例会自动与这些额外的卷一起启动。

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

于 2012-11-19T14:28:52.057 回答
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;
于 2016-02-12T08:29:28.580 回答