7

私の会社は、アマゾンウェブサービスのウィンドウのスナップショットを毎日撮りたいと思っています。問題なくスナップショットを取得できますが、スナップショットからインスタンスを作成しようとすると、常にLinuxamiが作成されます。そのため、サーバーが起動すると、常にヘルスチェックに失敗します。

スナップショットからWindowsインスタンスを作成することは可能ですか?

4

2 に答える 2

10

[EBS-BackedEC2インスタンスを使用していると想定していることに注意してください。そうでない場合は、 AmazonEC2でEBSブートインスタンスを使用する必要がある理由についてのEricHammondの説明を確認してください。]

関連するAWSの概念に関して誤解があるようです。

Amazon EBSスナップショットは、実際に内部でAmazon Machine Images(AMI)を作成するために使用されますが、手元のユースケースで明示的に操作することはありません。具体的には、 AmazonEBSボリュームのスナップショットを作成してAmazonS3に保存するだけのCreateSnapshotを使用するのではなく、AmazonEBSをサポートする専用アクションCreateImageを介してそのようなAMIを作成するだけです。実行中または停止中のAmazonEBS-backedインスタンスからのAMI[私の強調] :

  • このプロセスの概要は、Amazon EBS-Backed 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 に答える