AWS выпустила AWS Emulator — локальный эмулятор AWS API, который запускается на ноутбуке, dev-сервере или в CI. AWS CLI и SDK обращаются к нему вместо облака: аккаунт AWS не нужен, платы за сервисы нет. Необычная деталь в другом — весь код эмулятора написали и проверили автономные ИИ-агенты.
Для разработчиков и кодинг-агентов это быстрый и бесплатный цикл проверки против API, повторяющих формы AWS. Ресурсы живут в памяти и исчезают при остановке процесса.
Что внутри: 438 моделей API и 200+ сервисов
Эмулятор собран из 438 моделей AWS API и покрывает более 200 сервисов, по одному Rust-крейту на сервис. Запускается на Linux x86_64/aarch64 (пакеты RPM или Debian) либо в Docker на macOS и Windows с лимитом памяти 2 GiB. Сборка из исходников требует 100 ГБ свободного места.
Точность измеряется публичным набором тестов. В релизе v1.0.322 проходят 24 243 из 42 857 оценённых тестов — 56,6%, ещё 80 пропущено. На уровне отдельных шагов результат выше: 49 810 из 68 007 (73,2%). Сквозные сценарии между сервисами проходят хуже — 2 752 из 6 569 (41,9%).
Лучшие результаты показывают AWS KMS (93,9%, 291 из 310 тестов) и Amazon SQS (89,8%). Среди основных сервисов: S3 — 79,1%, DynamoDB — 77,3%, SNS — 73,9%, Lambda — 46,4%, EC2 — 41,5%. Хуже всего AWS CloudFormation — 15,8% (414 из 2 612 тестов).
По документации о точности лучше всего совпадают control-plane API. Поддержка data-plane, CloudFormation, Terraform и CDK зависит от сервиса. Нереализованные операции возвращают HTTP 501 NotImplemented. Тесты лежат в наборе aws-emulator-evaluation-suite, включая падающие.
Как ИИ-агенты писали эмулятор
Проект начался с промпта для Kiro: примерно за 15 минут тот выдал работоспособный эмулятор Amazon SQS. Дальше AWS разделила работу между тремя командами агентов:
- Test writers строят сценарии по публичным моделям Smithy API и проверяют каждый против настоящего AWS.
- Issue finders прогоняют эти тесты против эмулятора и заводят задачи на провалы.
- Fixers берут по одной задаче и присылают патч.
Каждый патч проходит merge gate: сборка, код-ревью, безопасность и точность. Несколько security-агентов дополнительно проводят состязательные проверки. По словам Matthew Goldberg, сотни параллельных агентов исправляют тысячи задач в день. Конвейер релизов работает на AWS Developer Tools, репозиторий агентов — CodeCommit, до GitHub код доходит последним.
Как запустить
В README описаны четыре пути:
- Linux — поставить RPM или Debian-пакет и запустить
aws-emulator. - macOS/Windows — собрать контейнер по Dockerfile от AWS с лимитом 2 GiB.
- Rust embedded mode — добавить как dev-dependency, по одному изолированному экземпляру на тест.
- Кодинг-агенты —
aws agent-toolkit add-skill --skill-name aws-emulator, нужен AWS CLI 2.35.0 или новее.
Сборка из исходников поднимает HTTPS на 127.0.0.1:9297 с самоподписанным сертификатом. Нужны тулчейн Rust, компилятор C и минимум 100 ГБ диска. Embedded-режим несёт ту же стоимость сборки при первом cargo test.
Чем отличается от LocalStack, Moto и Floci
| Параметр | AWS Emulator | LocalStack | Moto | Floci |
|---|---|---|---|---|
| Лицензия | CC0 1.0 (vendor/ — Apache 2.0) |
Коммерческие планы | Apache-2.0 | MIT |
| Цена | Бесплатно | Hobby $0 (некоммерческое), Base $39, Ultimate $89 за лицензию в месяц (годовая) | Бесплатно | Бесплатно |
| Покрытие | 200+ сервисов, 438 моделей API | 30+ / 55+ / 110+ по плану | Не раскрыто в README | Не суммировано в README |
| Токен вендора | Нет | Да (auth token) | Нет | Не раскрыто |
| Эндпоинт по умолчанию | HTTPS 127.0.0.1:9297 | Порт 4566 | Порт 5000 | Порт 4566 |
| In-process режим | Rust dev-dependency | Не раскрыто | Python-декоратор @mock_aws |
Не раскрыто |
| Публичные оценки точности | Да, на каждый релиз | Не раскрыто | Не раскрыто | Не раскрыто |
Ограничения, о которых предупреждает сам AWS
- Нет вычисления IAM. Политики идентичности и ресурсов не оцениваются как в AWS — для тестов безопасности эмулятор не годится.
- Один регион и один аккаунт. Любые идентификаторы принимаются, но ресурсы по ним не изолируются.
- Проверено только в us-west-2, глобальные сервисы проверялись в us-east-1.
- Всё в памяти и недолговечно. Долгие прогоны и нагрузочные тесты не проверялись; остановить процесс можно через
--idle-timeout. - Телеметрия включена по умолчанию. Отключается флагом
--telemetry off, переменнойEMULATOR_TELEMETRY=off, черезconfig.tomlили в embedded API.
Темп релизов высокий: версии v1.0.265–v1.0.322 вышли с 8 по 11 ноября.
Что это значит на практике
Эмулятор закрывает нишу быстрых локальных и CI-прогонов, где не нужен настоящий аккаунт AWS. Для проверки прав доступа, отказоустойчивости или поведения под нагрузкой он не подходит — это прямо оговорено. Если в вашем пайплайне уже используется LocalStack или Moto, AWS Emulator стоит рассматривать как альтернативу с открытой лицензией CC0 и публикуемыми оценками точности, а не как замену: 56,6% пройденных тестов означают, что почти половина проверенных сценариев пока расходится с поведением настоящего AWS.
Агентная часть проекта перекликается с двумя другими разборами: как ИИ-агенты ищут уязвимости и как устроены кодинг-агенты для бизнеса — здесь же агенты выступают как авторы и ревьюеры кода. Тем, кто гоняет модели локально, будет близок и материал про ИИ-агентов на ноутбуке без облачного счёта.
Частые вопросы
Нужен ли аккаунт AWS, чтобы запустить AWS Emulator?
Нет. Эмулятор работает локально, аккаунт AWS и оплата сервисов не требуются. AWS CLI и SDK указываются на локальный эндпоинт через переменные окружения, код при этом не меняется.
Насколько эмулятор совпадает с настоящим AWS?
В релизе v1.0.322 проходят 24 243 из 42 857 оценённых тестов — 56,6%. На уровне шагов — 73,2%, сквозные сценарии между сервисами — 41,9%. Точность сильно зависит от сервиса.
Какие сервисы работают лучше всего?
Лучше всех AWS KMS — 93,9% (291 из 310 тестов) и Amazon SQS — 89,8%. Из основных сервисов: S3 — 79,1%, DynamoDB — 77,3%, SNS — 73,9%.
Где эмулятор ошибается чаще всего?
Хуже всего AWS CloudFormation — 15,8% (414 из 2 612 тестов). Lambda проходит 46,4%, EC2 — 41,5%. Нереализованные операции возвращают HTTP 501 NotImplemented.
Можно ли использовать его для тестов безопасности?
Нет. AWS прямо указывает, что IAM не вычисляется: политики идентичности и ресурсов не оцениваются как в настоящем AWS. Для security-тестов эмулятор не подходит.
Сколько ресурсов нужно для запуска?
Docker-вариант на macOS и Windows ограничен 2 GiB памяти. Сборка из исходников требует тулчейна Rust, компилятора C и минимум 100 ГБ свободного диска.
Как отключить телеметрию?
Телеметрия включена по умолчанию. Отключается флагом --telemetry off, переменной EMULATOR_TELEMETRY=off, через config.toml или в embedded API.
Чем AWS Emulator отличается от LocalStack и Moto?
Лицензия — CC0 1.0 (каталог vendor/ — Apache 2.0), тогда как LocalStack предлагает коммерческие планы, а Moto распространяется по Apache-2.0. AWS Emulator покрывает 200+ сервисов и публикует оценки точности на каждый релиз; у LocalStack и Moto такие оценки не раскрыты. Эндпоинт по умолчанию — HTTPS 127.0.0.1:9297 против порта 4566 у LocalStack и 5000 у Moto.
Кто писал код эмулятора?
Автономные ИИ-агенты. Люди построили тесты и merge gate, а три команды агентов — test writers, issue finders и fixers — писали и проверяли код. Каждый патч проходит проверку сборки, код-ревью, безопасности и точности.
Источник: marktechpost.com