Noticias

AWS Emulator: Amazon libera gratis una copia local de más de 200 servicios de AWS, escrita por completo por agentes de IA

7 min de lectura

AWS lanzó el 11 de noviembre AWS Emulator, un programa gratuito que imita más de 200 servicios de su nube en tu propia computadora, en un servidor de desarrollo o en tus pruebas de integración continua (CI), sin conexión a internet y sin cuenta de AWS. Tu código cree que habla con S3, DynamoDB o Lambda, pero las llamadas nunca salen de la máquina. Lo llamativo es quién lo hizo: según Matt Goldberg, el ingeniero que encabeza el proyecto, el código lo escribieron por completo agentes de IA, y su equipo no escribió ni revisó una sola línea.

Probar código que usa la nube de AWS siempre ha sido incómodo: o se crean recursos reales, que tardan y cuestan, o se escriben mocks a mano que se alejan del comportamiento real. Con los agentes de programación el problema creció, porque revisan su trabajo ejecutando el código una y otra vez, y cada vuelta contra la nube suma espera y dinero. La alternativa más usada, LocalStack, cambió las reglas este año: desde marzo pide crear una cuenta para usarlo y su plan gratuito quedó solo para uso no comercial. AWS Emulator llega gratis, con licencia CC0, que lo pone en el dominio público, y con todo su historial de cambios en GitHub.

Claves de AWS Emulator

  • Qué imita. Las API de los servicios de AWS que tienen un modelo público en el formato Smithy: más de 400 modelos y más de 200 servicios, según el blog de Werner Vogels, director de tecnología de Amazon. Goldberg cuenta que el proyecto empezó con un servidor web vacío que atendía 438 modelos sin hacer nada con ellos.
  • Cómo se usa. Es un programa sin interfaz gráfica que atiende un endpoint HTTPS en 127.0.0.1:9297. Apuntas la AWS CLI o tu SDK hacia él con variables de entorno y tu código no cambia. Exige firmas SigV4, como AWS, con llaves temporales que genera al arrancar.
  • Dónde corre. En Linux se instala con un paquete RPM o Debian, para x86_64 o ARM. En Mac y Windows se usa Docker, con una imagen que construyes tú desde un Dockerfile corto que publica AWS. Para pruebas en Rust hay un modo embebido que lo mete dentro del proceso de pruebas, y para agentes hay un skill que lo instala y lo conecta.
  • Sin costo. No cobra nada; solo pagas lo que despliegues después en la nube real.
  • Lo que no hace. No evalúa las políticas de IAM ni las de recursos, así que no sirve para probar seguridad. Acepta cualquier región y cuenta, pero no separa los recursos entre ellas: AWS recomienda un emulador por región, cada uno en su puerto. Su comportamiento solo se compara contra la región de Oregon, guarda todo en memoria y lo borra al cerrarse. Un analista de IDC citado por InfoWorld agrega que no simula límites de peticiones ni caídas.
  • Telemetría activada. Por defecto envía datos anónimos de uso y errores, nunca tus peticiones ni tus credenciales, según AWS. Se apaga con --telemetry off o con la variable EMULATOR_TELEMETRY=off.
Una copia de AWS en tu máquina Sin internet, sin cuenta y sin cobro Tu código, la AWS CLI o un SDK sin cambios en el código AWS_ENDPOINT_URL y llaves temporales AWS Emulator HTTPS en 127.0.0.1:9297 más de 200 servicios, un solo endpoint exige firma SigV4 como AWS todo vive en memoria Nube de AWS no recibe ninguna llamada Dónde corre tu computadora: Linux, o Docker en Mac y Windows un servidor de desarrollo las pruebas de CI de cada pull request Lo que no hace no evalúa las políticas de IAM no separa regiones ni cuentas no imita límites ni caídas borra todo al cerrarse Datos: guía de AWS Emulator e IDC. Esquema: decodigo.com.
Cómo se conecta tu código a AWS Emulator y lo que el emulador no hace. Esquema: decodigo.com con datos de la guía del usuario de AWS Emulator e IDC.

La historia de cómo se construyó es casi la noticia principal. Goldberg empezó un fin de semana, inspirado por el compilador de C que un equipo de agentes de Anthropic armó a principios de año: le pidió a Kiro, el asistente de programación de Amazon, una primera versión de SQS, el servicio de colas, y la tuvo en unos 15 minutos. Ese mismo fin de semana Kiro hizo una versión tosca del resto de AWS, y su equipo la empezó a usar el lunes. Hoy, según GeekWire, los agentes corren en Amazon Bedrock AgentCore organizados en tres equipos: uno escribe pruebas de fidelidad y las valida contra la AWS real, otro las ejecuta contra el emulador y levanta un issue por cada diferencia, y el tercero las corrige, un agente por issue. Ningún cambio entra sin pasar una compuerta automática que compila, revisa estándares y seguridad con otros agentes y comprueba que no se rompa nada que ya funcionaba. Goldberg dice que hoy cientos de agentes corrigen miles de issues al día. Es la misma idea de dejar que la IA escriba un programa entero que vimos cuando Claude Code reconstruyó el firmware de un multímetro, pero llevada a cientos de agentes en paralelo.

Diagrama oficial de AWS: tres equipos de agentes de IA (los que escriben pruebas, los que buscan fallas y los que las corrigen) trabajan sobre un repositorio compartido en CodeCommit con las pruebas de fidelidad, la lista de fallas y el código del emulador
Los tres equipos de agentes que construyen AWS Emulator: escriben pruebas contra la AWS real, buscan diferencias en el emulador y las corrigen a través de la compuerta de fusión. Imagen: AWS.

Lo probamos el 13 de noviembre en un contenedor desechable de Amazon Linux 2023, con un usuario normal y la versión 1.0.343, instalada desde el paquete oficial con dnf. Arrancó en cerca de un segundo y respondió como una cuenta de AWS más: aws sts get-caller-identity devolvió la cuenta ficticia 000000000000. En S3 creamos un bucket, subimos un archivo, lo listamos y lo descargamos sin problemas. En DynamoDB la tabla nació en estado CREATING y un put-item inmediato falló con ResourceNotFoundException, igual que en la AWS real mientras la tabla se crea; tras esperar tres segundos con aws dynamodb wait table-exists quedó activa y pudimos guardar y leer un elemento. Una tabla llamada ab fue rechazada con el mismo mensaje de validación que da AWS. En SQS creamos una cola, mandamos un mensaje y lo recibimos. Y una petición sin firmar hecha con curl recibió un 403.

sudo dnf install -y https://downloads.aws.com/aws-emulator/packages/aws-emulator/LTS/latest/aws-emulator-x86_64.rpm
EMULATOR_TELEMETRY=off aws-emulator

# en otra terminal
export AWS_ENDPOINT_URL=https://127.0.0.1:9297
export AWS_SHARED_CREDENTIALS_FILE=~/.aws/emulator/9297/emulator_credentials
export AWS_CONFIG_FILE=~/.aws/emulator/9297/config
export AWS_CA_BUNDLE=~/.aws/emulator/9297/ca.pem
export AWS_EC2_METADATA_DISABLED=true
export AWS_DISABLE_HOST_PREFIX_INJECTION=true
export AWS_REGION=us-east-1 AWS_DEFAULT_REGION=us-east-1

aws s3api create-bucket --bucket decodigo-prueba
aws dynamodb create-table --table-name noticias \
  --attribute-definitions AttributeName=id,AttributeType=S \
  --key-schema AttributeName=id,KeyType=HASH --billing-mode PAY_PER_REQUEST
aws dynamodb wait table-exists --table-name noticias
aws sqs create-queue --queue-name cola-prueba

AWS publica con cada versión cuántas de sus pruebas de fidelidad pasa el emulador, servicio por servicio, en un archivo dentro de GitHub, aunque no da un porcentaje global. Lo calculamos con esos archivos: la versión del día del lanzamiento pasaba el 56.6 % de las pruebas y la del 13 de noviembre ya el 61.2 %. Los servicios más usados, como SQS, S3 y DynamoDB, rondan el 70 %. CloudFormation, donde viven las plantillas de infraestructura como código, se queda en el 20 %; la propia AWS advierte que el soporte para CloudFormation, Terraform y el CDK varía por servicio.

Cuánto se parece a la AWS real Pruebas de fidelidad que pasa, en % 11 nov lanzamiento 56.6 % 24,243 de 42,857 pruebas 13 nov v1.0.343 61.2 % 26,605 de 43,465 pruebas Por servicio, el 13 de noviembre Pruebas que usan ese servicio SQS 72 % S3 69 % DynamoDB 69 % Lambda 58 % EC2 43 % CloudFormation 20 % Las barras van de 0 a 100 %. No cuentan las pruebas omitidas (83 el 13 de noviembre). Datos: archivos scores.json de cada versión en GitHub. Cálculo y gráfica: decodigo.com.
Porcentaje de pruebas de fidelidad que pasa AWS Emulator en la versión del lanzamiento y en la del 13 de noviembre, y por servicio. Cálculo y gráfica: decodigo.com con los archivos de puntuaciones que AWS publica en GitHub.

Un emulador que nadie revisó línea por línea

Para los desarrolladores, lo práctico es que ya hay una forma oficial y gratuita de correr pruebas de integración contra AWS sin cuenta, sin credenciales reales en el pipeline y sin depender de las condiciones de LocalStack. Para un agente de programación es todavía más útil: puede crear buckets, colas y tablas cuantas veces quiera, en paralelo con otros agentes, sin tocar nada de producción ni generar una factura.

Pero el experimento va más allá de la herramienta. Swami Sivasubramanian, vicepresidente de IA agéntica y tecnologías emergentes de AWS, lo resume así en el blog de Vogels: cuando los agentes escriben el código y revisan su propio trabajo, el trabajo del ingeniero es diseñar las especificaciones, las pruebas y las compuertas que deciden cuándo ese trabajo es correcto. En lugar de revisar código, AWS vigila los resultados: la referencia es la nube real y cada diferencia queda documentada en público, en la carpeta things-that-do-not-work del repositorio. El repositorio no acepta pull requests: los reportes van como issues y los arreglan los agentes.

AWS Emulator no reemplaza las pruebas en la nube real: con cuatro de cada diez pruebas todavía por pasar, sin IAM y sin regiones separadas, conviene revisar antes las puntuaciones de los servicios que usas. Pero mejora varias veces al día y es gratis, lo que pone presión sobre LocalStack y sobre los emuladores que nacieron cuando este cerró su versión gratuita. AWS promete más detalles en re:Invent, su conferencia anual, dentro de unas semanas.

Fuente: anuncio de Matt Goldberg en About Amazon; All Things Distributed, blog de Werner Vogels; repositorio de AWS Emulator en GitHub; guía del usuario de AWS Emulator; GeekWire.