Blog de Amazon Web Services (AWS)

Amazon EBS Actualización – Nuevos volúmenes elásticos

Por Jeff Barr, traducido por Fernando Honig

Hoy lanzamos una nueva característica de EBS que llamamos Volúmenes Elásticos y la hacemos disponible para todos los volúmenes EBS de generación actual conectados a las instancias EC2 de generación actual. Ahora puedes aumentar el tamaño del volumen, ajustar el rendimiento o cambiar el tipo de volumen mientras el volumen está en uso. Puedes continuar utilizando tu aplicación mientras el cambio surte efecto.

Esta nueva característica simplificará en gran medida (o incluso eliminará) muchas de tus tareas de planificación, ajuste y gestión del espacio. En lugar de un ciclo de aprovisionamiento tradicional que puede tardar semanas o meses, puedes realizar cambios en tu infraestructura de almacenamiento instantáneamente, con una simple llamada a la API.

Puedes utilizar los siguientes escenarios (y muchos más) utilizando Volúmenes Elásticos:

Cambio de cargas de trabajo: configuraste tu infraestructura con rapidez y utilizaste los volúmenes SSD de uso general para tu almacenamiento en bloques. Después de ganar algo de experiencia, te das cuenta de que los volúmenes optimizados de rendimiento son mejores y simplemente cambias el tipo de volumen.

Pico de Demanda: estás ejecutando una base de datos relacional en un volumen PIOPS que está configurado para manejar una cantidad moderada de tráfico durante el mes, con un aumento de 10 veces en el tráfico durante los últimos tres días de cada mes debido al procesamiento de fin de mes. Puedes utilizar Volúmenes Elásticos para aumentar el aprovisionamiento con el fin de manejar el pico, y luego reducirlo.

Aumentando el almacenamiento: provisionaste un volumen de 100 GiB y se dispara una alarma indicando que ahora está al 90% de su capacidad. Aumentar el tamaño del volumen y ampliar el sistema de archivos para que coincida, sin tiempo de inactividad y de una manera totalmente automatizada.

Usando Volúmenes Elásticos

Puede administrar todo esto desde la Consola AWS, a través de llamadas API o desde la CLI (interfaz de línea de comandos) de AWS.

Para realizar un cambio desde la consola, simplemente selecciona el volumen y elige Modificar volumen en el menú Acción:

A continuación, realiza los cambios deseados en el tipo de volumen, tamaño y IOPS provisto (si procede). Aquí estoy cambiando mi volumen de 75 gb de propósito general (gp2) a un volumen de IOPS de 400 GiB Provisioned, con 20.000 IOPS:

Cuando hago clic en Modificar, confirmo mi intención y presiono Sí:

El estado del volumen refleja el progreso de la operación (modificación, optimización o completado):

El siguiente paso es expandir el sistema de archivos para que pueda aprovechar el espacio de almacenamiento adicional. Para aprender a hacerlo, lee Expandir el espacio de almacenamiento de un volumen EBS en Linux o Expandir el espacio de almacenamiento de un volumen EBS en Windows. Puede expandir el sistema de archivos tan pronto como el estado pase a optimización (normalmente unos segundos después de iniciar la operación). La nueva configuración está en efecto en este punto, aunque la optimización puede continuar hasta 24 horas. La facturación para la nueva configuración comienza tan pronto como el estado se convierte en optimización (no hay cargo por la modificación en sí).

Operaciones Automáticas de Volúmenes Elásticos

Mientras que los cambios manuales están bien, hay un montón de potencial para la automatización. Aquí hay un par de ideas:

Tamaño Correcto: utiliza una alarma CloudWatch para ver un volumen que se está ejecutando en o cerca de su límite IOPS. Inicia un proceso de flujo de trabajo y aprobación que podría proporcionar IOPS adicional o cambiar el tipo de volumen. O bien, publica una métrica de “espacio libre” para CloudWatch y use un proceso de aprobación similar para cambiar el tamaño del volumen y el sistema de archivos.

Reducción de costos: utiliza métricas o tareas programadas para reducir IOPS o para cambiar el tipo de volumen. La semana pasada hablé con un auditor de seguridad en una universidad. Recoge decenas de gigabytes de archivos de registro de todo el campus cada día y los retiene durante 60 días. La mayoría de los archivos nunca se leen, y los que sí, se escanean a un ritmo lento. Podrían abordar este caso de uso creando un nuevo volumen de propósito general cada día, escribiendo los registros a alta velocidad y luego cambiando el tipo a rendimiento optimizado.

Como mencioné anteriormente, es necesario cambiar el tamaño del sistema de archivos para poder acceder al espacio recién provisto en el volumen. Con el fin de mostrar cómo automatizar este proceso, mis colegas construyeron una muestra que utiliza los eventos de CloudWatch, AWS Lambda, EC2 Systems Manager y algunas secuencias de comandos de PowerShell. La regla coincide con el evento modifyVolume emitido por EBS e invoca la función logEvents Lambda:

The function locates the volume, confirms that it is attached to an instance that is managed by EC2 Systems Manager, and then adds a “maintenance tag” to the instance:

def lambda_handler(event, context): volume =(event['resources'][0].split('/')[1]) attach=ec2.describe_volumes(VolumeIds=[volume])['Volumes'][0]['Attachments'] if len(attach)>0: instance = attach[0]['InstanceId'] filter={'key': 'InstanceIds', 'valueSet': [instance]} info = ssm.describe_instance_information(InstanceInformationFilterList=[filter])['InstanceInformationList'] if len(info)>0: ec2.create_tags(Resources=[instance],Tags=[tags]) print (info[0]['PlatformName']+' Instance '+ instance+ ' has been tagged for maintenance' )
 
       

Más adelante (manualmente o según una tarea programada), EC2 Systems Manager se utiliza para ejecutar una secuencia de comandos de PowerShell en todas las instancias que se etiquetan para mantenimiento. El script examina los discos y particiones de la instancia y redimensiona todas las unidades (sistemas de archivos) hasta el tamaño máximo permitido. Aquí hay un modelo del código:

foreach ($DriveLetter in $DriveLetters) {
    $Error.Clear()
        $SizeMax = (Get-PartitionSupportedSize -DriveLetter $DriveLetter).SizeMax
}

Disponible Inmediatamente

¡La función Volúmenes Elásticos está disponible hoy y puedes empezar a usarla ahora mismo!

Para obtener información acerca de algunos casos especiales importantes y algunas limitaciones sobre tipos de instancia, lee Consideraciones al modificar volúmenes de EBS.

— Jeff;