Mover um ambiente e redimensionar ou criptografar volumes do Amazon EBS - AWS Cloud9

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Mover um ambiente e redimensionar ou criptografar volumes do Amazon EBS

Você pode mover um ambiente de AWS Cloud9 desenvolvimento de uma instância do Amazon EC2 para outra. Por exemplo, faça uma das seguintes ações:

  • Transfira um ambiente de uma instância do Amazon EC2 comprometida ou com uma performance inesperada quando comparada a uma instância íntegra.

  • Transfira um ambiente de uma instância mais antiga para uma que tenha as atualizações mais recentes do sistema.

  • Aumente ou reduza os recursos computacionais de uma instância, porque o ambiente está sobrecarregado subutilizado na instância atual.

Você pode fazer o upgrade de uma AMI AWS Cloud9 compatível para outra migrando para um novo ambiente AWS Cloud9 EC2, mantendo os arquivos do projeto. Talvez você queira fazer o upgrade para outra versão da AMI porque:

  • A AMI do ambiente atual foi alcançada end-of-life e não é mais suportada.

  • O pacote que você precisa está desatualizado na AMI atual.

Você também pode redimensionar o volume do Amazon Elastic Block Store (Amazon EBS) associado a uma instância do Amazon EC2 para um ambiente. Por exemplo, faça uma das seguintes ações, ou ambas:

  • Aumente o tamanho de um volume, porque você está ficando sem espaço de armazenamento na instância.

  • Reduza o tamanho de um volume para não pagar por espaço de armazenamento adicional que não estiver usando.

Antes de mover ou redimensionar um ambiente, você pode tentar interromper alguns processos em execução no ambiente ou adicionar um arquivo de troca ele. Para obter mais informações sobre como lidar com pouca memória ou alto uso da CPU, consulte Solução de problemas.

nota

Este tópico descreve apenas como mover um ambiente de uma instância do Amazon EC2 para outra, ou como redimensionar um volume do Amazon EBS. Para redimensionar um ambiente de um de seus próprios servidores, ou para alterar o espaço de armazenamento para um de seus próprios servidores, consulte a documentação do servidor.

Por fim, você pode criptografar os recursos do Amazon EBS para garantir a segurança de uma instância data-at-rest e data-in-transit entre ela e seu armazenamento anexado do EBS.

Mover um ambiente

Antes de iniciar o processo de mudança observe as seguintes condições:

  • Não é possível movimentar um ambiente para uma instância do Amazon EC2 do mesmo tipo. Ao mover, é necessário escolher um tipo de instância do Amazon EC2 diferente para a nova instância.

    Importante

    Se você mover seu ambiente para outro tipo de instância do Amazon EC2, esse tipo de instância também deverá ser suportado pela versão AWS Cloud9 atual. Região da AWS Para verificar os tipos de instância disponíveis em cada região, acesse a página Configure settings (Definir configurações) que é exibida ao criar um ambiente do EC2 com o console. Sua escolha na seção Tipo de instância é determinada pelo Região da AWS que está selecionado no canto superior direito do console.

  • Antes de alterar o tipo de instância, você deve interromper a instância do Amazon EC2 que estiver associada a um ambiente. Enquanto a instância estiver interrompida, você e todos os outros membros não poderão usar o ambiente associado com a instância interrompida.

  • AWS move a instância para um novo hardware, mas o ID da instância não muda.

  • Se a instância estiver sendo executada em uma Amazon VPC e tiver um endereço IPv4 público, AWS liberará o endereço e fornecerá à instância um novo endereço IPv4 público. A instância retém seus endereços IPv4 privados e todos os endereços IP elásticos ou endereços IPv6.

  • Planeje um tempo de inatividade enquanto a instância estiver parada. O processo pode levar vários minutos.

Para mover um ambiente
  1. (Opcional) Se o tipo de instância requer drivers que não estão instalados na instância atual, conecte-se à sua instância e instale os drivers primeiro. Para obter mais informações, consulte Compatibilidade para redimensionamento de instâncias no Guia do usuário do Amazon EC2.

  2. Feche todas as guias do navegador da Web que estiverem exibindo o ambiente atualmente.

    Importante

    Se você não fechar todas as guias do navegador da Web que estão exibindo o ambiente no momento, isso AWS Cloud9 poderá interferir na conclusão desse procedimento. Especificamente, AWS Cloud9 pode tentar, no momento errado durante esse procedimento, reiniciar a instância do Amazon EC2 associada ao ambiente. A instância deve permanecer interrompida até a última etapa nesse procedimento.

  3. Faça login no AWS Management Console, se ainda não estiver conectado, em https://console.aws.amazon.com.

    Recomendamos que você faça login usando credenciais de nível de administrador em seu. Conta da AWS Se você não conseguir fazer isso, verifique com seu Conta da AWS administrador.

  4. Abra o console do Amazon EC2. Para fazer isso, na lista de Services (Serviços), selecione EC2.

  5. Na barra de AWS navegação, escolha o Região da AWS que contém o ambiente que você deseja mover (por exemplo, Leste dos EUA (Ohio)).

  6. No painel de navegação do serviço, expanda Instances (Instâncias) se ainda não estiver expandida e, em seguida, selecione Instances (Instâncias).

  7. Na lista de instâncias, selecione aquela que estiver associada ao ambiente que você quiser mover. Para um ambiente EC2, a instância começa com o aws-cloud9-, seguido pelo nome do ambiente. Por exemplo, se o nome do ambiente for my-demo-environment, o nome da instância começará com aws-cloud9-my-demo-environment.

  8. Se o estado da instância não for interrompido, escolha Ações, Estado da instância, Parar. Quando solicitado, selecione Yes, Stop (Sim, interrompa). Pode demorar alguns minutos para que a instância pare.

  9. Depois que o Instance State (Estado da instância) for interrompido, selecione Actions (Ações), Instance settings (Configurações da instância) e Change Instance Type (Alterar o tipo de instância).

  10. Na caixa de diálogo Change Instance Type (Alterar tipo de instância), escolha o novo Instance Type (Tipo de instância), que você deseja que o ambiente use.

    nota

    Se o tipo de instância desejado não aparece na lista, ele não é compatível com a configuração da instância. Por exemplo, a instância pode não ser compatível devido ao tipo de virtualização.

  11. (Opcional) Se o tipo de instância selecionado oferecer suporte a otimização para EBS, selecione EBS-optimized (Otimizado para EBS) ou cancele a seleção de EBS-optimized (Otimizado para EBS) para desabilitar a otimização para EBS.

    nota

    Se, por padrão, o tipo de instância selecionado for otimizado para EBS, a opção EBS-optimized (Otimizado para EBS) estará selecionada e você não poderá cancelar essa seleção.

  12. Escolha Apply para aceitar as novas configurações.

    nota

    Se você não escolheu um tipo de instância diferente para Instance Type (Tipo de instância) anteriormente neste procedimento, nada acontecerá depois que você selecionar Apply (Aplicar).

  13. Reabra o ambiente. Para ter mais informações, consulte Abrir um ambiente no AWS Cloud9.

Para obter mais informações sobre o procedimento anterior, consulte Alteração do tipo de instância no Guia do usuário do Amazon EC2.

Movendo um ambiente AWS Cloud9 EC2 para uma Amazon Machine Image (AMI) diferente

Este tópico explica como migrar um ambiente AWS Cloud9 EC2 de uma Amazon Linux AMI para outra AWS Cloud9 AMI compatível.

nota

Se você quiser mover seu ambiente para uma nova instância sem atualizar a versão do sistema operacional, consulteMover um ambiente.

Você pode migrar seus dados entre ambientes usando um dos seguintes procedimentos:

Para mover um ambiente baixando o arquivo para uma máquina local
  1. Crie um novo ambiente na mesma zona de disponibilidade com uma imagem base diferente:

    1. Conclua as etapas na Criar um ambiente EC2 seção para criar um novo ambiente.

      nota

      Ao escolher a plataforma, selecione a plataforma para a qual você deseja migrar seu ambiente.

    2. Por padrão, os ambientes são criados com volume de 10 GiB. Se você não tiver espaço suficiente para carregar ou descompactar o arquivo no novo ambiente, conclua as etapas do Redimensionar um volume do Amazon EBS usado por um ambiente procedimento para redimensionar o tamanho do volume do Amazon EBS.

  2. Abra o ambiente que você deseja migrar no AWS Cloud9 IDE.

  3. Depois que o AWS Cloud9 IDE carregar, selecione Arquivo > Baixar projeto no menu para baixar o arquivo com o conteúdo do diretório do projeto do ambiente.

  4. Abra o AWS Cloud9 IDE no novo ambiente.

  5. Escolha Arquivo > Carregar arquivos locais... para fazer o upload do arquivo.

  6. (Opcional) Para fazer backup do .c9 diretório antigo para.c9.backup, no terminal do ambiente, execute o seguinte comando:

    cp .c9 .c9.backup

    Você pode precisar desses arquivos de backup se quiser restaurar os arquivos de configuração posteriormente.

  7. Para descompactar o arquivo, execute o seguinte comando:

    tar xzvf <old_environment_name>.tar.gz -C ~/
  8. Para excluir o arquivo do diretório do projeto, execute o seguinte comando:

    rm <old_environment_name>.tar.gz

    Certifique-se de que o novo ambiente funcione conforme o esperado.

  9. Agora você pode excluir o ambiente antigo.

Para mover um ambiente usando o volume do Amazon EBS

Se você não conseguir baixar o arquivo, ou se o arquivo resultante for muito grande, você pode usar o volume do Amazon EBS para migrar. Além disso, esse método permite copiar arquivos que estão localizados fora do ~/environment diretório.

  1. Feche todas as guias do AWS Cloud9 IDE que estão abertas no ambiente existente.

  2. Conclua as etapas a seguir para interromper a instância existente:

    1. No AWS Cloud9 console, selecione o ambiente para navegar para ver seus detalhes.

    2. Na página Detalhes do ambiente, na guia Instância do EC2, escolha Gerenciar instância do EC2.

    3. No console do EC2, selecione a instância para navegar até os detalhes da instância.

    4. Certifique-se de que o estado da instância esteja definido como Parada. Caso contrário, selecione Parar instância na lista suspensa Estado da instância. Quando solicitado, escolha Parar. Pode demorar alguns minutos para que a instância pare.

  3. Crie um novo ambiente na mesma zona de disponibilidade com uma imagem base diferente:

    1. Conclua as etapas na Criar um ambiente EC2 seção para criar um novo ambiente.

      nota

      Ao escolher a plataforma, selecione a plataforma para a qual você deseja migrar seu ambiente.

    2. Por padrão, os ambientes são criados com volume de 10 GiB. Se você não tiver espaço suficiente para mover arquivos do volume de origem para o novo ambiente, conclua as etapas do Redimensionar um volume do Amazon EBS usado por um ambiente procedimento para redimensionar o tamanho do volume do Amazon EBS.

  4. Conclua as etapas a seguir para separar o volume da instância existente:

    1. Na página de resumo da instância, escolha a guia Armazenamento e selecione o volume. O nome do dispositivo do volume selecionado deve ser o mesmo especificado no nome do dispositivo raiz da seção Detalhes do dispositivo raiz.

    2. Na página de detalhes do volume, escolha Ações > Desanexar volume.

    3. Depois que o volume for desanexado com sucesso, escolha Ações > Anexar volume e, em seguida, localize e selecione a instância do novo ambiente na lista suspensa. O nome da instância do Amazon EC2 que você selecionar deve conter o nome do AWS Cloud9 ambiente prefixado com. aws-cloud9

  5. Abra o AWS Cloud9 IDE no novo ambiente.

  6. Depois que o ambiente for carregado, para identificar o dispositivo do volume recém-conectado, execute o seguinte comando no terminal:

    lsblk

    No exemplo de saída a seguir, a partição nvme0n1 do dispositivo raiz já nvme0n1p1 está montada, portanto, a nvme1n1p1 partição também deve estar montada. O caminho completo para seu dispositivo é/dev/nvme1n1p1:

    Admin:~/environment $ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS nvme0n1 259:0 0 10G 0 disk ├─nvme0n1p1 259:2 0 10G 0 part / ├─nvme0n1p127 259:3 0 1M 0 part └─nvme0n1p128 259:4 0 10M 0 part /boot/efi nvme1n1 259:1 0 10G 0 disk ├─nvme1n1p1 259:5 0 10G 0 part └─nvme1n1p128 259:6 0 1M 0 part
    nota

    A saída varia quando você executa esse comando em seu terminal.

  7. Conclua as seguintes etapas no terminal do ambiente para montar o volume existente:

    1. Para criar um diretório temporário no qual a partição do volume será montada, execute o seguinte comando:

      MOUNT_POINT=$(mktemp -d)
    2. Com base no exemplo de saída do lsblk comando, especifique o seguinte caminho do dispositivo a ser montado:

      MOUNT_DEVICE=/dev/nvme1n1p1
      nota

      A saída varia quando você executa esse comando em seu terminal.

    3. Para montar o volume existente, execute o seguinte comando:

      sudo mount $MOUNT_DEVICE $MOUNT_POINT
    4. Conclua as etapas a seguir para verificar se o volume existente está montado corretamente:

      1. Para garantir que o volume seja incluído na saída, execute o seguinte comando:

        df -h
      2. Para verificar o conteúdo do volume, execute o seguinte comando:

        ls $MOUNT_POINT/home/ec2-user/environment/
  8. (Opcional) Para fazer backup do .c9 diretório antigo para.c9.backup, no terminal do ambiente, execute o seguinte comando:

    cp .c9 .c9.backup

    Você pode precisar desses arquivos de backup se quiser restaurar os arquivos de configuração posteriormente.

  9. Para copiar o ambiente antigo do volume existente, execute o seguinte comando:

    cp -R $MOUNT_POINT/home/ec2-user/environment ~
    nota

    Se necessário, você também pode copiar arquivos ou diretórios fora do diretório do ambiente usando o comando anterior.

    Certifique-se de que o novo ambiente funcione conforme o esperado.

  10. Para desmontar o dispositivo anterior, execute um dos dois comandos a seguir:

    sudo umount $MOUNT_DEVICE
    sudo umount $MOUNT_POINT
  11. Escolha Desanexar volume na lista suspensa Ações para separar o volume que você anexou na Etapa 3.

  12. Agora você pode excluir o ambiente antigo e seu volume.

    nota

    Como o volume não está mais conectado à instância Amazon EC2 do ambiente, você precisará removê-lo manualmente. Você pode fazer isso escolhendo Excluir na página de detalhes do volume.

Redimensionar um volume do Amazon EBS usado por um ambiente

  1. Abra o ambiente associado à instância do Amazon EC2 para o volume do Amazon EBS que você deseja redimensionar.

  2. No AWS Cloud9 IDE do ambiente, crie um arquivo com o conteúdo a seguir e salve o arquivo com a extensão .sh (por exemplo,resize.sh).

    Observação

    Esse script funciona para volumes do Amazon EBS conectados a instâncias do EC2 que executam o AL2023, o Amazon Linux 2, o Amazon Linux ou o Ubuntu Server e estão configurados para usar o IMDSv2.

    O script também redimensiona volumes do Amazon EBS expostos como dispositivos de blocos NVMe em instâncias baseadas em Nitro. Para obter uma lista de instâncias baseadas no sistema Nitro, consulte instâncias Nitro baseadas no Guia do usuário do Amazon EC2.

    #!/bin/bash # Specify the desired volume size in GiB as a command line argument. If not specified, default to 20 GiB. SIZE=${1:-20} # Get the ID of the environment host Amazon EC2 instance. TOKEN=$(curl -s -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 60") INSTANCEID=$(curl -s -H "X-aws-ec2-metadata-token: $TOKEN" -v http://169.254.169.254/latest/meta-data/instance-id 2> /dev/null) REGION=$(curl -s -H "X-aws-ec2-metadata-token: $TOKEN" -v http://169.254.169.254/latest/meta-data/placement/region 2> /dev/null) # Get the ID of the Amazon EBS volume associated with the instance. VOLUMEID=$(aws ec2 describe-instances \ --instance-id $INSTANCEID \ --query "Reservations[0].Instances[0].BlockDeviceMappings[0].Ebs.VolumeId" \ --output text \ --region $REGION) # Resize the EBS volume. aws ec2 modify-volume --volume-id $VOLUMEID --size $SIZE # Wait for the resize to finish. while [ \ "$(aws ec2 describe-volumes-modifications \ --volume-id $VOLUMEID \ --filters Name=modification-state,Values="optimizing","completed" \ --query "length(VolumesModifications)"\ --output text)" != "1" ]; do sleep 1 done # Check if we're on an NVMe filesystem if [[ -e "/dev/xvda" && $(readlink -f /dev/xvda) = "/dev/xvda" ]] then # Rewrite the partition table so that the partition takes up all the space that it can. sudo growpart /dev/xvda 1 # Expand the size of the file system. # Check if we're on AL2 or AL2023 STR=$(cat /etc/os-release) SUBAL2="VERSION_ID=\"2\"" SUBAL2023="VERSION_ID=\"2023\"" if [[ "$STR" == *"$SUBAL2"* || "$STR" == *"$SUBAL2023"* ]] then sudo xfs_growfs -d / else sudo resize2fs /dev/xvda1 fi else # Rewrite the partition table so that the partition takes up all the space that it can. sudo growpart /dev/nvme0n1 1 # Expand the size of the file system. # Check if we're on AL2 or AL2023 STR=$(cat /etc/os-release) SUBAL2="VERSION_ID=\"2\"" SUBAL2023="VERSION_ID=\"2023\"" if [[ "$STR" == *"$SUBAL2"* || "$STR" == *"$SUBAL2023"* ]] then sudo xfs_growfs -d / else sudo resize2fs /dev/nvme0n1p1 fi fi
  3. Em uma sessão de terminal no IDE, mude para o diretório que contém o arquivo resize.sh. Depois, execute o comando a seguir, substituindo 20 pelo tamanho desejado em GiB para o qual redimensionar o volume do Amazon EBS:

    • bash resize.sh 20
    • chmod +x resize.sh ./resize.sh 20

Criptografe volumes do Amazon EBS que usam AWS Cloud9

A criptografia do Amazon EBS criptografa os seguintes dados:

  • Dados em repouso no volume

  • Todos os dados movimentados entre o volume e a instância

  • Todos os snapshots criados com base no volume

  • Todos os volumes criados com base nesses snapshots

Você tem duas opções de criptografia para volumes do Amazon EBS que são usados pelos ambientes de desenvolvimento EC2 do AWS Cloud9 :

  • Criptografia por padrão: você poderá configurar sua Conta da AWS para impor a criptografia das novas cópias de snapshots e volumes do EBS que você criar. Por padrão, a criptografia está habilitada na Região da AWS. Não é possível habilitá-la para snapshots ou volumes individuais nessa região. Além disso, o Amazon EBS criptografa o volume criado ao executar uma instância. Portanto, você deve habilitar essa configuração antes de criar um ambiente do EC2. Para obter mais informações, consulte Criptografia por padrão no Guia do usuário do Amazon EC2.

  • Criptografia de um volume existente do Amazon EBS usado por um ambiente EC2 – Você pode criptografar volumes específicos do Amazon EBS que já foram criados para instâncias do EC2. Essa opção envolve o uso do AWS Key Management Service (AWS KMS) para gerenciar o acesso aos volumes criptografados. Para o procedimento relevante, consulte Criptografar um volume existente do Amazon EBS usado pelo AWS Cloud9.

Importante

Se o seu AWS Cloud9 IDE usa volumes do Amazon EBS que são criptografados por padrão, a função AWS Identity and Access Management vinculada ao serviço AWS Cloud9 requer acesso ao AWS KMS key para esses volumes do EBS. Se o acesso não for fornecido, o AWS Cloud9 IDE poderá falhar na inicialização e a depuração poderá ser difícil.

Para fornecer acesso, adicione a função vinculada ao serviço para AWS Cloud9,AWSServiceRoleForAWSCloud9, à chave KMS usada pelos seus volumes do Amazon EBS. Para obter mais informações sobre essa tarefa, consulte Criar um AWS Cloud9 IDE que usa volumes do Amazon EBS com criptografia padrão em Padrões de AWS orientação prescritiva.

Criptografar um volume existente do Amazon EBS usado pelo AWS Cloud9

Criptografar um volume existente do Amazon EBS envolve o uso AWS KMS para criar uma chave KMS. Depois de criar um snapshot do volume a ser substituído, use a chave KMS para criptografar uma cópia do snapshot.

Em seguida, crie um volume criptografado com esse snapshot. Depois, substitua o volume não criptografado, desanexando-o da instância do EC2 e anexando o volume criptografado.

Por fim, atualize a política de chaves para a chave gerenciada pelo cliente para habilitar o acesso à função de serviço do AWS Cloud9 .

nota

O procedimento a seguir se concentra no uso de uma chave gerenciada pelo cliente para criptografar um volume. Você também pode usar um Chave gerenciada pela AWS formulário AWS service (Serviço da AWS) em sua conta. O alias do Amazon EBS é aws/ebs. Se você escolher essa opção padrão para criptografia, ignore a etapa 1 em que você cria uma chave gerenciada pelo cliente. Ignore também a etapa 8, na qual você atualiza a política de chave. Isso ocorre porque você não pode alterar a política de chaves de um Chave gerenciada pela AWS.

Para criptografar um volume existente do Amazon EBS
  1. No AWS KMS console, crie uma chave KMS simétrica. Para obter mais informações, consulte Creating symmetric CMKs (Criar CMKs simétricas) no Manual do desenvolvedor do AWS Key Management Service .

  2. No console do Amazon EC2, interrompa a instância com Amazon EBS usada pelo ambiente. Você pode interromper uma instância usando o console ou a linha de comando.

  3. No painel de navegação do console do Amazon EC2, escolha Snapshots para criar um snapshot do volume existente que você quer criptografar.

  4. No painel de navegação do console do Amazon EC2, escolha Snapshots para copiar o snapshot. Na caixa de diálogo Copy snapshot (Copiar snapshot), faça o seguinte para habilitar a criptografia:

    • Selecione Encrypt this snapshot (Criptografar este snapshot).

    • Para Master Key (Chave primária), selecione a chave do KMS criada anteriormente. (Se você estiver usando um Chave gerenciada pela AWS, mantenha a configuração (padrão) aws/ebs.)

  5. Criar um novo volume no snapshot local.

    nota

    Os novos volumes do Amazon EBS criados de snapshots criptografados são criptografados automaticamente.

  6. Separe os volumes do Amazon EBS da instância do Amazon EC2.

  7. Anexe o novo volume criptografado à instância do Amazon EC2.

  8. Atualize a política de chaves para a chave KMS usando a visualização AWS Management Console padrão, a visualização AWS Management Console da política ou a AWS KMS API. Adicione as seguintes declarações de política chave para permitir que o AWS Cloud9 serviço,AWSServiceRoleForAWSCloud9, acesse a chave KMS.

    nota

    Se você estiver usando um Chave gerenciada pela AWS, pule esta etapa.

    { "Sid": "Allow use of the key", "Effect": "Allow", "Principal": { "AWS": "arn:{Partition}:iam::{AccountId}:role/aws-service-role/cloud9.amazonaws.com/AWSServiceRoleForAWSCloud9" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*" }, { "Sid": "Allow attachment of persistent resources", "Effect": "Allow", "Principal": { "AWS": "arn:{Partition}:iam::{AccountId}:role/aws-service-role/cloud9.amazonaws.com/AWSServiceRoleForAWSCloud9" }, "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": "*", "Condition": { "Bool": { "kms:GrantIsForAWSResource": "true" } } }
  9. Reinicie a instância do Amazon EC2. Para obter mais informações sobre como reiniciar uma instância do Amazon EC2, consulte Stop and start your instance.