我可以使用AWS Tools for Powershell创建一个新的EC2实例并设置私有IP吗



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寻址

最新更新