< E-Valua - Software artisans for insurance companies

Desplegando sitios web estáticos con CloudFront

En este post vamos a aprender cómo desplegar una web estática usando dos servicios de Amazon Web Service (en adelante AWS).

¿Qué es CloudFront?

Amazon CloudFront es un servicio rápido de red de entrega de contenido (CDN) con baja latencia, altas velocidades de transferencia y dentro de un entorno fácil para desarrolladores.

¿Qué es Amazon S3?

Amazon S3 o Amazon Simple Storage Service es un "servicio de almacenamiento simple" ofrecido por Amazon Web Services (AWS) que proporciona almacenamiento de objetos a través de una interfaz de servicio web. Está diseñado para facilitar a los desarrolladores recursos de computación escalables basados en Web.

Una vez que tenemos una visión general de los dos servicios principales de AWS que vamos a usar, ya podemos empezar a desplegar nuestro sitio web estático.

Configuración de AWS Cli

Vamos a partir de la base que tenemos configurado correctamente AWS Command Line Interface (AWS CLI). Si no es así, este tutorial nos puede ayudar: https://docs.aws.amazon.com/es_es/cli/latest/userguide/cli-chap-configure.html

Creación de un bucket S3

En Amazon S3 almacenaremos los archivos de nuestro sitio estático: HTML, CSS, JS, imágenes, videos, etc.

S3 necesita que crees un bucket, que actúe como un directorio, es aquí donde almacenaremos nuestros archivos del sitio estático.

Ejecute los siguientes comandos en su terminal:

aws s3 mb s3://test-static.com
aws s3 website s3:7/test-static.com --index-document index.html --error-document error.html

Estos dos comandos crearán un bucket llamado test-static.com y además le dirán a S3 que trate el bucket como un sitio web estático, renderizando index.html cuando el usuario visite la URL raíz, y mostrando error.html cuando el usuario intenta visitar una página que no existe.

Desplega tu sitio web

El siguiente paso es subir los archivos estáticos de la web en el bucket recién creado.

aws s3 sync --acl public-read --sse --delete /path/static/site/ s3: //test-static.com

El comando anterior mueve todos los ficheros de nuestro sitio estático alojados en el path (/path/static/site) al bucket test-static.com. La opción de lectura pública –acl le dice a Amazon que se asegure de que todos los archivos que cargue se puedan leer públicamente. Las opciones –sse le indican a Amazon que almacene estos archivos cifrados (más información: https://docs.aws.amazon.com/es_es/AmazonS3/latest/dev/UsingServerSideEncryption.html). La opción –delete permite eliminar todos los archivos del bucket que no existan en su carpeta local.

Cuando se complete este paso, tendremos un sitio web funcional que podemos probar visitando la URL que Amazon S3 nos haya dado para el bucket. Por ejemplo: http://test-static.com.s3-website-us-east-1.amazonaws.com

Configuración de CloudFront

En este paso vamos a configurar el servicio Amazon CloudFront que en realidad es un servicio CDN que ofrece Amazon. De esta manera cuando los usuarios visiten nuestro sitio web, en realidad visitarán una copia en caché que CloudFront almacena en varios centros de datos en todo el mundo.

CloudFront también puede comprimir las páginas web para minimizar la transferencia de ancho de banda.

Empezaremos visitando el panel de CloudFront, hacemos clic en Create Distribution y después en el botón Get Started en la sección Web (nos aseguramos de no seleccionar RTMP).

A continuación aparecerá el siguiente formulario:

Rellenaremos el formulario, los datos más importantes son:

Ya tenemos creada nuestra distribución en CloudFront. Debemos esperar unos 15 minutos para que se despliegue en todos los centros de datos de AWS.

Una vez que nos indique que esta operación ha finalizado podemos ver nuestro sitio web estático a través del CDN de CloudFront copiando la URL de la columna Origin en el panel de CloudFront. Esta es la dirección pública de CloudFront para nuestro sitio web.