Cree un sitio web estático, sencillo y económico, respaldado por CDN, utilizando un único script de AWS CloudFormation. Perfecto para sitios creados utilizando generadores de sitios estáticos, por ejemplo, Gatsby, Hugo, 11ty; aplicaciones React sin estado; o simplemente archivos antiguos de HTML, CSS e imágenes.
Registre un dominio en AWS aquí
Creó una zona alojada para ese dominio en Route53
Cree una nueva pila de CloudFormation utilizando la plantilla simple-static-website.yaml
. Esto DEBE hacerse en us-east-1
debido a limitaciones con CloudFront.
Proporcione los parámetros:
Aprovisione la pila de CloudFormation mediante la consola o con awscli:
aws cloudformation deploy
--stack-name foo
--template-file simple-static-website.yaml
--parameter-overrides
DomainName=example.com
HostedZoneId=ABCDEFGHIJK0123456789
WebsiteName=www
Coloque un archivo index.html simple en el depósito S3 recién creado. Verifique la salida de CloudFormation de la pila para ver un comando awscli de muestra.
Visite su nuevo sitio web en el dominio que proporcionó. Consulte los resultados de CloudFormation para URL.
Recuerde que la CDN de CloudFront almacenará en caché su sitio web en varias ubicaciones alrededor del mundo. Si cambia su sitio, tendrá que invalidar el caché. Se aplican cargos, pero en general se trata de una configuración extremadamente económica porque no ejecuta ningún servidor.
Este script se inspiró en la excelente publicación del blog de Alain Seng, así como en el resultado de mis sitios existentes aprovisionados manualmente ejecutados a través de la ahora desaparecida plantilla CloudFormer de Amazon. CloudFormer es una herramienta excelente, sin embargo, Amazon la ha ocultado debajo de la alfombra debido al creciente número de CVE a los que la solución dejaba abiertos a los usuarios. Hay un buen artículo de karimelmel sobre esto aquí. Gracias a eisenhowerj por mejorar mi script de CloudFormation y agregar nuevas funciones.