2012-01-21 3 views
14

Java에서 aws-sdk를 사용하여 프로그래밍 방식으로 Amazon 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의 지원 루트 장치와 이미지 작동합니다.

관련 문제