2016-07-28 20 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」であるが、それは動作します。

関連する問題