Resumen

El almacenamiento en la nube es un componente fundamental en la arquitectura de cualquier sistema informático moderno. AWS ofrece diversas soluciones de almacenamiento que se adaptan a diferentes necesidades, desde datos temporales de alta velocidad hasta almacenamiento persistente para información crítica. Comprender las diferencias entre estos servicios y sus casos de uso específicos es esencial para optimizar tanto el rendimiento como los costos de nuestras aplicaciones en la nube.

¿Qué es el almacenamiento por bloques en AWS?

El almacenamiento por bloques es uno de los niveles fundamentales de almacenamiento en AWS. Este tipo de almacenamiento divide los archivos en bloques de datos de igual tamaño, cada uno con su propia dirección, lo que permite acceder a ellos de manera independiente. AWS ofrece principalmente dos servicios de almacenamiento por bloques: Instance Store y Elastic Block Store (EBS).

Instance Store: almacenamiento temporal de alto rendimiento

Instance Store es un servicio de almacenamiento volátil o no persistente que proporciona almacenamiento temporal directamente conectado al servidor físico donde se ejecuta nuestra instancia EC2. Este almacenamiento tiene características muy particulares:

  • El medio físico de almacenamiento reside dentro del propio servidor
  • Ofrece un rendimiento extremadamente rápido
  • Es ideal para casos de uso específicos como cachés y buffers
  • Los datos se pierden si la instancia se detiene o elimina

La arquitectura de Instance Store se puede visualizar como un host físico que contiene varias instancias virtuales (máquinas virtuales), cada una con acceso a volúmenes de almacenamiento interno del servidor. Es importante destacar que no todas las instancias EC2 soportan Instance Store, y dependiendo del estado de la instancia (si se detiene, para o hiberna), los datos almacenados se perderán.

Elastic Block Store (EBS): almacenamiento persistente y flexible

A diferencia de Instance Store, EBS ofrece almacenamiento en bloque persistente o durable. Esto significa que los datos permanecen intactos independientemente del estado de la instancia a la que estén asociados. Entre sus características principales encontramos:

  • Persistencia de datos aunque la instancia se detenga o termine
  • Posibilidad de crear snapshots (instantáneas)
  • Automatización mediante Data Lifecycle Manager
  • Cifrado de información utilizando Key Management Service (KMS)
  • Configuración personalizada para el comportamiento del volumen cuando se elimina una instancia
  • Capacidad multi-attach (adjuntar múltiples instancias a un mismo volumen) con ciertas limitaciones:
    • Hasta 16 instancias
    • Solo en volúmenes específicos (IO1 o IO2)
    • Requiere sistema de virtualización Nitro

¿Qué tipos de volúmenes EBS existen y cuáles son sus características?

AWS ofrece una variedad de volúmenes EBS que se adaptan a diferentes necesidades de rendimiento, capacidad y costo. Estos se dividen en dos grandes categorías:

Volúmenes basados en estado sólido (SSD)

Estos volúmenes ofrecen alto rendimiento y baja latencia, ideales para cargas de trabajo intensivas:

  1. Volúmenes de propósito general (GP):

    • GP3: Recomendados para cargas de trabajo transaccionales, escritorios virtuales, bases de datos de tamaño medio y arranque de sistemas operativos.
    • GP2: Similar al GP3 pero con diferentes características de rendimiento.
  2. Volúmenes aprovisionados (PIOPS):

    • IO2 Block Express: Ofrece latencias inferiores a milisegundos y rendimiento sostenido con más de 64,000 IOPS.
    • IO1: Alta durabilidad y rendimiento consistente.

Los tamaños de estos volúmenes varían desde 1 GB hasta 64 TB, dependiendo del tipo específico. Es importante destacar que solo los volúmenes IO1 e IO2 son compatibles con la función multi-attach.

Volúmenes basados en disco duro (HDD)

Estos volúmenes son más económicos y están diseñados para cargas de trabajo que requieren mayor capacidad pero menor rendimiento:

  1. ST1: Optimizado para big data, data warehouses y procesamiento de logs.
  2. SC1: Orientado a almacenamiento de backups o respaldos.

Los volúmenes HDD tienen tamaños que van desde 125 GB hasta 16 TB, con rendimientos máximos de 250-500 MB/s. Estos volúmenes no son compatibles con multi-attach ni recomendables para arrancar sistemas operativos.

¿Cómo elegir el tipo de almacenamiento adecuado para cada caso de uso?

La elección entre Instance Store y EBS, así como entre los diferentes tipos de volúmenes EBS, dependerá de los requisitos específicos de nuestra aplicación:

  • Para rendimiento extremadamente alto sin necesidad de persistencia: Instance Store es la opción ideal, especialmente para cachés temporales o procesamiento de datos que pueden regenerarse.

  • Para datos que requieren persistencia: EBS es la solución adecuada, con diferentes opciones según nuestras necesidades:

    • Aplicaciones críticas con alta demanda de IOPS: volúmenes IO1 o IO2
    • Cargas de trabajo equilibradas: volúmenes GP2 o GP3
    • Almacenamiento masivo de datos con acceso secuencial: volúmenes ST1
    • Archivado de datos con acceso poco frecuente: volúmenes SC1

En el caso de un banco como Nyxia, por ejemplo, podríamos utilizar Instance Store para cachés de sesión o procesamiento temporal de transacciones, mientras que los datos críticos como información de cuentas y transacciones se almacenarían en volúmenes EBS de alto rendimiento como IO2 Block Express para garantizar durabilidad y acceso rápido.

El conocimiento profundo de estos servicios de almacenamiento es fundamental para el examen de certificación de AWS, así que es recomendable estudiar a conciencia las características, limitaciones y casos de uso de cada uno. ¿Qué otros escenarios se te ocurren donde podrías aplicar estos diferentes tipos de almacenamiento?