Skip to content
English
On this page

Estructura del Ejercicio de Streaming

streaming-exercise/
├── backend/
│   ├── src/
│   │   ├── server.js             # Servidor principal
│   │   ├── routes/
│   │   │   ├── auth.js           # Rutas de autenticación
│   │   │   └── media.js          # Rutas de streaming
│   │   └── middleware/
│   │       └── auth.js           # Middleware de autenticación
│   ├── package.json
│   └── Dockerfile                # Dockerfile para el backend

├── frontend/
│   ├── src/
│   │   ├── components/
│   │   │   ├── VideoPlayer.js    # Componente de reproductor
│   │   │   └── Auth.js          # Componentes de autenticación
│   │   └── services/
│   │       ├── auth.js          # Integración con Cognito
│   │       └── media.js         # Integración con MediaStore
│   ├── package.json
│   └── Dockerfile               # Dockerfile para el frontend

├── infrastructure/
│   ├── networking/              # Configuración de red
│   │   ├── vpc.sh              # Script para crear VPC
│   │   └── subnets.sh          # Script para crear subredes
│   │
│   ├── ecs/                    # Configuración de ECS
│   │   ├── cluster.sh          # Script para crear cluster
│   │   ├── task-definition.json
│   │   └── service.sh
│   │
│   ├── security/               # Configuración de seguridad
│   │   ├── cognito/
│   │   │   ├── user-pool.sh
│   │   │   └── app-client.sh
│   │   └── waf/
│   │       ├── web-acl.sh
│   │       └── rules.json
│   │
│   └── mediastore/            # Configuración de MediaStore
│       ├── container.sh
│       ├── policy.json
│       └── cors-policy.json

├── scripts/                   # Scripts de utilidad
│   ├── deploy.sh             # Script principal de despliegue
│   ├── cleanup.sh            # Script de limpieza
│   └── verify.sh             # Script de verificación

├── monitoring/               # Configuración de monitoreo
│   ├── dashboard.json       # Dashboard de CloudWatch
│   └── alarms.json          # Configuración de alarmas

├── tests/                   # Scripts de prueba
│   └── integration_test.py  # Pruebas de integración

└── README.md               # Documentación principal

Estructura de Archivos Clave

1. Archivos de Infraestructura

bash
infrastructure/
├── networking/vpc.sh
# Contiene:
# - Creación de VPC
# - Creación de subredes
# - Configuración de rutas

infrastructure/ecs/task-definition.json
# Contiene:
# - Definición de tarea ECS
# - Configuración de contenedor
# - Configuración de logs

2. Archivos de Seguridad

bash
infrastructure/security/
├── cognito/user-pool.sh
# Contiene:
# - Configuración de User Pool
# - Políticas de contraseña
# - Configuración de App Client

infrastructure/security/waf/rules.json
# Contiene:
# - Reglas de rate limiting
# - Protección SQL injection
# - Configuración de logging

3. Archivos de Aplicación

bash
backend/src/server.js
# Contiene:
# - Configuración de Express
# - Middleware de seguridad
# - Rutas de API

frontend/src/components/VideoPlayer.js
# Contiene:
# - Integración con HLS.js
# - Manejo de streaming
# - UI del reproductor

Flujo de Implementación

  1. Networking

    bash
    cd infrastructure/networking
    ./vpc.sh
    ./subnets.sh
  2. Seguridad

    bash
    cd infrastructure/security
    ./cognito/user-pool.sh
    ./waf/web-acl.sh
  3. ECS

    bash
    cd infrastructure/ecs
    ./cluster.sh
    ./service.sh
  4. MediaStore

    bash
    cd infrastructure/mediastore
    ./container.sh
  5. Aplicación

    bash
    cd scripts
    ./deploy.sh

Verificación

  1. Infraestructura

    bash
    cd scripts
    ./verify.sh infrastructure
  2. Seguridad

    bash
    ./verify.sh security
  3. Aplicación

    bash
    ./verify.sh application

Limpieza

bash
cd scripts
./cleanup.sh

Notas Importantes

  1. Mantener las credenciales fuera del control de versiones
  2. Seguir el orden de implementación
  3. Verificar cada paso antes de continuar
  4. Mantener los logs para troubleshooting

Uso del Ejercicio

  1. Clonar el repositorio
  2. Configurar las variables de entorno en un archivo .env
  3. Seguir el flujo de implementación
  4. Ejecutar las verificaciones
  5. Realizar las pruebas de integración

Para comenzar con el ejercicio:

  1. Crea la estructura de directorios:
bash
mkdir -p streaming-exercise/{backend/{src/{routes,middleware},infrastructure/{networking,ecs,security/{cognito,waf},mediastore},scripts,monitoring,tests}
  1. Copia los archivos de configuración en las ubicaciones correspondientes

  2. Sigue el flujo de implementación paso a paso

  3. Utiliza los scripts de verificación para validar cada paso