私の会社は、アマゾンウェブサービスのウィンドウのスナップショットを毎日撮りたいと思っています。問題なくスナップショットを取得できますが、スナップショットからインスタンスを作成しようとすると、常にLinuxamiが作成されます。そのため、サーバーが起動すると、常にヘルスチェックに失敗します。
スナップショットからWindowsインスタンスを作成することは可能ですか?
私の会社は、アマゾンウェブサービスのウィンドウのスナップショットを毎日撮りたいと思っています。問題なくスナップショットを取得できますが、スナップショットからインスタンスを作成しようとすると、常にLinuxamiが作成されます。そのため、サーバーが起動すると、常にヘルスチェックに失敗します。
スナップショットからWindowsインスタンスを作成することは可能ですか?
[EBS-BackedEC2インスタンスを使用していると想定していることに注意してください。そうでない場合は、 AmazonEC2でEBSブートインスタンスを使用する必要がある理由についてのEricHammondの説明を確認してください。]
関連するAWSの概念に関して誤解があるようです。
Amazon EBSスナップショットは、実際に内部でAmazon Machine Images(AMI)を作成するために使用されますが、手元のユースケースで明示的に操作することはありません。具体的には、 AmazonEBSボリュームのスナップショットを作成してAmazonS3に保存するだけのCreateSnapshotを使用するのではなく、AmazonEBSをサポートする専用アクションCreateImageを介してそのようなAMIを作成するだけです。実行中または停止中のAmazonEBS-backedインスタンスからの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;