跳至內容

當我在 AWS Backup 中執行 Amazon EC2 還原時,如何變更或保留我的 IP 位址?

2 分的閱讀內容
0

我想在 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 位址,請執行以下步驟:

  1. 執行以下 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"  
        }  
    }
  2. 手動編輯輸出,以保留原始 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"
    }
  3. 若要建立指令碼來編輯中繼資料,請執行以下 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。

  4. 若要使用私有 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。

相關資訊

還原 Amazon EC2 執行個體

Amazon EC2 執行個體 IP 定址

如何使用 AWS CLI 從 AWS Backup 復原點還原 Amazon EC2 執行個體?

AWS 官方已更新 8 個月前