🌐 Setup de www.igazabon.com

Guia paso a paso — Hosting estatico en AWS con dominio custom y HTTPS

Configurado: 16 de Junio 2026

📋 Contenido

Arquitectura

🏗️ Arquitectura General

Flujo completo

¿Como funciona el sitio?

Usuario escribe www.igazabon.com

DNS (GoDaddy) resuelve a CloudFront

CloudFront sirve con HTTPS desde edge location cercana

Si no tiene cache, busca en S3 bucket (Ohio)

Retorna el HTML al usuario

Diagrama de servicios:

[GoDaddy DNS] → [CloudFront CDN + SSL] → [S3 Bucket - Static Hosting]

[ACM Certificate] → provee HTTPS a CloudFront
Es como tener una bodega (S3) con tus documentos, un servicio de mensajeria express (CloudFront) que los distribuye por todo el mundo, un certificado de seguridad (ACM) que garantiza que nadie los altere en transito, y una direccion postal (DNS/dominio) para que la gente te encuentre.

☁️ Servicios AWS Utilizados

4 servicios
ServicioFuncionCosto
Amazon S3 Almacena los archivos HTML y los sirve como sitio web estatico ~$0.02/mes
Amazon CloudFront CDN que distribuye el contenido globalmente, habilita HTTPS y dominio custom Free tier / ~$0.50/mes
AWS Certificate Manager (ACM) Provee certificado SSL/TLS gratuito para HTTPS Gratis
AWS CloudShell Terminal en la nube para ejecutar comandos AWS CLI sin instalar nada local Gratis

Amazon S3 (Simple Storage Service)

Servicio de almacenamiento de objetos. En nuestro caso, almacena archivos HTML como si fueran objetos en un "bucket" (contenedor). Con la funcion de Static Website Hosting, S3 puede servir estos archivos directamente como paginas web.

Region: us-east-2 (Ohio)
Bucket: igazabon.com
Capacidad: Ilimitada

Amazon CloudFront

Red de distribucion de contenido (CDN) con ~450 ubicaciones globales. Cachea el contenido del bucket S3 en servidores distribuidos por el mundo. Funciones clave para nosotros:

Distribution ID: E2901CBUW7X8O0
Domain: d3o1ldiby0v1xr.cloudfront.net

AWS Certificate Manager (ACM)

Servicio que emite certificados SSL/TLS gratuitos para usar con servicios de AWS. El certificado permite que el navegador muestre el candadito de seguridad (HTTPS). Se valida demostrando que eres dueno del dominio via DNS.

ARN: arn:aws:acm:us-east-1:948512815521:certificate/7c154ee9-39b3-42a9-84d2-aaece32cb4b2
Region: us-east-1 (requerido para CloudFront)

AWS CloudShell

Terminal basada en navegador con AWS CLI preinstalado y autenticado. No requiere instalar nada en tu maquina local. Se accede desde el icono >_ en la barra superior de la consola AWS.

Paso a Paso

1 Crear Bucket S3

S3

¿Que hicimos?

Creamos un bucket llamado igazabon.com para almacenar los archivos HTML del sitio.

Comando:

aws s3 mb s3://igazabon.com

¿Por que el nombre del bucket es el dominio?

Es una convencion. No es obligatorio, pero facilita la organizacion y es requisito si usas S3 website hosting directamente sin CloudFront.

2 Configurar Static Website Hosting

S3

¿Que hicimos?

Activamos la funcionalidad de "Static Website Hosting" en el bucket, indicando que index.html es el documento principal.

Comando:

aws s3 website s3://igazabon.com --index-document index.html --error-document index.html

¿Que hace esto?

Endpoint generado:

http://igazabon.com.s3-website.us-east-2.amazonaws.com

3 Habilitar Acceso Publico

S3

¿Que hicimos?

Dos cosas: desactivamos el "Block Public Access" y agregamos una bucket policy que permite lectura publica.

Comando 1 — Desactivar bloqueo:

aws s3api put-public-access-block --bucket igazabon.com \ --public-access-block-configuration BlockPublicAcls=false,IgnorePublicAcls=false,BlockPublicPolicy=false,RestrictPublicBuckets=false

Comando 2 — Bucket Policy:

aws s3api put-bucket-policy --bucket igazabon.com --policy '{ "Version": "2012-10-17", "Statement": [ { "Sid": "PublicReadGetObject", "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::igazabon.com/*" } ] }'

¿Por que es necesario?

Por defecto, S3 bloquea todo acceso publico (es una medida de seguridad). Como este es un sitio web publico, necesitamos que cualquiera pueda leer los archivos HTML.

Es como tener una tienda con la puerta cerrada con llave. Necesitas abrir la puerta para que los clientes entren y vean tus productos (los reportes).

4 Subir Archivos HTML

S3 + CloudShell

¿Que hicimos?

Subimos los archivos HTML a CloudShell (via "Actions → Upload file") y luego los copiamos al bucket S3.

Comandos:

aws s3 cp index.html s3://igazabon.com/index.html --content-type "text/html" aws s3 cp amazon_analysis_munger.html s3://igazabon.com/amazon_analysis_munger.html --content-type "text/html" aws s3 cp google_analysis_munger.html s3://igazabon.com/google_analysis_munger.html --content-type "text/html" aws s3 cp spacex_analysis_munger.html s3://igazabon.com/spacex_analysis_munger.html --content-type "text/html" aws s3 cp indicadores_financieros_munger.html s3://igazabon.com/indicadores_financieros_munger.html --content-type "text/html"

¿Por que --content-type?

Sin este flag, S3 podria servir los archivos como descarga en vez de renderizarlos como paginas web en el navegador. text/html le dice al navegador que es una pagina web.

Archivos subidos:

ArchivoContenido
index.htmlPagina principal con el indice de reportes
amazon_analysis_munger.htmlAnalisis de Amazon (AMZN)
google_analysis_munger.htmlAnalisis de Alphabet/Google (GOOGL)
spacex_analysis_munger.htmlAnalisis de SpaceX (SPCX)
indicadores_financieros_munger.htmlGuia de 15 indicadores financieros

5 Crear Certificado SSL (ACM)

ACM

¿Que hicimos?

Solicitamos un certificado SSL/TLS gratuito en AWS Certificate Manager para los dominios igazabon.com y *.igazabon.com (wildcard).

Comando:

aws acm request-certificate \ --domain-name igazabon.com \ --subject-alternative-names "*.igazabon.com" \ --validation-method DNS \ --region us-east-1

Detalles importantes:

Resultado:

CertificateArn: arn:aws:acm:us-east-1:948512815521:certificate/7c154ee9-39b3-42a9-84d2-aaece32cb4b2

6 Validar Certificado via DNS

ACM + GoDaddy

¿Que hicimos?

ACM nos dio un registro CNAME que agregamos en GoDaddy para demostrar que somos duenos del dominio.

Comando para obtener el registro:

aws acm describe-certificate \ --certificate-arn arn:aws:acm:us-east-1:948512815521:certificate/7c154ee9-39b3-42a9-84d2-aaece32cb4b2 \ --region us-east-1 \ --query 'Certificate.DomainValidationOptions'

Registro CNAME agregado en GoDaddy:

CampoValor
TypeCNAME
Name_8d918e2a1677fb4cf4b1dcf10b7cea65
Value_70cb27a5de931855e9d00514b8ca2688.jkddzztszm.acm-validations.aws.

Verificacion del estado:

aws acm describe-certificate --certificate-arn arn:aws:acm:us-east-1:948512815521:certificate/7c154ee9-39b3-42a9-84d2-aaece32cb4b2 --region us-east-1 --query 'Certificate.Status' # Resultado: "ISSUED" ✓

El certificado tardo ~10 minutos en validarse despues de agregar el CNAME en GoDaddy.

7 Crear Distribucion CloudFront

CloudFront

¿Que hicimos?

Creamos una distribucion de CloudFront que actua como intermediario entre el usuario y el bucket S3, agregando HTTPS, cache global y dominio custom.

Comando:

aws cloudfront create-distribution --distribution-config '{ "CallerReference": "igazabon-com-2026", "Aliases": { "Quantity": 2, "Items": ["igazabon.com", "www.igazabon.com"] }, "DefaultRootObject": "index.html", "Origins": { "Quantity": 1, "Items": [{ "Id": "S3-igazabon.com", "DomainName": "igazabon.com.s3-website.us-east-2.amazonaws.com", "CustomOriginConfig": { "HTTPPort": 80, "HTTPSPort": 443, "OriginProtocolPolicy": "http-only" } }] }, "DefaultCacheBehavior": { "TargetOriginId": "S3-igazabon.com", "ViewerProtocolPolicy": "redirect-to-https", "AllowedMethods": {"Quantity": 2, "Items": ["GET", "HEAD"]}, "ForwardedValues": {"QueryString": false, "Cookies": {"Forward": "none"}}, "MinTTL": 0, "DefaultTTL": 86400, "MaxTTL": 31536000 }, "ViewerCertificate": { "ACMCertificateArn": "arn:aws:acm:us-east-1:948512815521:certificate/7c154ee9-39b3-42a9-84d2-aaece32cb4b2", "SSLSupportMethod": "sni-only", "MinimumProtocolVersion": "TLSv1.2_2021" }, "Enabled": true, "Comment": "igazabon.com - Reportes de Inversion" }'

Configuracion clave explicada:

ParametroValorQue hace
Aliasesigazabon.com, www.igazabon.comDominios custom que CloudFront acepta
DefaultRootObjectindex.htmlPagina que se muestra al visitar la raiz /
OriginProtocolPolicyhttp-onlyCloudFront se conecta a S3 por HTTP (S3 static hosting no soporta HTTPS)
ViewerProtocolPolicyredirect-to-httpsSi el usuario entra por HTTP, lo redirige a HTTPS
DefaultTTL86400 (24 horas)Tiempo que CloudFront cachea los archivos antes de pedir nuevos a S3
SSLSupportMethodsni-onlyMetodo de HTTPS moderno (gratis, funciona en todos los navegadores actuales)
MinimumProtocolVersionTLSv1.2_2021Solo acepta conexiones seguras modernas

Resultado:

Distribution ID: E2901CBUW7X8O0
CloudFront Domain: d3o1ldiby0v1xr.cloudfront.net
Status: Deployed

8 Configurar DNS en GoDaddy

GoDaddy

¿Que hicimos?

Configuramos dos cosas en GoDaddy para que el dominio apunte a CloudFront:

A. Registro CNAME para www:

TypeNameValueTTL
CNAMEwwwd3o1ldiby0v1xr.cloudfront.net600

Esto hace que www.igazabon.com apunte directamente a la distribucion de CloudFront.

B. Reenvio del root domain:

ConfiguracionValor
TipoReenvio de dominio (Domain Forwarding)
Desdeigazabon.com
Haciahttps://www.igazabon.com
Tipo redirectPermanente (301)

¿Por que no un registro A directo?

GoDaddy no soporta ALIAS/ANAME records para el root domain. Solo permite registros A con IP fija, pero CloudFront usa IPs dinamicas. La solucion es hacer forwarding del root al subdominio www.

Es como tener dos puertas de entrada a tu casa. La puerta principal (igazabon.com) tiene un letrero que dice "use la otra puerta" y te redirige a la puerta lateral (www.igazabon.com) que si esta conectada directamente.
Mantenimiento

🔧 Mantenimiento y Actualizaciones

Comandos utiles

Subir un nuevo reporte:

# 1. Subir archivo a CloudShell (Actions → Upload file) # 2. Copiar al bucket aws s3 cp nuevo_reporte.html s3://igazabon.com/nuevo_reporte.html --content-type "text/html" # 3. Actualizar el index.html con la nueva card aws s3 cp index.html s3://igazabon.com/index.html --content-type "text/html"

Forzar actualizacion de cache:

# Si actualizaste un archivo y no ves los cambios, invalida la cache: aws cloudfront create-invalidation --distribution-id E2901CBUW7X8O0 --paths "/*"

Listar archivos en el bucket:

aws s3 ls s3://igazabon.com/

Eliminar un archivo:

aws s3 rm s3://igazabon.com/archivo_a_borrar.html

Verificar estado de CloudFront:

aws cloudfront get-distribution --id E2901CBUW7X8O0 --query 'Distribution.Status'

Verificar certificado SSL:

aws acm describe-certificate \ --certificate-arn arn:aws:acm:us-east-1:948512815521:certificate/7c154ee9-39b3-42a9-84d2-aaece32cb4b2 \ --region us-east-1 \ --query 'Certificate.Status'

💰 Costos Estimados Mensuales

Muy economico
ServicioConceptoCosto/mes
S3Almacenamiento (~5 archivos HTML, <1MB total)$0.01
S3Requests (GET)$0.01
CloudFrontData transfer (free tier: 1TB/mes primer año)$0.00
ACMCertificado SSL$0.00
GoDaddyDominio igazabon.com (anual prorrateado)~$1.50
TOTAL ESTIMADO~$1.50 - $2.00
Mas barato que un cafe al mes. Y si el trafico es bajo (uso personal), podria ser incluso menos.

📊 Datos de la Configuracion

Referencia rapida
RecursoValor
Dominiowww.igazabon.com
RegistradorGoDaddy
Bucket S3igazabon.com
Region bucketus-east-2 (Ohio)
S3 Endpointhttp://igazabon.com.s3-website.us-east-2.amazonaws.com
CloudFront Distribution IDE2901CBUW7X8O0
CloudFront Domaind3o1ldiby0v1xr.cloudfront.net
ACM Certificate ARNarn:aws:acm:us-east-1:948512815521:certificate/7c154ee9-39b3-42a9-84d2-aaece32cb4b2
AWS Account ID948512815521
Fecha configuracion16 junio 2026