Cmdlet:
New-EC2Instance -ImageId ami-abcdefg123 -MinCount 1 -MaxCount 1 -KeyName Keypair `
-SecurityGroupId sg-abcdefg -InstanceType m1.small `
-SubnetId subnet-01bd1e76
如何更改此设置以向该实例添加专用IP地址?此外,我不想给它分配一个公共IP地址。
在实例启动时,应始终为您分配一个专用IP地址。在EC2经典中,每次启动实例时,都会从EC2经典范围中指定该值。在VPC中,此地址是静态的(在停止/启动时不会重置),并且来自您的子网的地址范围。
您可以禁用公共IP分配,但要注意公共IP分配的默认设置:
EC2经典:您的实例接收一个公共IP地址。这种行为无法更改。
默认子网:您的实例默认接收一个公共IP地址,除非在启动期间另行指定,或者修改子网的公共IP地址属性。
非默认子网:您的实例没有接收到公共IP地址默认情况下,除非在启动过程中另行指定,或者修改子网的公共IP地址属性。
由于您在New-EC2Instance
中指定了一个SubnetId,我可以放心地假设您在VPC中工作,并且由于您提出了这个问题,我可以假设VPC默认配置为设置公共IP地址。
在这种情况下,切换公共IP地址的分配与指定New-EC2Instance
的-AssociatePublicIP
参数一样简单。
示例1:只需关闭EC2启动
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
文档:
- 用于PowerShell的AWS工具-新的EC2Instance
- 用于PowerShell的AWS工具-Edit-EC2SubnetAttribute
- AWS用户指南-分配公共IP地址-描述一些默认行为和打开/关闭此功能的选项
- AWS用户指南-VPC中的IP寻址