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.
-
Abra el entorno asociado a la EC2 instancia de Amazon para el volumen de Amazon EBS cuyo tamaño desee cambiar.
-
En el AWS Cloud9 IDE del entorno, cree un archivo con el siguiente contenido 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 EC2 instancias que ejecutan AL2 023, Amazon Linux 2, Amazon Linux o Ubuntu Servidor 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 Nitroinstancias basadas en ellas. Para obtener una lista de instancias basadas en el sistema Nitro, consulte Nitroinstancias basadas en la Guía del EC2 usuario de Amazon.
#!/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
-
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 valor20
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
-