Si alguna vez necesitáis hacer una redirección de un dominio que no tenga un hosting ya creado lo podéis hacer con Amazon S3 fácilmente. Para este ejemplo voy a redireccionar el subdominio aws.rastreador.com.es a la categoría aws de este blog.

Lo primero es crear un bucket en S3 con el nombre del dominio o subdominio, este detalle es importante, no vale cualquier bucket, tiene que tener el mismo nombre del dominio que se va a redireccionar, en este caso aws.rastreador.com.es

crear_bucket

Una vez creado el bucket vamos a propiedades y seleccionamos la opción de Static Website Hosting. Una vez ahí seleccionamos la tercera opción Redirect all requests to another host name e introducimos la url a la que queremos que se haga la redirección.

redireccion

 

Finalmente sólo nos queda generar un registro cname en nuestro DNS que apunte al endpoint que he señalado en rojo en la imagen anterior.

cname_aws

 

Y con esto ya hemos terminado la redirección, para comprobarlo sólo hay que hacer un curl -I aws.rastreador.com.es y vemos que hace una redirección 301 a la url que le hemos indicado.

resultado

 

 

A veces puede ser muy útil asignar a un bucket o a unos ficheros en concreto dentro de un bucket una fecha de caducidad para tener controlado el espacio ocupado, especialmente si hablamos de backups o similar.

Desde la consola web de Amazon S3 se puede asignar esa caducidad muy fácilmente seleccionando el bucket sobre el que queremos trabajar -> propiedades y seleccionando la pestaña lifecycle.

Como podéis ver el funcionamiento es muy intuitivo. Se pulsa en “Add rule” y sencillamente indicamos si lo queremos activo, el nombre de la regla (opcional), el prefijo y la caducidad en días. El dato del prefijo es importante ya que indica sobre qué contenidos se va a aplicar esta regla, si no se indica nada, como en el ejemplo, se aplicará sobre todos los objetos del bucket. Si quisieramos que se aplicara sólo sobre los que están en la carpeta backup se pondría “backup/”, tened cuidado si no ponéis el slash “/” por que si tuvierais algún fichero que contuviera la palabra backup tambien se le aplicaría la regla, p.e.: backup_fotos_importantisimas.zip.

El borrado es diario y totalmente automático así que una vez grabadas las reglas nos podemos olvidar completamente de ese tema.

Si queréis profundizar un poco más en este tema os recomiendo leer la documentación de Amazon: http://docs.amazonwebservices.com/AmazonS3/latest/dev/ObjectExpiration.html

s3cmd es una pequeña aplicación que sirve para interactuar con el servicio de almacenamiento de Amazon, S3. Hace un tiempo ya os había contado cómo realizar backups con s3cmd.

Si utilizas ubuntu o debian, s3cmd está en los repositorios oficiales, pero una versión bastante antigua con muchos fallos. En mi caso el fallo que más me estaba afectando es cuando se se producía timeout hacía que la aplicación se cerrara sin finalizar las tareas, cosa que últimamente se estaba convirtiendo un algo demasiado habitual.

Por suerte el desarrollador de la aplicación ha creado un repositorio donde mantiene actualizadas las versiones estables para debian 5 y 6 y ubuntu 10.04 LTS y superiores. Para actualizar sólo hay que ejecutar los siguientes comandos.

wget -O- -q http://s3tools.org/repo/deb-all/stable/s3tools.key | sudo apt-key add -
sudo wget -O/etc/apt/sources.list.d/s3tools.list http://s3tools.org/repo/deb-all/stable/s3tools.list
sudo apt-get update && sudo apt-get install s3cmd

Fuente: s3tools.org

Amazon S3 es un servicio de almacenamiento masivo de información con unos costes bastante aceptables. Para poder manejarlo hay varias herramientas pero para mi la más cómoda es s3cmd, un sencillo programa en línea de comandos que nos permite manejar nuestra cuenta en S3.

Lo primero es instalarlo, desde debian o ubuntu con un simple
[shell]apt-get install s3cmd[/shell]
lo tenemos listo y si no podéis ir a http://s3tools.org/download y descargarlo desde allí.

Inmediatamente deberíamos configurarlo, para ello hay que ejecutarlo con el parámetro –configure
s3cmd –configure
Lo primero que nos va a pedir el “Access Key” y el “Secret Key” de nuestra cuenta de Amazon. Para obtenerlos debemos ir a la página de Amazon, menú “cuenta” -> “Credenciales de Seguridad”
Después nos pedirá una clave que se utilizará para cifrar todo lo que se suba a Amazon y algunos datos más como la ruta del gpg y datos si estuvieramos detrás de un firewall. Al final del proceso nos crea un fichero .s3cfg en nuestro directorio de usuario.

Los comandos de s3cmd son:

  • Make bucket [shell]s3cmd mb s3://BUCKET[/shell]
  • Remove bucket [shell]s3cmd rb s3://BUCKET[/shell]
  • List objects or buckets [shell]s3cmd ls [s3://BUCKET[/PREFIX]][/shell]
  • List all object in all buckets [shell]s3cmd la[/shell]
  • Put file into bucket [shell]s3cmd put FILE [FILE…] s3://BUCKET[/PREFIX][/shell]
  • Get file from bucket [shell]s3cmd get s3://BUCKET/OBJECT LOCAL_FILE[/shell]
  • Delete file from bucket [shell]s3cmd del s3://BUCKET/OBJECT[/shell]
  • Synchronize a directory tree to S3 [shell]s3cmd sync LOCAL_DIR s3://BUCKET[/PREFIX] or s3://BUCKET[/PREFIX] LOCAL_DIR[/shell]
  • Disk usage by buckets [shell]s3cmd du [s3://BUCKET[/PREFIX]][/shell]
  • Get various information about Buckets or Files [shell]s3cmd info s3://BUCKET[/OBJECT][/shell]
  • Copy object [shell]s3cmd cp s3://BUCKET1/OBJECT1 s3://BUCKET2[/OBJECT2][/shell]
  • Move object [shell]s3cmd mv s3://BUCKET1/OBJECT1 s3://BUCKET2[/OBJECT2][/shell]
  • Modify Access control list for Bucket or Files [shell]s3cmd setacl s3://BUCKET[/OBJECT][/shell]
  • Sign arbitrary string using the secret key [shell]s3cmd sign STRING-TO-SIGN[/shell]
  • Fix invalid file names in a bucket [shell]s3cmd fixbucket s3://BUCKET[/PREFIX][/shell]
  • List CloudFront distribution points [shell]s3cmd cflist[/shell]
  • Display CloudFront distribution point parameters [shell]s3cmd cfinfo [cf language="://DIST_ID"][/cf][/cf][/shell]
  • Create CloudFront distribution point [shell]s3cmd cfcreate s3://BUCKET[/shell]
  • Delete CloudFront distribution point [shell]s3cmd cfdelete cf://DIST_ID[/shell]
  • Change CloudFront distribution point parameters [shell]s3cmd cfmodify cf://DIST_ID[/shell]

Los comandos básicos con ficheros son put para subir todo el contenido al bucket, get para descargarlo y sync para sincronizar los contenidos.
P.E.:
[shell]s3cmd sync –delete-remove –recursive /mi-directorio/datos/ s3://BUCKET/datos-de-mi-directorio/[/shell]