在 AWS Backup 中运行 Amazon EC2 恢复操作时,如何更改或保留我的 IP 地址?
在 AWS Backup 中恢复 Amazon Elastic Compute Cloud (Amazon EC2) 期间,我想更改或保留我的私有或公有 IP 地址。
解决方法
**注意:**如果您在运行 AWS 命令行界面 (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 地址。
保留已恢复的 EC2 实例的私有 IP 地址
**注意:**如果您为实例使用私有 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 资源名称 (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。
相关信息
相关内容
AWS 官方已更新 9 个月前