Ir para o conteúdo

Como altero ou retenho meu endereço IP quando executo a restauração do Amazon EC2 no AWS Backup?

3 minuto de leitura
0

Quero alterar ou reter meu endereço IP público ou privado durante uma restauração do Amazon Elastic Compute Cloud (Amazon EC2) no AWS Backup.

Resolução

Observação: se você receber mensagens de erro ao executar comandos da AWS Command Line Interface (AWS CLI), consulte Solução de problemas da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI.

Reassocie seu endereço IP elástico à instância restaurada do EC2

Para reassociar o endereço IP elástico original à instância restaurada, é possível usar o console do Amazon EC2.

Ou execute o seguinte comando associate-address da AWS CLI:

aws ec2 associate-address --instance-id i-07ffe74c7330ebf53 --public-ip 198.51.100.20

Observação: substitua instance-id pelo ID da sua instância e public-ip pelo ID do seu endereço IP.

A instância mantém o endereço IP elástico depois que você interrompe e inicia sua instância.

Retenha um endereço IP privado na instância restaurada do EC2

Observação: se você estiver usando um endereço IP privado em uma instância, não será possível reter o endereço IP privado em outra instância. Para obter mais informações, consulte o erro Resource.AlreadyAssigned na tabela Códigos de erro do cliente para ações específicas.

Para reter um endereço IP privado, conclua as seguintes etapas:

  1. Execute o seguinte comando 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

    Observação: substitua backup-vault-name pelo nome do seu cofre e recovery-point-arn pelo nome do recurso da Amazon (ARN) do seu ponto de recuperação.
    Exemplo de saída:

    {    "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. Edite manualmente a saída para reter o PrivateIpAddress original. Ou altere o PrivateIpAddress primário para um PrivateIpAddress diferente no campo de metadados NetworkInterfaces.
    O exemplo de saída a seguir retém o PrivateIpaddress original:

    {  "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. Para criar um script para editar os metadados, execute o seguinte comando 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

    Observação: substitua backup-vault-name pelo nome do seu cofre e recovery-point-arn pelo ARN do seu ponto de recuperação.

  4. Para restaurar a instância com o endereço IP privado, execute o comando 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

    Observação: substitua backup-vault-name pelo nome do seu cofre e recovery-point-arn pelo ARN do seu ponto de recuperação.

Informações relacionadas

Restaurar uma instância do Amazon EC2

Endereçamento IP de instâncias do Amazon EC2

Como posso restaurar uma instância do Amazon EC2 a partir de um ponto de recuperação do AWS Backup usando a AWS CLI?

AWS OFICIALAtualizada há 8 meses