簡體   English   中英

使用公共IP啟動EC2實例

[英]Start ec2 instance with public ip

我需要從Java代碼在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。 如果所有新實例都具有新地址,則可以。

那么,如何更改我的要求呢?

謝謝! 我找到了解決方案:

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”,但是它可以工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM