top of page
DelAlmeida

Optimización de Grupos de Instancias Elásticas y Gestión de Datos en AWS con la Consola de Gestión

Actualizado: 4 abr

🚀🔧Despliegue de Grupos Elásticos de Instancias y Gestión de Datos con Amazon Web Services usando la AWS Management Console.


AWS





Mi objetivo es almacenar archivos en la nube utilizando Amazon S3.


Asimismo, pretendo ejecutar una implementación avanzada de grupos de instancias elásticas en la infraestructura de la nube pública de Amazon mediante el uso de EC2. Para llevar a cabo esta tarea, haré uso principalmente de la Consola de Gestión AWS (AWS Management Console) 💻, que facilita la interacción con los servicios más importantes de AWS de manera gráfica a través de un navegador web.


Conexión a la AWS Management Console con las Credenciales de IAM:




El servicio de Gestión de Identidades y Accesos (IAM, por sus siglas en inglés) facilita la configuración de cuentas múltiples asociadas a usuarios de AWS, permitiendo así que diversas personas puedan utilizar las credenciales de su cuenta IAM específica.





Al completar el proceso de inicio de sesión, se concede el acceso a la consola de gestión de AWS (AWS Management Console), como se ilustra en la imagen referida. Dicha consola en línea brinda la capacidad de gestionar los servicios esenciales de AWS.




Usando el Servicio S3 para almacenar Ficheros:


Amazon Simple Storage Service (S3) proporciona una solución de almacenamiento en la nube que imita la organización jerárquica de carpetas y archivos propia de los sistemas de archivos convencionales. Además, cuenta con funciones de duplicación de datos para asegurar la resistencia ante errores.

A continuación, se describe de forma resumida cómo se interactúa habitualmente con S3:

  1º Elige desde la AWS Management Console el Servicio S3:



Aquí encontraremos varios buckets creados en S3 en función de las necesidades.


  • Los buckets van ligados a una región concreta.

  • Los datos (ficheros) almacenados en un bucket se almacenan de forma replicada por tolerancia a fallos y alta disponibilidad.


  2º Crear un carpeta de trabajo dentro del bucket alucloud:



Al seleccionar un bucket específico y acceder a su pestaña de propiedades, se puede configurar y obtener información variada sobre el mismo, incluyendo opciones como el control de versiones, que permite gestionar y recuperar distintas versiones de los objetos almacenados, especialmente útil para revertir borrados accidentales.





3º Subir un fichero al bucket:


4º Propiedades del Bucket:



5º Propiedades del Objeto:


El fichero subido al Bucket S3 llevan asociado una URL para su acceso desde el exterior. Para que este fichero pueda ser accedido desde cualquier punto de Internet se tiene que modificar la lista de control de acceso (ACL) del fichero S3.




Acceder al fichero desde la URL:



Además, se pueden añadir etiquetas para facilitar la agrupación de costos, implementar cifrado predeterminado para seguridad adicional y activar registros de acceso para mantener un historial detallado de quién accede a qué contenido y cuándo.


También es posible habilitar el alojamiento de sitios web estáticos, registrar eventos de acceso con AWS CloudTrail, recibir notificaciones de eventos específicos a través de Amazon SNS, acelerar la transferencia de datos, restringir la eliminación o modificación de objetos  y configurar el bucket para que los costes de descarga recaigan sobre quien realiza la solicitud.



Seguridad y Privacidad de Datos en Amazon S3:


Encriptación y Control de Acceso para Archivos Almacenados en S3

 

Para garantizar la seguridad y privacidad de los datos almacenados en Amazon Simple Storage Service (S3), es crucial implementar la encriptación de datos en reposo y en tránsito.


S3 ofrece encriptación del lado del servidor (SSE) con llaves gestionadas por AWS (SSE-S3), por el cliente (SSE-C), o mediante AWS Key Management Service (SSE-KMS) para una seguridad adicional y control de auditoría.


Además, se puede utilizar políticas de bucket y ACLs (Listas de Control de Acceso) para restringir el acceso a los datos almacenados en S3, asegurando que solo usuarios y servicios autorizados puedan acceder o modificar los archivos.


Combinando la encriptación con políticas de acceso detalladas, se puede lograr un alto nivel de seguridad y privacidad para los datos sensibles almacenados en la nube.

 



Usando los Servicios S3 para servir una Web Estática


Amazon S3 ofrece una función conocida como Alojamiento de Sitios Web Estáticos, la cual te permite utilizar S3 como servidor para páginas web estáticas.

Esto significa que no se admite el uso de lenguajes que requieran interpretación del servidor, como PHP.


Gracias a esta característica, puedes almacenar tu página web estática, incluyendo imágenes, archivos y demás, en un bucket de S3 y posteriormente visitarla mediante un navegador web.


Quiero crear una web sencilla y estática con un fichero index.html que referencie a una imagen para luego subir el fichero al bucket creado:

  1. Crear un Bucket



2. Configuración de bloqueo de acceso publico: Desactivar




3. Introducir una política para permitir el acceso publico al bucket de S3




4. Crear una sencilla web estática




5. Configuración para acceder a la web







6. Acceder a la web






Gestión de Volúmenes con EBS:


El servicio Elastic Block Store (EBS) de AWS facilita la generación de volúmenes dinámicos que se pueden adjuntar a instancias (máquinas virtuales activas), de forma similar a cómo se conectaría un disco duro externo a un ordenador.

Cada volumen EBS está diseñado para vincularse con una única instancia, replicando la exclusividad de conexión que tendría un disco duro físico con un sistema informático.

 

Mi intención es configurar un volumen EBS para asociarlo dinámicamente con una instancia ya operativa, para luego proceder a su formatación y montaje dentro del sistema de archivos, permitiéndome así utilizarlo como un dispositivo de almacenamiento basado en bloques adicional.

Esta acción tiene el potencial de expandir la capacidad de almacenamiento de la instancia al alojar archivos en el volumen EBS, en vez de hacerlo en la partición principal.

 

Además, este método posibilita la transferencia de datos desde un volumen EBS hacia la instancia con la que se ha conectado.


Se pueden visualizar los volúmenes EBS que se han generado accediendo a la sección “Volúmenes” dentro de Elastic Block Store a través de la consola de administración del servicio EC2.



Construir un nuevo volumen de 10 GBytes vacio de tipo Magnetic (standard) en la zona de disponibilidad us-east-1a:





El tipo de volumen, que puede ser de tipo:


• General Purpose SSD (GP2),

• General Purpose SSD (GP3),

• Provisioned IOPS SSD (IO1) [35]

• Provisioned IOPS SSD (IO2)

• Cold HDD (SC1) [48]

• Throughput Optimized HDD (ST1) [48]

• Magnetic (standard)

 












Conectar este volumen a una Maquina Virtual que previamente desplegaremos en la misma zona de disponibilidad en la que fue creado el volumen EBS:









Conectar la Instancia via SSH:

 

| \ |  | ' \/ _` | '  \| |

      |___/_|\__|_|_|\__,_|_|_|_|_|

 

  *** Welcome to the Bitnami package for LAMP 8.3.4-1                   ***

  ***                 https://docs.bitnami.com/aws/                     ***

  *** Bitnami Forums: https://github.com/bitnami/vms/                   ***


bitnami@ip-172-31-8-26:~$ df


Filesystem      1K-blocks    Used Available Use% Mounted on

udev               987712       0    987712   0% /dev

tmpfs              199848     484    199364   1% /run

/dev/nvme0n1p1   10090384 2909576   6667720  31% /

tmpfs              999224       0    999224   0% /dev/shm

tmpfs                5120       0      5120   0% /run/lock

/dev/nvme0n1p15    126678   11816    114862  10% /boot/efi

tmpfs              199844       0    199844   0% /run/user/1000


bitnami@ip-172-31-8-26:~$ lsblk


NAME         MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS

nvme0n1      259:0    0   10G  0 disk

├─nvme0n1p1  259:1    0  9.9G  0 part /

├─nvme0n1p14 259:2    0    3M  0 part

└─nvme0n1p15 259:3    0  124M  0 part /boot/efi

nvme1n1      259:4    0   10G  0 disk

 

  

bitnami@ip-172-31-8-26:~$ sudo fdisk /dev/nvme1n1

 

Welcome to fdisk (util-linux 2.38.1).

Changes will remain in memory only, until you decide to write them.

Be careful before using the write command.

 

Device does not contain a recognized partition table.

Created a new DOS (MBR) disklabel with disk identifier 0x73613ded.

 

Command (m for help): p

Disk /dev/nvme1n1: 10 GiB, 10737418240 bytes, 20971520 sectors

Disk model: Amazon Elastic Block Store

Units: sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 4096 bytes / 4096 bytes

Disklabel type: dos

Disk identifier: 0x73613ded

 

Command (m for help): n

Partition type

   p   primary (0 primary, 0 extended, 4 free)

   e   extended (container for logical partitions)


Select (default p): p

Partition number (1-4, default 1): 1

First sector (2048-20971519, default 2048):

Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-20971519, default 20971519):

 

Created a new partition 1 of type 'Linux' and of size 10 GiB.


Command (m for help): t

Selected partition 1

Hex code or alias (type L to list all): 83

Changed type of partition 'Linux' to 'Linux'.

 

Command (m for help): w

The partition table has been altered.

Calling ioctl() to re-read partition table.

Syncing disks.

 

Formatear la partición con el sistema de archivos ext3 usando la herramienta

mkfs.ext3:

 

bitnami@ip-172-31-8-26:~$ sudo mkfs.ext3 /dev/nvme1n1p1

mke2fs 1.47.0 (5-Feb-2023)

Creating filesystem with 2621184 4k blocks and 655360 inodes

Filesystem UUID: e3710107-6e21-4998-8e9a-467346bf4246

Superblock backups stored on blocks:

        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

 

Allocating group tables: done

Writing inode tables: done

Creating journal (16384 blocks): done

Writing superblocks and filesystem accounting information: done

 

Montamos el disco y ya está disponible para ser utilizado para introducir datos en él. Crearemos una carpeta y le daremos permisos para que el usuario bitnami pueda escribir:

 

bitnami@ip-172-31-8-26:~$ sudo mkdir /mnt/volebs

bitnami@ip-172-31-8-26:~$ sudo mount /dev/nvme1n1p1 /mnt/volebs

bitnami@ip-172-31-8-26:~$ df


Filesystem      1K-blocks    Used Available Use% Mounted on

udev               987712       0    987712   0% /dev

tmpfs              199848     488    199360   1% /run

/dev/nvme0n1p1   10090384 2909584   6667712  31% /

tmpfs              999224       0    999224   0% /dev/shm

tmpfs                5120       0      5120   0% /run/lock

/dev/nvme0n1p15    126678   11816    114862  10% /boot/efi

tmpfs              199844       0    199844   0% /run/user/1000

/dev/nvme1n1p1   10231644      92   9707316   1% /mnt/volebs


bitnami@ip-172-31-8-26:~$ sudo mkdir /mnt/volebs/datos

bitnami@ip-172-31-8-26:~$ sudo chown bitnami:bitnami /mnt/volebs/datos

 

A partir de ese momento, se pueden guardar datos en dicho disco. Por ejemplo, creamos un fichero de texto dentro de ese volumen:

 

bitnami@ip-172-31-8-26:~$ echo "Hola" > /mnt/volebs/datos/hola.txt

 

bitnami@ip-172-31-8-26:~$ cat /mnt/volebs/datos/hola.txt

Hola

bitnami@ip-172-31-8-26:~$ 



Gestión de Snapshots de Volúmenes EBS:


Es posible tomar una instantánea (snapshot) de un volumen EBS, lo cual es útil, por ejemplo, para crear una copia de seguridad que se guarda en Amazon S3.


Este método también se emplea comúnmente para incrementar la capacidad de un volumen o trasladarlo a una nueva zona de disponibilidad, lo que implica hacer una instantánea del volumen existente y a partir de ella generar un nuevo volumen de mayor tamaño, pudiendo ubicarlo opcionalmente en una distinta zona de disponibilidad.


Para ciertos modelos de instancias más recientes, se ofrece la posibilidad de ajustar el tamaño del volumen al vuelo (sin la necesidad de realizar una instantánea previa).

En ambos escenarios, es necesario gestionar el espacio adicional ya sea extendiendo la partición existente o creando una nueva en el área recién ampliada.


Construir un nuevo volumen  de tamaño más grande a partir de la instantánea:

  1. Realizar una instantánea (snapshot) del volumen EBS



2. Snapshots creados en la consola aws donde está la nueva instantánea.



3. Construir un nuevo volumen de tamaño más grande a partir de la instantánea.



4. Conectamos el nuevo volumen a la instancia para verificar su contenido.


5. Desde dentro de la instancia hay que montar la partición del volumen al sistema de archivos.



Optimización de Costos con Amazon EBS:


Uso de Volumenes EBS de Tipo "Cold HDD" para Datos Raramente Accedidos

 

Una estrategia efectiva para optimizar costos al usar Amazon Elastic Block Store (EBS) es seleccionar el tipo de volumen adecuado según el patrón de acceso de los datos.


Por ejemplo, para datos que se acceden raramente, como backups o archivos históricos, se pueden utilizar volúmenes EBS de tipo "Cold HDD" (sc1).


Estos volúmenes están optimizados para casos de uso donde la frecuencia de acceso es baja, pero aún se requiere un gran volumen de almacenamiento.


Al tener un costo por gigabyte más bajo en comparación con otros tipos de EBS, permiten almacenar grandes cantidades de datos a un costo reducido, ideal para datos de larga retención que no requieren acceso de alta velocidad.

 





Creación y Registro de AMIs:


Introducción a las AMIs

Las Amazon Machine Images (AMIs) son esenciales cuando se necesita una configuración de software específica para proyectos determinados. Por ejemplo, para desarrollar un servicio web en Java orientado al tratamiento de imágenes, sería ideal contar con una AMI que incluya Java, un servidor de aplicaciones como Apache Tomcat y herramientas de manipulación gráfica como ImageMagick.


Procedimiento para Crear una AMI:


1. Selección de una AMI Base


El proceso comienza seleccionando una AMI base que se acerque lo más posible a la configuración deseada. En este caso, se optaría por una AMI de 64 bits basada en EBS con Ubuntu 22.04, accesible vía SSH.






2. Despliegue de una Instancia


A continuación, se despliega una instancia del tipo t3.micro, utilizando un par de claves específico y configurándola en la subred predeterminada de un VPC con el grupo de seguridad correspondiente. Se asigna una etiqueta con el nombre deseado para identificarla fácilmente.





3. Configuración e Instalación de Software


Tras conectarse vía SSH a la instancia, se procede a la instalación del software necesario. En este ejemplo, se instala ImageMagick utilizando los comandos sudo apt-get update seguido de sudo apt-get install imagemagick.



4. Creación de la Nueva AMI


Una vez configurada la instancia con el software deseado, el siguiente paso es crear una nueva AMI a partir de esta instancia modificada. Amazon EC2 gestiona este proceso deteniendo el sistema operativo, realizando un snapshot de los volúmenes, creando y registrando la nueva AMI, y finalmente reiniciando la instancia, todo ello sin necesidad de detenerla.






Este proceso no solo facilita la reutilización de configuraciones específicas para futuros proyectos, sino que también permite compartir la AMI con otros usuarios si se considera apropiado, ampliando así la colaboración y eficiencia en la comunidad de Amazon Web Services.



Monitorización y Gestión:


En el mundo de la computación en la nube, la monitorización y gestión de instancias es fundamental para asegurar un rendimiento óptimo y la disponibilidad de servicios. Una herramienta esencial en este ámbito es Amazon CloudWatch, que permite la monitorización detallada de instancias de EC2. Este servicio se puede complementar perfectamente con Amazon SNS (Simple Notification Service), creando un eficaz sistema de alertas que informa sobre el estado de las instancias en tiempo real.

 

Imagina, por ejemplo, poder recibir un aviso por correo electrónico si el uso promedio de CPU de una instancia supera el 70% durante más de 10 minutos.

Esta funcionalidad no solo es imprescindible para mantener el rendimiento, sino que también facilita la toma de decisiones proactivas, como la realización de un escalado vertical para mejorar la capacidad de procesamiento de la instancia.

 

El proceso comienza con:


La creación de un "topic" en Amazon SNS, que servirá como canal para las notificaciones.

A través de unos simples pasos en el servicio Amazon SNS, se establece un mecanismo que, al activarse, enviará automáticamente un mensaje de alerta a tu correo electrónico, manteniéndote informado y permitiéndote reaccionar rápidamente a los cambios en el comportamiento de tu infraestructura en la nube.






 

Esta integración de monitorización y alertas es un ejemplo claro de cómo la tecnología en la nube de Amazon puede ser utilizada para crear un entorno de TI más seguro, estable y eficiente, ofreciendo a los usuarios herramientas para una gestión proactiva de sus recursos.

 



Ejemplos:


Netflix sobre Amazon S3

 

Netflix, uno de los principales servicios de entretenimiento a nivel mundial, confirma que Amazon S3 ha sido fundamental para su éxito. Según Netflix, la capacidad de Amazon S3 para escalar de manera efectiva les ha permitido almacenar y gestionar petabytes de datos de manera segura y con una accesibilidad inigualable. Esta flexibilidad ha sido clave para ofrecer contenido de alta calidad a sus usuarios en todo el mundo.

 

Además, Netflix utiliza AWS prácticamente para todas sus necesidades de computación y almacenamiento, incluyendo bases de datos, análisis, motores de recomendación, transcodificación de video y más. En total, utilizan más de 100,000 instancias de servidor en AWS.


La colaboración entre Amazon EC2 y Amazon S3 ha sido esencial para satisfacer las demandas de capacidad y escalabilidad de Netflix.




 



Airbnb sobre Amazon EC2

Airbnb, la popular plataforma de alojamiento comunitario, confirma que Amazon EC2 ha sido esencial para su éxito. Según Airbnb, usar Amazon EC2 les ha permitido escalar su alojamiento de aplicaciones de manera rápida y eficiente, adaptándose a la demanda fluctuante de sus usuarios sin comprometer el rendimiento.


Esto es fundamental para mantener su plataforma globalmente accesible y eficaz.


Además, Airbnb utiliza Amazon EC2 para ejecutar casi todas sus funciones de computación en la nube. La empresa aprovecha 200 instancias de Amazon EC2 para sus aplicaciones, servidores de caché y búsqueda.





23 visualizaciones0 comentarios

Entradas Recientes

Ver todo

Comentarios


Los comentarios se han desactivado.
bottom of page