S3 es la solución de Amazon para tener un “disco duro” en la nube y realizar nuestras copias de seguridad. Al ser un almacenamiento basado en objetos, no es recomendable utilizarlo para servidores de producción. En ese caso, necesitaríamos un almacenamiento basado en bloques. Es decir, en S3 no podemos instalar sistemas operativos o bases de datos, por ejemplo.
S3 es un tipo de almacenamiento durable diseñado con tolerancia a fallos. Amazon garantiza la disponibilidad del servicio S3 en un 99,9% y la durabilidad de los datos en un 99,999999999%.
Los archivos nuevos que subamos estarán disponible inmediatamente pero las actualizaciones o eliminación de los mismos pueden tardar un tiempo.
Podemos acceder a S3 mediante una interfaz WEB desde la consola de Amazon.
Tipos de almacenamiento de S3
- Estandar
- IA – Infrequently accessed: Datos a los que accedemos esporádicamente pero, cuando lo hacemos, requieren una rápida respuesta. Tiene un menor coste que S3 pero las descargas tienen un coste extra.
- RRS – Reduced redundancy Storage (Redundancia reducida): Diseñado con una durabilidad del 99,99%. Se utiliza para almacenar datos poco importantes. Por ejemplo, la previsualización de una imagen. SI se perdiera este archivo, lo podríamos volver a generar con la imagen original.
- Glaciar: Tiene un coste muy bajo. Solamente se utiliza para copias de seguridad. Restaurar un archivo puede tardar entre 3 y 5 horas.
Creación de un contenedor S3
Los contenedores S3 pueden ser considerados como carpetas o directorios cuyo nombre debe ser único en toda la infraestructura S3 de Amazon.
Crear un contenedor es extremadamente fácil. Únicamente tendremos que ir a la consola y seleccionar el servicio S3.
Veremos que podemos almacenar los logs en otro contenedor diferente.
Cada vez que guardamos una nueva versión de un archivo, estamos ocupando espacio adicional (en cada versión) que será facturado.
Podemos cambiar la configuración de nuestro contenedor una vez creado (versionado, permisos, réplica, etc.). Si activamos el versionado, éste será irreversible.
Subir un archivo no tiene más misterio que darle al botón “upload”. Obviamente, podremos configurar permisos de acceso a cada archivo subido.
Haciendo click en Storage, podemos cambiar el tipo de almacenamiento, por ejemplo, a redundancia reducida:
Activar la réplica de un contenedor S3
Las réplicas de contenedores sirven para hacer copias de seguridad de nuestro contenedor origen a otro contenedor destino que puede estar ubicado en otra zona geográfica.
En el siguiente ejemplo, activaremos la réplica de nuestro contenedor que está en Irlanda hacia otro contenedor que está en Oregón (EEUU).
Para activar la réplica es obligatorio activar el versionado tanto en el contenedor origen como en el destino. El versionado no puede ser deshabilitado.
Sólo se replican los objetos nuevos o las nuevas versiones de éstos.
Como vemos, ahora tenemos dos contenedores en nuestra cuenta:
Como solamente se replican los nuevos archivos o sus nuevas versiones, subimos una nueva versión del archivo “test.txt”:
Una observación: Las nuevas versiones de los archivos pueden tener distintas formas de almacenamiento.
Esperamos cinco minutos y vemos que ya se ha replicado el archivo en el contenedor de réplica:
Copias de seguridad con S3
Queremos copiar el directorio /app/puerto53 de nuestro servidor a un bucket S3 que hemos llamado puerto53.com-backup.
Damos por hecho que hemos instalado la línea de comandos de AWS en el servidor que inicia la copia.
Lo haremos de la siguiente manera:
[puerto53@prt53ws1 Backups]$ cat backup.sh
PATH=$PATH:/usr/bin
/usr/bin/aws s3 cp /app/puerto53 s3://puerto53.com-backup/puerto53_$(date +%Y%m%d) --recursive --storage-class STANDARD_IA
[puerto53@prt53ws1 Backups]$
Una vez finalizado el comando, observamos que ya tenemos disponibles los datos en nuestro bucket:
Si el objetivo del contenedor S3 es crear una página WEB con un nombre público en Internet, te interesará saber cómo acceder a él mediante HTTPS.
Replicar un contenedor S3 a otra región
Aunque S3 es un servicio global de almacenamiento que ya copia los objetos en diferentes zonas geográficas, puede que nos interese replicar los datos en lugares más alejados por temas legales, de menor latencia, cambiar el propietario de los datos o configuraciones de cluster, por ejemplo.
Configurar la réplica de un contenedor es muy sencillo:
- Entramos dentro del bucket S3 que nos interese replicar.
- Activamos el versionado, si no lo tenemos habilitado todavía.
- Vamos al menú «Management».
- Entramos en «Replication» y aquí configuramos los datos que nos pide el formulario WEB que, básicamente son:
- Contenedor de destino. Podemos crear uno nuevo si lo deseamos.
- Zona geográfica de destino.
- Si queremos replicar todo el contenedor o sólo una serie de datos concretos.
- El rol que vamos a utilizar para replicar los datos. Podemos crear un rol nuevo si lo necesitamos.
Crear una página WEB estática con Amazon AWS S3
El servicio de Amazon AWS S3 permite crear un contenedor o bucket S3 para que sirva una página WEB estática. Para este ejemplo, primero creo un nuevo contenedor público al que llamaré media.puerto53.com.
A continuación, entramos dentro del contenedor y le indicamos que va a servir una página estática desde el menú propiedades y Static website hosting.
Ahora quiero personalizar el nombre público del servicio a media.puerto53.com. Esto lo hago desde el servicio Route53, creando un nuevo alias que apunte al bucket S3 que acabo de crear, seleccionándolo en la lista del campo Alias Target.
Espero un minuto aproximadamente a que se actualicen los DNSs. Subo una foto al contenedor S3 y pruebo de conectarme a la URL de la foto con el nombre público del contenedor. Como podemos comprobar a continuación, la imagen carga.
Redireccionar un contenedor AWS S3 de HTTP a HTTPS
En el artículo punto anterior explicaba cómo crear un bucket o contenedor S3 para crear una página WEB estática asociada a un nombre público en Internet. Sin embargo, el acceso a través del nombre público lo realizaba mediante HTTP.
Lo que quiero ahora es acceder por HTTPS.
Para este ejemplo, he creado el contenedor público media.puerto53.com, donde subiré contenido multimedia.
que está configurado como sitio WEB de contenido estático.
Hasta aquí, todo igual que en el artículo que mencionaba anteriormente.
El siguiente paso para la transformación de HTTP a HTTPS, es crear un CDN configurada para redireccionar tráfico HTTP a HTTPS.
En el artículo CloudFront – Redes de distribución de contenido (CDN) – Amazon AWS, explico cómo crear CDNs. Para este caso concreto, la he configurado de la siguiente manera:
El certificado SSL hay que crearlo mediante el botón indicado en rojo y, si eliges la verificación mediante correo electrónico, te llegará uno para su aprobación en un minuto. En el artículo Uso de certificados SSL en Amazon AWS explico cómo crear certificados SSL en Amazon AWS.
Una vez aprobado, puedes elegir el certificado SSL en el campo «Custom SSL Certificate».
Como he creado la CDN previamente, he entrado en modo edición para mostrar algunos de los campos elegidos, pero aquí no aparece uno de los más importantes que hay que elegir durante el proceso de creación: La redirección de HTTP a HTTPS.
La creación de la CDN tardará un ratito. Puede que media hora.
Una vez creada, vamos al servicio de AWS Route53 para crear el nombre público en Internet y relacionarlo con el recurso de CDN.
Esperamos un minuto a que se actualicen los DNSs y ya podemos probar el acceso al bucket S3 mediante HTTPS:
Te puede interesar
- EFS (Elastic Filesystem) para compartir filesystems por NFS
- EBS o almacenamiento elástico de bloque para añadir discos persistentes a las instancias EC2
- Ventajas de Gluster Filesystem para crear un cluster activo-activo de filesystems, con réplica de datos, en Linux
- Tutorial de Ceph Filesystem
- Configuración del servicio NFS, paso a paso
Mi pasión por la tecnología me lleva constantemente a explorar las últimas tendencias y aplicaciones, buscando siempre formas de implementar soluciones innovadoras que mejoren la eficiencia. En puerto53.com comparto contenido valioso para ayudar a otros profesionales y entusiastas de la informática a navegar y dominar el complejo mundo de la tecnología. Mi especialidad en Linux RedHat.
Más sobre mí en el este enlace,