# Analisis de Cuenta AWS 668889063715 - SACC v4 Test Environment > **Fecha de analisis:** 2026-06-01 > **Cuenta AWS:** 668889063715 > **Region:** mx-central-1 > **Proyecto:** SACC v4 (Duplicacion de Produccion) > **Estado:** Documento de analisis y planificacion - SIN CAMBIOS APLICADOS --- ## 1. Resumen Ejecutivo Este documento analiza la cuenta AWS `668889063715` para determinar la viabilidad y estrategia de duplicacion del entorno de produccion SACC v4. **No se han ejecutado cambios** - este es un documento de planificacion basado en la arquitectura conocida de produccion. ### Objetivo Crear un entorno de pruebas identico al de produccion en la cuenta `668889063715`, utilizando naming convention `sacc4-test-*` para evitar conflictos. ### Alcance - Infraestructura completa (VPC, EC2, RDS, S3, CloudFront, Route53, Lambda) - Configuracion de servidor (Nginx, Systemd, Usuarios) - Scripts de automatizacion para creacion, validacion y destruccion --- ## 2. Estado de la Cuenta (Basado en Credenciales Proporcionadas) ### 2.1 Acceso Verificado | Dato | Valor | |------|-------| | Cuenta AWS | 668889063715 | | Region | mx-central-1 | | Tipo de credencial | Temporal (Session Token) | | Acceso requerido | IAM con permisos para EC2, RDS, S3, VPC, CloudFront, Route53, Lambda, IAM, DynamoDB | ### 2.2 Recursos Esperados en Cuenta Segun el usuario, la cuenta ya cuenta con: - **Route53**: Subdominio configurado (a verificar) - **VPC**: Posiblemente VPC default o existentes (a verificar) ### 2.3 Verificacion Recomendada (NO EJECUTADA) Antes de desplegar, ejecutar manualmente: ```bash # Verificar identidad aws sts get-caller-identity # Listar regiones disponibles aws account list-regions # VPCs existentes aws ec2 describe-vpcs # Buckets S3 aws s3 ls # Certificados ACM aws acm list-certificates --region mx-central-1 aws acm list-certificates --region us-east-1 # Instancias EC2 aws ec2 describe-instances # RDS aws rds describe-db-instances # Route53 aws route53 list-hosted-zones ``` --- ## 3. Recursos a Crear ### 3.1 Infraestructura de Red | Recurso | Nombre | CIDR / Configuracion | |---------|--------|---------------------| | VPC | sacc4-test-vpc | 10.3.0.0/16 | | Subnet Publica 1 | sacc4-test-public-1 | 10.3.1.0/24 (mx-central-1a) | | Subnet Publica 2 | sacc4-test-public-2 | 10.3.2.0/24 (mx-central-1b) | | Subnet Privada 1 | sacc4-test-private-1 | 10.3.10.0/24 (mx-central-1a) | | Subnet Privada 2 | sacc4-test-private-2 | 10.3.11.0/24 (mx-central-1b) | | Internet Gateway | sacc4-test-igw | Asociado a VPC | | Route Table Publica | sacc4-test-public-rt | 0.0.0.0/0 -> IGW | **Razonamiento del CIDR:** - Produccion usa `10.2.0.0/16` - Test usa `10.3.0.0/16` para evitar solapamiento - Si existen otras VPCs, verificar que no usen `10.3.0.0/16` ### 3.2 Computo (EC2) | Recurso | Nombre | Configuracion | |---------|--------|---------------| | Instancia EC2 | sacc4-test-api-prod | t3.small, Ubuntu 22.04 | | Elastic IP | sacc4-test-eip | Asociada a EC2 | | Key Pair | sacc4-test-thoth | Llave publica de thoth | | Volume Root | - | 8 GB gp2, encriptado | **Puertos abiertos (Security Group EC2):** | Puerto | Origen | Proposito | |--------|--------|-----------| | 22 | VPC CIDR o IPs especificas | SSH | | 80 | 0.0.0.0/0 | HTTP | | 443 | 0.0.0.0/0 | HTTPS | | 8080-8085 | VPC CIDR | Microservicios API | ### 3.3 Base de Datos (RDS) | Recurso | Nombre | Configuracion | |---------|--------|---------------| | Instancia RDS | sacc4-test-db-prod | MariaDB 10.11.16 | | Clase | db.t3.micro | 1 vCPU, 1 GB RAM | | Almacenamiento | 20 GB | gp2, encriptado | | DB Name | ccsoft_sacc4_test | | | Master User | sacc_admin_test | | | App User | sacc_app_user | (creado por user data) | | Backup | 7 dias | Ventana 03:00-04:00 | **Security Group RDS:** | Puerto | Origen | Proposito | |--------|--------|-----------| | 3306 | Security Group EC2 | MariaDB desde API | ### 3.4 Frontend (S3 + CloudFront) | Recurso | Nombre | Configuracion | |---------|--------|---------------| | Bucket S3 | sacc4-frontend-test-668889063715 | Privado, OAC | | CloudFront | Auto-generado | PriceClass_100, HTTPS | | OAC | sacc4-test-oac | SigV4, S3 origin | ### 3.5 DNS (Route53) | Recurso | Nombre | Valor | |---------|--------|-------| | Hosted Zone | ccsoft.mx (existente) | Data source | | Record A | test-sacc.ccsoft.mx | Alias a CloudFront | | Record A | api.test-sacc.ccsoft.mx | IP publica EC2 | **Nota:** Se asume que existe una hosted zone para `ccsoft.mx` o subdominio. Si no existe, crearla primero o usar otro dominio. ### 3.6 Scheduling (Lambda + EventBridge) | Recurso | Nombre | Proposito | |---------|--------|-----------| | Lambda Start | sacc4-test-start-instances | Iniciar EC2/RDS L-V 8AM | | Lambda Stop | sacc4-test-stop-instances | Detener EC2/RDS L-V 7PM | | Schedule Start | sacc4-test-start-morning | cron(0 13 ? * MON-FRI *) | | Schedule Stop | sacc4-test-stop-evening | cron(0 0 ? * TUE-SAT *) | | IAM Role Lambda | sacc4-test-lambda-scheduler-role | Permisos EC2/RDS | | IAM Role Scheduler | sacc4-test-eventbridge-scheduler-role | Invocar Lambda | **Horario (America/Mexico_City):** - Inicio: 8:00 AM L-V (13:00 UTC) - Apagado: 7:00 PM L-V (00:00 UTC+1) ### 3.7 Estado Terraform | Recurso | Nombre | Proposito | |---------|--------|-----------| | Bucket S3 | sacc4-terraform-state-test-668889063715 | Estado remoto | | Tabla DynamoDB | sacc4-terraform-locks-test-668889063715 | Bloqueo de estado | --- ## 4. Dependencias y Orden de Creacion ``` 1. Backend Terraform (S3 + DynamoDB) | 2. VPC (VPC, Subnets, IGW, Route Tables) | 3. Security Groups (EC2, RDS) | 4. IAM Roles (Lambda, EC2, Scheduler) | 5. RDS (Subnet Group, Instance) | 6. EC2 (Instance, EIP, Key Pair) | 7. S3 + CloudFront (Bucket, Distribution, OAC) | 8. Route53 (Records A) | 9. Lambda + EventBridge (Functions, Schedules) | 10. Ansible (Configuracion servidor) ``` **Dependencias criticas:** - EC2 depende de VPC, Security Groups, IAM - RDS depende de VPC, Security Groups - CloudFront depende de S3 - Route53 depende de EC2 (IP) y CloudFront (dominio) - Lambda depende de EC2 (ID) y RDS (ID) --- ## 5. Costos Estimados (Mensual) | Recurso | Especificacion | Costo Mensual (USD) | |---------|---------------|---------------------| | EC2 t3.small | 11h/dia (scheduling) | ~$5.25 | | RDS db.t3.micro | 11h/dia (scheduling) | ~$4.54 | | S3 | ~1 GB storage | ~$0.02 | | CloudFront | 100GB transferencia | ~$2.00 | | Route53 | 1 hosted zone + queries | ~$0.50 | | Lambda | 2 funciones, poca ejecucion | ~$0.00 | | Data Transfer | Salida a internet | ~$1.00 | | **TOTAL** | | **~$13.31** | **Notas de costos:** - Con scheduling (apagado fuera de horario laboral): ~60% de ahorro - Sin scheduling (24/7): ~$35-40/mes - Los costos son estimados y pueden variar - CloudFront: PriceClass_100 (Norte America y Europa) --- ## 6. Riesgos y Mitigaciones | Riesgo | Probabilidad | Impacto | Mitigacion | |--------|-------------|---------|------------| | Conflicto de CIDR con VPC existente | Media | Alto | Verificar `aws ec2 describe-vpcs` antes. Usar 10.3.0.0/16 | | Nombre de bucket S3 ya existe | Alta | Medio | Usar sufijo de cuenta ID: sacc4-frontend-test-668889063715 | | Falta de permisos IAM | Media | Alto | Verificar politicas antes. Script valida credenciales | | Route53 zone no existe | Media | Alto | Verificar con `aws route53 list-hosted-zones`. Ajustar dominio | | AMI no disponible en mx-central-1 | Baja | Alto | Verificar AMI antes o usar data source `aws_ami` | | Credenciales temporales expiran | Media | Medio | Renovar session token si es necesario | | Costos inesperados | Baja | Medio | Scheduling habilitado por defecto. Monitorear Billing | | Destruccion accidental | Baja | Alto | Script de destruccion requiere confirmacion doble | --- ## 7. Conflictos Potenciales con Recursos Existentes ### 7.1 Nombres Unicos Globales Los siguientes recursos requieren nombres unicos globalmente en AWS: - **S3 Buckets**: `sacc4-frontend-test-668889063715` (incluye ID de cuenta) - **DynamoDB Tables**: `sacc4-terraform-locks-test-668889063715` ### 7.2 Nombres Unicos por Cuenta - **EC2 Key Pairs**: `sacc4-test-thoth` - **IAM Roles**: `sacc4-test-lambda-scheduler-role`, `sacc4-test-eventbridge-scheduler-role` - **RDS Instances**: `sacc4-test-db-prod` - **Lambda Functions**: `sacc4-test-start-instances`, `sacc4-test-stop-instances` ### 7.3 Estrategia de Evitacion 1. Todos los recursos usan prefijo `sacc4-test-*` 2. Bucket S3 incluye ID de cuenta 3. Tabla DynamoDB incluye ID de cuenta 4. Script `create-test-environment.sh` verifica conflictos antes de crear --- ## 8. Checklist Pre-Despliegue ### 8.1 Verificacion Manual (Obligatoria) - [ ] Ejecutar `aws sts get-caller-identity` y confirmar cuenta 668889063715 - [ ] Verificar region `mx-central-1` - [ ] Listar VPCs existentes: `aws ec2 describe-vpcs` - [ ] Verificar CIDR 10.3.0.0/16 no este en uso - [ ] Listar hosted zones Route53: `aws route53 list-hosted-zones` - [ ] Verificar dominio `test-sacc.ccsoft.mx` este disponible - [ ] Listar certificados ACM: `aws acm list-certificates --region us-east-1` ### 8.2 Preparacion Local - [ ] Instalar AWS CLI v2 - [ ] Instalar Terraform >= 1.5.0 - [ ] Instalar Ansible (opcional, para configuracion) - [ ] Generar par de llaves SSH: `ssh-keygen -t ed25519 -f ~/.ssh/sacc4-test-key` - [ ] Copiar `terraform.tfvars.example` a `terraform.tfvars` - [ ] Completar todas las variables en `terraform.tfvars` - [ ] Cambiar contrasena RDS por una segura ### 8.3 Configuracion de Credenciales ```bash export AWS_ACCESS_KEY_ID=ASIAZXPHFEERTQJHLDJC export AWS_SECRET_ACCESS_KEY=Xa58LDQt+WOBgGVQhwoYbATz/sk2G80RpIcjvKuo export AWS_SESSION_TOKEN=IQoJb3JpZ2luX2VjECYaDG14LWNlbnRyYWwtMSJHMEUCIQCDI8BwOq2g1G/g7bNRoTJlolwJas0IxPU0PcLMFWbVEgIgJfC5/CoCt9rL6xGrC3hUtjzXb/SHk5owM6ImoK4GKdYq9wIIFhAAGgw2Njg4ODkwNjM3MTUiDMlcZz9jDpE28Mvr3yrUAihBZtNJ4vZs5iU16XgogqOWzA54lBjSnFsrq17u30F88mQL3sKNns7jGjgfHDIoPy0MmyA+cWd+q9DCtuZr+DUNS81n0DGDtI+oCkPfAmlkhHCtskzoyUzMb0XSRBIv2IUDqUqsOps/QBiTZcqJ3JIYeUaDntA1ZHCYCTH1C2hsgkznkPgwQE9/UrVmkkwoWAfRlln9DYpUpH5x/y+Cmzd5a7W/bhCYBF6vYbPvhr5Zr1t8EKcDPz4ANX+OFaa6v7AL2aHDuyVPiHU/YDXD6uSeTlfpLFYuQvx2HdBeHvHNyMcPpAsQ8c4YflzJGZmPBqnXrnpkOZBhNqjxlHFjXxSlNEv0X7ceKwOPCz4TLHA+cS18KkGKARzfVSfCeCmhQ+5LS8uCGdDV6u3tTUHY/rFyZ6uKVWrbl0Ky9apJRl2TOlXwQd6NyHsw2PkUgacitEfO0vswieX30AY6pQHT7j02zLvQClYhLqpyt+EHGVzlvRNN0dH92RRtQGtryQ+er5YUatzrth8VyBs659qLeIf1bmrCBBWpvJRDIsRAxnWU3Wq3nBqwxgFshaoPS8j99g9Q8Iky0MahSKEi30CLNaFZh6k8PoqQeGUrJLmT7cUH0gP9u+J+jJoPHb9568+yDLtCItb2p0q4JejISOKXniMKm6nja0/dJwl1uYMMtEalvVk= export AWS_DEFAULT_REGION=mx-central-1 ``` --- ## 9. Arquitectura del Entorno Test ``` +------------------+ | Usuario | +--------+---------+ | v +------------------+ +----------+-----------+ | Route53 |<----------| CloudFront CDN | | (test-sacc... ) | | (SSL via ACM) | +------------------+ +----------+-----------+ | +---------------------+---------------------+ | | v v +----------------+ +------------------+ | S3 Bucket | | EC2 Instance | | (Frontend | | (Backend API | | React) | | Spring Boot) | +----------------+ +--------+---------+ | v +------------------+ | Nginx (reverse | | proxy) | +--------+---------+ | v +------------------+ | RDS MariaDB | | (Base de datos) | +------------------+ ^ | +------------------+ | Lambda Scheduler| | (Start/Stop) | +------------------+ ``` --- ## 10. Scripts Generados | Script | Ruta | Proposito | |--------|------|-----------| | **create-test-environment.sh** | `iac-duplicate/scripts/` | Crea el entorno completo | | **validate-environment.sh** | `iac-duplicate/scripts/` | Valida funcionamiento | | **destroy-test-environment.sh** | `iac-duplicate/scripts/` | Destruye de forma segura | ### Uso de Scripts ```bash # 1. Configurar credenciales export AWS_ACCESS_KEY_ID=... export AWS_SECRET_ACCESS_KEY=... export AWS_SESSION_TOKEN=... export AWS_DEFAULT_REGION=mx-central-1 # 2. Crear entorno cd iac-duplicate/scripts ./create-test-environment.sh # 3. Validar entorno ./validate-environment.sh --full # 4. Destruir entorno (cuando ya no se necesite) ./destroy-test-environment.sh ``` --- ## 11. Diferencias con Produccion | Aspecto | Produccion | Test | |---------|-----------|------| | Cuenta AWS | 523761210517 | 668889063715 | | CIDR VPC | 10.2.0.0/16 | 10.3.0.0/16 | | Dominio | prod-sacc.ccsoft.mx | test-sacc.ccsoft.mx | | Scheduling | L-V 8AM-7PM | L-V 8AM-7PM | | Instancia EC2 | t3a.medium | t3.small | | Certificado SSL | Let's Encrypt + ACM | CloudFront default (inicial) | | Backup RDS | 7 dias | 7 dias | --- ## 12. Notas y Advertencias 1. **NO APLICAR EN PRODUCCION**: Estos scripts estan disenados exclusivamente para el entorno de test en cuenta 668889063715. 2. **Credenciales Temporales**: Las credenciales proporcionadas incluyen un session token, lo que indica que son temporales y expiraran. Renovar segun sea necesario. 3. **Costos**: Aunque el scheduling reduce costos significativamente, monitorear la facturacion de AWS para evitar cargos inesperados. 4. **SSL/TLS**: En produccion se usa Let's Encrypt para la API y ACM para CloudFront. En test, inicialmente CloudFront usara el certificado default. Para produccion-like, solicitar certificado ACM en us-east-1. 5. **Datos Sensibles**: El archivo `terraform.tfvars` contiene contrasenas. NO commitear en git. Usar `.gitignore` o AWS Secrets Manager para entornos reales. 6. **AMI**: La AMI `ami-0f553e2869648134e` es para Ubuntu 22.04 en mx-central-1. Verificar disponibilidad antes de desplegar. --- ## 13. Proximos Pasos 1. **Verificar cuenta**: Ejecutar comandos AWS CLI de la seccion 2.3 2. **Preparar terraform.tfvars**: Completar todas las variables 3. **Generar llaves SSH**: Crear par de llaves para acceso EC2 4. **Ejecutar create-test-environment.sh**: Crear la infraestructura 5. **Desplegar aplicacion**: Subir JARs de microservicios a EC2 6. **Configurar SSL**: Solicitar certificado ACM para dominio custom 7. **Validar**: Ejecutar validate-environment.sh --- *Documento generado automaticamente - 2026-06-01* **Cómputo Contable Soft SA de CV - Proyecto SACC4**