Cambio de tamaño de un volumen de Amazon EBS que utiliza un entorno - AWS Cloud9

AWS Cloud9 ya no está disponible para nuevos clientes. Los clientes existentes de AWS Cloud9 pueden seguir utilizando el servicio con normalidad. Más información

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Cambio de tamaño de un volumen de Amazon EBS que utiliza un entorno

En este paso se muestra cómo puede cambiar el tamaño de un volumen de Amazon EBS.

  1. Abra el entorno asociado con la instancia de Amazon EC2 para el volumen de Amazon EBS cuyo tamaño desea cambiar.

  2. En el AWS Cloud9 IDE del entorno, cree un archivo con los siguientes contenidos y, a continuación, guárdelo con la extensión .sh (por ejemplo,resize.sh).

    Nota

    Este script funciona para los volúmenes de Amazon EBS que están conectados a instancias EC2 que se ejecutan, AL2023 Amazon Linux 2, Amazon Linux o Ubuntu Server y está configurado para su uso. IMDSv2

    El script también cambia el tamaño de los volúmenes de Amazon EBS expuestos como dispositivos de NVMe bloques en instancias Nitro basadas en instancias basadas. A fin de obtener una lista de las instancias basadas en el sistema Nitro, consulte Instancias basadas en Nitro en la Guía del usuario de 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. Desde una sesión de terminal en el IDE, cambie al directorio que contiene el archivo resize.sh. A continuación, ejecute uno de los siguientes comandos y sustituya el valor 20 por el tamaño en GiB al que desea cambiar el volumen de Amazon EBS:

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