2012-01-21 28 views
14

Javaでaws-sdkを使用して、アマゾンEC2インスタンスをプログラムで起動および停止するにはどうすればよいですか?JavaでAmazon EC2インスタンスをプログラムで起動および停止する方法

私はこれを整理しようとしている間、私は一日を過ごしたので、どんな助力も非常に高く評価されます。

+0

作成方法は次のとおりです。 http://stackoverflow.com/a/6504009/477878 –

+0

私たちは作成に興味がなく、既存のインスタンスを開始/停止します。だから違いがある – diya

答えて

8

最近この機能をBamboo AWS Pluginに実装しました。オープンソースでcode is available on Bitbucketの場合は、EC2Task.javaのインスタンスを起動/停止/再起動する方法の完全な例を見つけることができます(実際に別のクラスにする必要があります...)。

幸い、これはまったく複雑ではありません、例えば、インスタンスがそのように起動することができます。

private String startInstance(final String instanceId, AmazonEC2 ec2, final BuildLogger buildLogger) 
     throws AmazonServiceException, AmazonClientException, InterruptedException 
{ 
    StartInstancesRequest startRequest = new StartInstancesRequest().withInstanceIds(instanceId); 
    StartInstancesResult startResult = ec2.startInstances(startRequest); 
    List<InstanceStateChange> stateChangeList = startResult.getStartingInstances(); 
    buildLogger.addBuildLogEntry("Starting instance '" + instanceId + "':"); 

    // Wait for the instance to be started 
    return waitForTransitionCompletion(stateChangeList, "running", ec2, instanceId, buildLogger); } 

BuildLoggerは竹特有のものであり、waitForTransitionCompletion()は、プロセス/結果に戻って報告するための実装固有のヘルパーです。 AmazonEC2 ec2パラメータは、具体的には、(他の多くの中で)関連するすべてのメソッドを定義AmazonEC2インターフェースによってAmazonEC2Clientオブジェクトへの参照を渡し:

6

すでにAWS APIを使用している場合は、AmazonEC2Clientオブジェクトで簡単に呼び出されます。また、あなたが開始/停止機構を知ることがあり、次の方法に

を使用のみ EBSに裏打ちされたルートデバイスとのイメージのために動作します。

関連する問題