Ell*_*eny 1 amazon-ec2 amazon-web-services aws-cloudformation
我正在使用 CloudFormation 来定义子网和 EC2 实例。我想为 EC2 实例分配一个特定的私有 IP 地址,并尝试使用资源定义(如下所示)来这样做。
当我尝试部署我的模板时,NetworkInterface 资源的创建失败并显示消息“地址在子网的保留地址范围内”。我试图解决这个问题,但没有取得进展。如何使用可应用于我的 EC2 实例的私有 IP 地址范围来定义我的子网?
谢谢。
注意:整个模板包含其他资源,因此我尝试将其缩减为重要组件,因此以下内容故意不完整。
"SharedVPC": {
"Type": "AWS::EC2::VPC",
"Properties": {
"CidrBlock": "10.10.0.0/16",
"EnableDnsHostnames": true,
"EnableDnsSupport": true,
"InstanceTenancy": "default"
}
},
"SharedVPCPrivateSubnet1": {
"Type": "AWS::EC2::Subnet",
"Properties": {
"AvailabilityZone": "eu-west-1a",
"CidrBlock": "10.10.129.0/24",
"MapPublicIpOnLaunch": false,
"VpcId": {
"Ref": "SharedVPC"
}
}
},
"DbServerEC2Instance": {
"Type": "AWS::EC2::Instance",
"Properties": {
"KeyName": "WindowsEC2",
"InstanceType": "t2.micro",
"AvailabilityZone": "eu-west-1a",
"ImageId": {
"Ref": "DbServerEC2ImageAMI"
},
"IamInstanceProfile": {
"Ref": "EC2InstanceProfile"
},
"NetworkInterfaces": [{
"NetworkInterfaceId": {
"Ref": "DbServerEC2InstanceNetworkInterface"
},
"DeviceIndex" : "0"
}]
}
},
"DbServerEC2InstanceNetworkInterface": {
"Type": "AWS::EC2::NetworkInterface",
"Properties": {
"Description": "eth0",
"PrivateIpAddresses": [{
"PrivateIpAddress": "10.10.129.2",
"Primary": "true"
},
{
"PrivateIpAddress": "10.10.129.3",
"Primary": "false"
}
],
"SourceDestCheck": "true",
"SubnetId": {
"Ref": "SharedVPCPrivateSubnet1"
}
}
}
Run Code Online (Sandbox Code Playgroud)
AWS 保留子网的前 4 个 IP 地址和最后一个 IP。子网内的这些范围不可用。
AWS文档声明如下:
每个子网 CIDR 块中的前四个 IP 地址和最后一个 IP 地址不可供您使用,也不能分配给实例。例如,在具有 CIDR 块的子网中,
10.0.0.0/24保留以下五个 IP 地址:
10.0.0.0: 网络地址。10.0.0.1:AWS 为 VPC 路由器保留。10.0.0.2: 由 AWS 保留。DNS 服务器的 IP 地址是 VPC 网络范围的基础加 2。对于具有多个 CIDR 块的 VPC,DNS 服务器的 IP 地址位于主 CIDR 中。我们还为 VPC 中的所有 CIDR 块保留每个子网范围的基础加上两个。有关更多信息,请参阅 Amazon DNS 服务器。10.0.0.3:AWS 保留以备将来使用。10.0.0.255: 网络广播地址。我们不支持在 VPC 中广播,因此我们保留此地址。
| 归档时间: |
|
| 查看次数: |
417 次 |
| 最近记录: |