![](/img/trans.png)
[英]How to allocate/generate new IP address in ec2 instance in same subnet range?
[英]How do I assign an EC2 instance to a fixed IP address within a subnet?
我正在使用 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"
}
}
}
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
保留。 DNS 服務器的 IP 地址是 VPC 網絡范圍的基礎加 2。 對於具有多個 CIDR 塊的 VPC,DNS 服務器的 IP 地址位於主 CIDR 中。 我們還為 VPC 中的所有 CIDR 塊保留每個子網范圍的基礎加上兩個。 有關更多信息,請參閱 Amazon DNS 服務器。10.0.0.3
:由 AWS 保留以備將來使用。10.0.0.255
:網絡廣播地址。 我們不支持在 VPC 中廣播,因此我們保留此地址。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.