3

プログラムで EC2 インスタンスを取得/デプロイして開始することはできますか? 基本的に、インスタンス タイプの AMI を選択して起動しますか?

メソッドはわかりますStartInstanceが、これはアカウントで既に作成および停止されているインスタンスにのみ適用されます。

http://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_StartInstances.html

基本的に、計算のために複数の EC2 インスタンスを必要とする自動化されたサービスがあるということです。プログラムで新しいインスタンスを作成し、インスタンス タイプを選択して AMI を選択し、それを起動していくつかのデプロイ スクリプトを実行して作業を開始する必要があります。

AWS SDK でこれを行う方法があると思いますが、私はそれを見ていません。

関連する注意事項として、シャットダウン インスタンスをプログラムで破棄できる必要もあります。

4

3 に答える 3

7

はい、可能です。

RunInstances API メソッドを使用します。

アクセス許可を持つ AMI を使用して、指定された数のインスタンスを起動します。

インスタンスを完全に削除するには、TerminateInstanceを使用します。

1 つ以上のインスタンスをシャットダウンします。この操作はべき等です。インスタンスを複数回終了すると、各呼び出しは成功します。

「1 つ以上のインスタンスをシャットダウンします」と表示されているため、この言語は少し混乱していますが、実際には完全に削除されます。

于 2016-02-10T01:25:54.373 に答える
1

あなたはこれを試すことができます..

   AmazonEC2Client amazonEc2client = GetAmazonClient(ConfigurationManager.AppSettings["AwsRegionEndPint"]);
     var launchRequest = new RunInstancesRequest()
                    {
                        ImageId = YOUR IMAGE ID,
                        InstanceType = YOUR INSTANCE TYPE,
                        MinCount = 1,
                        MaxCount = 1,
                        KeyName = your keyPairName,
                        SecurityGroupIds =your  groups,
                        SubnetId = your subnet Id,

                    };
                    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-12T09:56:52.597 に答える