Este tutorial te guiará a través de los pasos para configurar tu frontend de React en Amazon S3 y distribuirlo con Amazon CloudFront.
Paso 1: Preparar tu proyecto de React
Asegúrate de que tu proyecto de React esté listo para producción ejecutando el siguiente comando en la terminal:
yarn build
Esto creará una carpeta build
en tu proyecto que contendrá los archivos estáticos de tu aplicación.
Paso 2: Crear un Bucket en Amazon S3
- Inicia sesión en la consola de administración de AWS y navega al servicio Amazon S3.
- Haz clic en “Create bucket” (Crear bucket).
- Proporciona un nombre único para tu bucket. Recuerda que este nombre debe ser único globalmente.
- Desactiva la opción “Block all public access” y acepta el aviso sobre hacer tu bucket público.
- Deja las demás configuraciones con sus valores predeterminados y haz clic en “Create bucket” (Crear bucket).
Paso 3: Configurar el Bucket para alojar un sitio web
- En tu nuevo bucket, ve a la pestaña “Properties” (Propiedades).
- Busca la sección “Static website hosting” (Alojamiento de sitio web estático) y haz clic en “Edit” (Editar).
- Selecciona “Enable” (Habilitar) y luego indica el nombre del archivo de entrada de tu aplicación, generalmente
index.html
. - En “Error document”, también ingresa
index.html
. - Guarda los cambios.
Esta configuración asegura que, en caso de que S3 encuentre un error al intentar acceder a una ruta específica que no corresponde a un archivo físico, siempre servirá el archivo index.html
. Esto permite que React Router maneje correctamente todas las rutas de la aplicación, incluso aquellas que no corresponden a archivos físicos en el bucket de S3.
Paso 4: Subir los archivos de tu proyecto
- Ve a la pestaña “Objects” de tu bucket.
- Haz clic en “Upload” (Cargar) y luego arrastra y suelta los archivos y carpetas de la carpeta
build
de tu proyecto React. - Completa el proceso de carga.
Paso 5: Hacer el contenido del Bucket público
- Ve a la pestaña “Permissions” (Permisos) del bucket.
- Edita la política del bucket agregando una política que permita el acceso público a los archivos. Aquí tienes un ejemplo de política:
{
"Version": "2012-10-17",
"Statement": [{
"Sid": "PublicReadGetObject",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::tu-bucket-name/*"
}]
}
- Reemplaza
tu-bucket-name
con el nombre de tu bucket. - Guarda los cambios.
Paso 6: Crear una distribución de CloudFront
- Ve al servicio Amazon CloudFront.
- Haz clic en “Create distribution” (Crear distribución).
- En la sección “Origin settings” (Configuración de origen), selecciona el bucket de S3 que creaste como el origen.
- Deja las configuraciones predeterminadas o ajústalas según tus necesidades específicas (por ejemplo, configuraciones de SSL/TLS).
- Haz clic en “Create distribution” (Crear distribución).
Paso 7: Configurar el dominio (opcional)
Si tienes un dominio personalizado que deseas utilizar, puedes configurar CloudFront para usar ese dominio y actualizar los registros DNS en tu proveedor de dominio para apuntar al dominio proporcionado por CloudFront.