1

cmdlet:

New-EC2Instance -ImageId ami-abcdefg123 -MinCount 1 -MaxCount 1 -KeyName Keypair `
                -SecurityGroupId sg-abcdefg -InstanceType m1.small ` 
                -SubnetId subnet-01bd1e76

如何更改此设置以向此实例添加私有 IP 地址?另外,我不希望为其分配公共 IP 地址。

4

1 回答 1

0

在实例启动时,您应该始终被分配一个私有 IP 地址。在 EC2 经典中,每次启动实例时都会从 EC2-Classic 范围分配。在 VPC 中,此地址是静态的(不会在停止/启动时重置)并且来自您的子网的地址范围。

您可以禁用公共 IP 分配,但请注意公共 IP 分配的默认设置:

EC2-Classic:您的实例接收公共 IP 地址。此行为无法更改。

默认子网:您的实例默认接收一个公有 IP 地址,除非您在启动期间另行指定,或者您修改了子网的公有 IP 地址属性。

非默认子网:默认情况下,您的实例不会收到公有 IP 地址,除非您在启动期间另行指定,或者您修改了子网的公有 IP 地址属性。

由于您在您的文件中指定了 SubnetId,New-EC2Instance我可以放心地假设您在 VPC 中工作,并且由于您提出这个问题,我可以假设 VPC 配置为默认设置公共 IP 地址。

在这种情况下,切换公共 IP 地址的分配就像指定-AssociatePublicIP参数一样简单New-EC2Instance

示例 1:只需在 EC2 Launch 上关闭

New-EC2Instance -ImageId ami-abcdefg123 -MinCount 1 -MaxCount 1 -KeyName Keypair `
                -SecurityGroupId sg-abcdefg -InstanceType m1.small ` 
                -SubnetId subnet-1a2b3c4d -AssociatePublicIP $false

示例 2:在您的子网中的所有新实例上禁用默认公共 IP。在脚本中指定时使用 -Force 以跳过交互式确认。

Edit-EC2SubnetAttribute -MapPublicIpOnLaunch $false -SubnetId subnet-1a2b3c4d -Force

文档:

于 2015-03-28T01:31:49.520 回答