當我在 AWS Backup 中執行 Amazon EC2 還原時,如何變更或保留我的 IP 位址?
我想在 AWS Backup 中還原 Amazon Elastic Compute Cloud (Amazon EC2) 期間變更或保留我的私有或公共 IP 位址。
解決方法
**注意:**如果您在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤訊息,請參閱對 AWS CLI 錯誤進行疑難排解。此外,請確定您使用的是最新的 AWS CLI 版本。
將彈性 IP 位址重新關聯至已還原的 EC2 執行個體
若要把原始彈性 IP 位址重新關聯到已還原的執行個體,您可以使用 Amazon EC2 主控台。
或者,執行以下 associate-address AWS CLI 命令:
aws ec2 associate-address --instance-id i-07ffe74c7330ebf53 --public-ip 198.51.100.20
**注意:**將 instance-id 替換為您的執行個體 ID,並將 public-ip 替換為您的 IP 位址 ID。
在您停止並啟動執行個體後,該執行個體仍會保留彈性 IP 位址。
將私有 IP 位址保留給已還原的 EC2 執行個體
**注意:**如果您將私有 IP 位址用於某個執行個體,則無法將該私有 IP 位址保留給不同的執行個體。如需更多資訊,請參閱特定動作的用戶端錯誤碼資料表中的 Resource.AlreadyAssigned 錯誤。
若要保留私有 IP 位址,請執行以下步驟:
-
執行以下 get-recovery-point-restore-metadata 命令:
aws backup get-recovery-point-restore-metadata --backup-vault-name Default --recovery-point-arn arn:aws:ec2:eu-south-1::image/ami-001a2a3a4a00005aa**注意:**將 backup-vault-name 替換為保存庫名稱,並將 recovery-point-arn 替換為復原點的 Amazon Resource Name (ARN)。
範例輸出:{ "BackupVaultArn": "arn:aws:backup:eu-south-1:111111111111:backup-vault:Default", "RecoveryPointArn": "arn:aws:ec2:eu-south-1::image/ami-001a2a3a4a00005aa", "RestoreMetadata": { "CapacityReservationSpecification": "{\"CapacityReservationPreference\":\"open\"}", "CpuOptions": "{\"CoreCount\":1,\"ThreadsPerCore\":1}", "CreditSpecification": "{\"CpuCredits\":\"standard\"}", "DisableApiTermination": "false", "EbsOptimized": "false", "HibernationOptions": "{\"Configured\":false}", "InstanceInitiatedShutdownBehavior": "stop", "InstanceType": "t2.micro", "Monitoring": "{\"State\":\"disabled\"}", "NetworkInterfaces": "[{\"AssociatePublicIpAddress\":true,\"DeleteOnTermination\":true,\"Description\":\"\",\"DeviceIndex\":0,\"Groups\":[\"sg-abc123\"],\"Ipv6AddressCount\":0,\"Ipv6Addresses\":[],\"NetworkInterfaceId\":\"eni-08e89a5a35a5495fe\",\"PrivateIpAddress\":\"172.16.1.5\",\"PrivateIpAddresses\":[{\"Primary\":true,\"PrivateIpAddress\":\"172.16.1.5\"}],\"SecondaryPrivateIpAddressCount\":0,\"SubnetId\":\"subnet-0987\",\"InterfaceType\":\"interface\",\"Ipv4Prefixes\":[],\"Ipv6Prefixes\":[]}]", "Placement": "{\"AvailabilityZone\":\"eu-south-1b\",\"GroupName\":\"\",\"Tenancy\":\"default\"}", "RequireIMDSv2": "true", "SecurityGroupIds": "[\"sg-abc123\"]", "SubnetId": "subnet-0987", "VpcId": "vpc-0987", "aws:backup:request-id": "caf1f9d4-abcd-4685-87ce-20c96c99c79c" } } -
手動編輯輸出,以保留原始 PrivateIpAddress。或者,在 NetworkInterfaces 中繼資料欄位中,將 Primary PrivateIpAddress 變更為不同的 PrivateIpAddress。
以下範例輸出會保留原始 PrivateIpaddress:{ "Architecture": "x86_64", ... "NetworkInterfaces": "[{\"DeleteOnTermination\":true,\"Description\":\"Primary network interface\",\"DeviceIndex\":0,\"Groups\":[\"sg-abc123\"],\"Ipv6AddressCount\":0,\"Ipv6Addresses\":[],\"PrivateIpAddresses\":[{\"Primary\":true,\"PrivateIpAddress\":\"172.16.1.5\"}],\"SubnetId\":\"subnet-0987\",\"InterfaceType\":\"interface\",\"Ipv4Prefixes\":[],\"Ipv6Prefixes\":[]}]", "Placement": "{\"AvailabilityZone\":\"eu-south-1b\",\"GroupName\":\"\",\"Tenancy\":\"default\"}", "RequireIMDSv2": "false", "RootDeviceType": "ebs", "VirtualizationType": "hvm", "VpcId": "vpc-xyz123", "aws:backup:request-id": "caf1f9d4-abcd-4685-87ce-20c96c99c79c" } -
若要建立指令碼來編輯中繼資料,請執行以下 get-recovery-point-restore-metadata 命令:
aws backup get-recovery-point-restore-metadata --backup-vault-name Default --recovery-point-arn arn:aws:ec2:eu-south-1::image/ami-001a2a3a4a00005aa | jq '.RestoreMetadata | del (.SecurityGroupIds, .SubnetId)' | jq '.NetworkInterfaces = (.NetworkInterfaces | fromjson | map(. + { Description: "Primary network interface" }) | map(del(.NetworkInterfaceId, .SecondaryPrivateIpAddressCount, .AssociatePublicIpAddress, .PrivateIpAddress)) | @json) ' > restore.json**注意:**將 backup-vault-name 替換為保存庫名稱,並將 recovery-point-arn 替換為復原點的 ARN。
-
若要使用私有 IP 位址還原執行個體,請執行 start-restore-job 命令:
aws backup start-restore-job --region eu-south-1 --recovery-point-arn arn:aws:ec2:eu-south-1::image/ami-001a2a3a4a00005aa --idempotency-token examplerestore --iam-role-arn "arn:aws:iam::111111111111:role/service-role/AWSBackupDefaultServiceRole" --metadata file://restore.json**注意:**將 backup-vault-name 替換為保存庫名稱,並將 recovery-point-arn 替換為復原點的 ARN。
相關資訊
相關內容
- 已提問 3 年前
- 已提問 3 年前
- 已提問 3 年前
