2016-07-28 2 views
0

내 Java 코드에서 ec2의 새 인스턴스를 시작해야합니다. 나는 그것을 할 수 있습니다공개 IP로 ec2 인스턴스 시작

RunInstancesRequest runInstancesRequest = new RunInstancesRequest(); 

runInstancesRequest 
    .withImageId(myImageId) 
    .withInstanceType(myInstanceType) 
    .withMinCount(INSTANCES_COUNT) 
    .withMaxCount(INSTANCES_COUNT) 
    .withKeyName(myKeyName) 
    .withSubnetId(mySubnetId) 
    .withSecurityGroupIds(mySecurityGroupId) 
    .withPlacement(myPlace) 
; 

RunInstancesResult runInstancesResult = amazonEC2Client.runInstances(runInstancesRequest); 

그리고 그것은 새로운 인스턴스를 생성합니다. 하지만이 인스턴스에는 빈 필드 "공용 DNS"및 "공용 IP"가 있습니다.

탄성 IP가 필요하지 않습니다. 모든 새 인스턴스에 새 주소가 있으면 괜찮습니다.

내 요청을 어떻게 변경합니까?

답변

1

고마워요! 솔루션을 찾았습니다 :

RunInstancesRequest runInstancesRequest = new RunInstancesRequest(); 

InstanceNetworkInterfaceSpecification interfaceSpecification = new InstanceNetworkInterfaceSpecification() 
    .withSubnetId(mySubnetId) 
    .withAssociatePublicIpAddress(true) 
    .withGroups(mySecurityGroupId) 
    .withDeviceIndex(0); 

runInstancesRequest 
    .withImageId(myImageId) 
    .withInstanceType(myInstanceType) 
    .withMinCount(INSTANCES_COUNT) 
    .withMaxCount(INSTANCES_COUNT) 
    .withKeyName(myKeyName) 
    //.withSubnetId(mySubnetId) 
    //.withSecurityGroupIds(mySecurityGroupId) 
    .withPlacement(myPlace) 
    .withNetworkInterfaces(interfaceSpecification) 
; 

RunInstancesResult runInstancesResult = amazonEC2Client.runInstances(runInstancesRequest); 

"DeviceIndex"가 무엇인지, "0"인지는 모르지만 작동합니다.