Przejdź do treści

AWS Emulator: darmowy lokalny AWS od Amazona, pisany w całości przez agentów AI

Okładka z nagłówkiem Darmowy lokalny AWS, napisany przez agentów AI, chmurą połączoną linią kropkowaną z kartą 127.0.0.1:9297 oraz polami AUTOR KODU, FIDELITY 56,5% i LICENCJA CC0; pieczątka NEWS 11 LISTOPADA

11 listopada Amazon wydał AWS Emulator: lokalny program, który udaje API chmury AWS na własnej maszynie, bez konta AWS, bez internetu i bez opłat serwisowych. Sensacja nie polega na samym istnieniu emulatora, bo darmowe emulery AWS istnieją od lat. Polega na tym, kto go napisał: według oficjalnego posta AWS każdy wiersz kodu napisali autonomiczni agenci AI, a zespół inżynierów „nie napisał i nie przeglądał żadnego”. Uruchomiłem emulator dziś na Linuksie: bucket utworzony, obiekt wysłany i odczytany, podpisy SigV4 przyjęte. W tym tekście jest ścieżka instalacji na Linuksie i w Dockerze, twarde liczby z raportu zgodności (56,5% zaliczonych testów w najnowszym wydaniu), porównanie z LocalStack i moto oraz sekcja o telemetrii, która jest tu domyślnie włączona.

Najważniejsze informacje

CoSzczegóły
Co to jestlokalny emulator API AWS: CLI i SDK łączą się z https://127.0.0.1:9297, żądania nie opuszczają maszyny
Cena0 zł, brak konta AWS i brak opłat serwisowych; licencja CC0-1.0 (katalog vendor/ na Apache-2.0)
Autor kodutysiące autonomicznych agentów AI; zespół AWS nie napisał i nie przeglądał kodu (post 11.11.2026)
Skąd pobraćLinux: pakiety RPM i Debian x86_64/aarch64 z downloads.aws.com; Windows i macOS: obraz z Dockerfile; pakiet amd64 ma 170 MB
Obsługa usług436 katalogów usług w repo (odczyt 12.11); raport zgodności z wydania 11.11: 42 937 testów, zaliczone 56,5%
Kto siedzi najwyżejSQS 89,8%, DynamoDB 76,5%, S3 74,5%, Lambda 54,4% zaliczonych testów (agregacja z scores.json.gz)
Telemetriadomyślnie włączona (anonimowe dane użycia i błędów); wyłączenie: flaga --telemetry off, zmienna EMULATOR_TELEMETRY=off albo config.toml
Stan w Polscedokumentacja tylko po angielsku; frazy „aws emulator po polsku”, „pobierz” i „instalacja” puste w autocomplecie (odczyt 12.11)

Amazon wydał emulator, którego nikt w zespole nie napisał

Post ogłoszeniowy napisał Matthew Goldberg, senior principal engineer w AWS, i jest w nim zdanie, którego jeszcze kilka lat temu nie zobaczyłbyś w komunikacie o produkcie żadnej dużej firmy: „Our team hasn’t written or reviewed any of the code”, czyli nasz zespół nie napisał i nie przeglądał żadnego kodu. Tysiące agentów nie tylko pisze kod, ale też układa testy, znajduje problemy i naprawia je bez ludzkiego przeglądu. Kod trafił na GitHub pod licencją CC0, czyli niemal domeny publicznej (jedyny wyjątek to pożyczone biblioteki w katalogu vendor/ na Apache-2.0). Repozytorium stoi w oficjalnej organizacji aws od 11 września, dokumentacja dostaje osobną sekcję na docs.aws.amazon.com, a w wątku na Hacker News (876 punktów przy moim odczycie 12 listopada) ktoś z zespołu potwierdził wprost: „It’s a real product that we plan to maintain”, to prawdziwy produkt, który planujemy utrzymywać.

Historia powstania brzmi jak anegdota, ale ma konkretne daty. Goldberg pisze, że impulsem był wynik badaczy Anthropicu z początku roku: agenci samodzielnie zbudowali działający kompilator C. Sprawdził hipotezę narzędziem Kiro, agentowym środowiskiem kodującym Amazonu, i podał najprostszy prompt, jaki potrafił wymyślić: napisz testy na bazie AWS CLI, iteruj na nich do zaliczenia na prawdziwej chmurze, a potem zbuduj implementację przechodzącą te same testy bez chmury. Po 15 minutach Kiro wracał z pierwszą, już używalną wersją SQS. Dopracowany prompt dorzucił mu w weekend „resztę AWS”, a w poniedziałek zespół zaczął tego używać do testowania własnego oprogramowania. Goldberg od razu przygasza euforię: od wyniku z weekendu do produktu, którego nie wstyd podać klientowi, dzieli poważna praca inżynierska, w jego opisie głównie budowa zabezpieczeń, które trzymają agentów wewnątrz wyznaczonych granic.

Po co AWS to robi, najlepiej ujmuje post Swamiego Sivasubramaniana, wiceprezesa ds. AI, opublikowany tego samego dnia na blogu Wernera Vogelsa: AWS Emulator daje agentom kodującym lokalną kopię AWS do testowania. To logiczne domknięcie czasów, w których kod piszą agenci. Opis u Swamiego zaczyna się od historii sprzed 20 lat: badanie użycia baz w Amazonie pokazało, że 70% operacji nie jest relacyjnych, z czego wyszło Dynamo. Sedno jednak jest jedno. Agent, który pisze kod pod AWS, musi go gdzieś sprawdzić, nie czekając na rachunek za chmurę i nie mając dostępu do produkcyjnych zasobów.

Jak uruchomić AWS Emulator na własnej maszynie

Emulator nie ma interfejsu graficznego, to proces serwujący endpoint HTTPS na porcie 9297. Na Linuksie instalujesz pakiet RPM albo Debian (architektury x86_64 i aarch64) prosto z downloads.aws.com, a pakiet dokłada binarkę aws-emulator do /usr/bin. Na Windows i macOS droga prowadzi przez kontener budowany z krótkiego Dockerfile z repozytorium, obrazu nie ma w rejestrze. Osobna ścieżka jest dla piszących w Rust: tryb embedded uruchamia emulator wewnątrz procesu testu, bez endpointu i certyfikatów. Jeszcze inna opcja celuje wprost w agentów: komenda aws agent-toolkit add-skill --skill-name aws-emulator --region us-east-1 dodaje umiejętność do agenta kodującego (wymaga AWS CLI w wersji 2.35.0 lub nowszej), po czym agent sam ogarnia konfigurację.

curl -fsSLo aws-emulator.deb \
  https://downloads.aws.com/aws-emulator/packages/aws-emulator/LTS/latest/aws-emulator_amd64.deb
sudo apt-get install -y ./aws-emulator.deb
aws-emulator --telemetry off

Przetestowałem to na własnej maszynie z Linuksem 12 listopada. Binarka z pakietu (170 MB, jedyna zależność to libc) podnosi się w kilka sekund, wersja 1.0.322 z wydaniem z 10 listopada; emulator sam generuje lokalne poświadczenia w ~/.aws/emulator/9297 i czeka na podpisane żądania. AWS CLI nie mam zainstalowanego, więc podpisywałem żądania własnym skryptem SigV4, i emulator przyjął podpis bez marudzenia. Dalej: CreateBucket zwraca 200 z nagłówkiem Location, PutObject zwraca ETag, GetObject oddaje dokładnie tę samą treść, listowanie pokazuje obiekt w XML zgodnym z formatem S3. Ciekawostka przy okazji: nazwa bucketa z przykładu w dokumentacji, „amzn-s3-demo-bucket”, dostaje od emulatora HTTP 400 InvalidBucketName, bo prefiks amzn-s3-demo- jest w S3 zastrzeżony dla przykładów w dokumentach, a emulator pilnuje tej konwencji częściej, niż niejeden produkcyjny pipeline.

Jedno ostrzeżenie, zanim ktoś ruszy do budowania ze źródeł: pełna kompilacja Rust wymaga około 100 GB wolnego miejsca w katalogu target/ i wielu rdzeni, bo każda usługa to osobny crate. Dlatego zwykła droga to gotowe pakiety albo Docker, a źródła zostawiasz sobie, gdy chcesz poczytać, jak agenci ułożyli kod.

Czy można ufać kodowi, którego nikt nie czytał

AWS zastępuje przegląd kodu czymś, co dokumentacja nazywa fidelity: emulator celuje w identyczne wyniki i identyczne błędy jak prawdziwy AWS dla zaimplementowanych operacji, a operacje niezaimplementowane odpowiadają HTTP 501 z kodem NotImplemented, więc test po prostu od razu pada, zamiast udawać sukces. Wyniki zgodności są publikowane przy każdym wydaniu. Dokumentacja uczciwie przyznaje, że dziś najbliższe AWS są API kontrolne (tworzenie i opisywanie zasobów), warstwa danych różni się zależnie od usługi, a wsparcie narzędzi IaC, CloudFormation, Terraform i CDK, też jest nierówne.

Zamiast wierzyć na słowo, policzyłem. Przy wydaniu v1.0.322 z 11 listopada jest plik scores.json.gz (ok. 1,1 MB) z wynikami wszystkich testów zgodności: 42 937 jednostek (32 402 testów zachowań i 10 535 warstwy protokołu), zaliczone 24 243, czyli 56,5%. Per usługa: SQS 89,8%, DynamoDB 76,5%, S3 74,5%, Lambda 54,4%, a raport obejmuje 354 usług. Czyli połowa zachowań brzegowych jeszcze odjeżdża od prawdziwego AWS i o tym trzeba wiedzieć, zanim ktoś położy na emulatorze testy regresyjne produktu. Druga strona medalu: te liczby są jawne, publikowane przy każdym wydaniu, a wydań od 11 września jest ponad 300, z ponad dwustoma poprawkami w samej notce wydania z 11.11. Repozytorium z testami (aws-emulator-evaluation-suite, testy w Pythonie na boto3) opisuje swoje wyniki mocnym zdaniem: każdy test zweryfikowano na co najmniej dwóch kontach AWS, a „Behavior that no fidelity test covers is not verified”, zachowania bez pokrycia testem nie są zweryfikowane. Oba projekty są read-only dla kodu: emulator przyjmuje błędy przez Issues, ale nie przyjmuje pull requestów, a zestaw testów nie przyjmuje ani zgłoszeń, ani PR-ów. Autorami są agenci.

Sceptycyzm na Hacker News był i jest zasadny: jeden z głosów pytał, jak ufać dokładności emulatora pisanego przez agentów, inni o to, czy firma utrzyma produkt poza momentem ogłoszenia, a ktoś inny zauważył, że brakuje macierzy kompatybilności, podstawy dla emulatora. Prawda jest pośrodku między marketingiem a nieufnością. Zgodność ogółem na poziomie 56,5% to mało na testy regresyjne produktu, ale jawna metryka, codzienne wydania i dokumentacja w oficjalnej strefie docs.aws.amazon.com pokazują, że traktują to jak produkt, nie eksperyment. Problem „kodu, którego nikt nie czyta” opisywaliśmy osobno przy innych narzędziach (Kod od AI, którego nikt nie rozumie), tu AWS podsuwa własną odpowiedź: zamiast przeglądu, tysiące testów.

AWS Emulator, LocalStack i moto

NarzędzieLicencja i cenaDla kogo
AWS Emulatordarmowy, CC0-1.0deweloperzy i CI na AWS: testy lokalne bez konta, pakiety linuksowe i Docker
LocalStackcommunity Apache-2.0; plany płatne 29 do 89 USD za licencję miesięcznie (rozliczenie roczne, odczyt 12.11)zespoły, które chcą gotowych integracji IaC i wsparcia komercyjnego
motodarmowy, Apache-2.0testy jednostkowe w Pythonie, mockowanie zasobów w kodzie bez dodatkowego serwera

LocalStack, z 65 tysiącami gwiazdek na GitHubie, to dotąd domyślny wybór i długo był jedynym sensownym emulatorem całej chmury, budowanym ręcznie usługą po usłudze. moto, z 8,7 tysiąca gwiazdek, rządzi w innym segmencie: podmienia zasoby w testach jednostkowych Pythona, bez serwera i bez portu. Komentarze na Hacker News dopisywały do listy też Floci (emulator S3) i Testcontainers jako wygodne otoczenie dla kontenerów. Czym różni się oficjalny emulator? Skalą punktu odniesienia: on nie zgaduje, jak działa S3, tylko ma za specyfikację oficjalne modele API AWS i prawdziwą chmurę jako wzorzec, a zgodność mierzy na tysiącach testów. A jeśli ktoś boi się przywiązania do Amazona, licencja CC0 pozwala sforkować kod bez pytania o zgodę.

Telemetria: włączona domyślnie

README mówi wprost: emulator zbiera i wysyła do AWS dane o użyciu, domyślnie. Deklarowany zakres to anonimowe dane użycia i błędów, bez treści żądań i odpowiedzi, bez kodu, poświadczeń i danych osobowych, bez przekazywania podmiotom trzecim. Moim zdaniem przy narzędziu z domyślnie włączoną telemetrią wyłączenie powinno być krokiem pierwszym, nie opcją, zwłaszcza w CI na maszynach firmowych. Sposobów wyłączenia jest trzy: flaga --telemetry off przy starcie (w kontenerze dopisana po nazwie obrazu), zmienna EMULATOR_TELEMETRY=off w shellu, albo wpis enabled = false w sekcji [telemetry] w ~/.aws/emulator/config.toml na stałe. Przy moim uruchomieniu emulator sam wydrukował w linii startowej status telemetrii, disabled, więc od razu widać, w jakim trybie wstał.

Co z tego dla Polski

Dokumentacja jest wyłącznie po angielsku i polskiej konkurencji na ten temat praktycznie nie ma: po ogłoszeniu z 11 listopada Google News PL pokazał dwie krótkie notki (Unite.AI i Meteora Web), a w autocomplecie rodzina angielska żyje na pełnej gęstości („aws emulator”, „aws emulator github”, „aws emulator free”, „aws emulator docker”, osobno „aws s3 emulator”, „aws lambda emulator”, „aws dynamodb emulator”), podczas gdy polskie warianty („aws emulator po polsku”, „aws emulator pobierz”, „aws emulator instalacja”) nie podsuwają żadnych sugestii. Odczyt z 12 listopada.

Kto realnie skorzysta: każdy, kto pisze kod pod AWS i płaci za chmurę, w której tylko testuje. Testy integracyjne w CI bez konta AWS to największa natychmiastowa oszczędność: bez rachunku i bez ryzyka, że test skasuje produkcyjny bucket. A dla piszących z agentami kodującymi, o czym pisaliśmy przy vibe codingu za darmo i w przewodniku po agentach AI, to plac, który AWS zbudował dla nich wprost.

Najczęstsze pytania

Czy AWS Emulator jest darmowy?

Tak. Licencja CC0-1.0, brak opłat serwisowych, brak konta AWS. Płacisz dopiero za realne zasoby, gdy wdrażasz na prawdziwej chmurze. Jedyny wyjątek licencyjny to katalog vendor/ z pożyczonymi bibliotekami na Apache-2.0.

Czy AWS Emulator działa bez konta AWS?

Tak, wg dokumentacji i w moim teście: instalujesz pakiet, uruchamiasz binarkę, a emulator sam generuje lokalne poświadczenia w ~/.aws/emulator/9297. Konto AWS potrzebujesz dopiero, gdy chcesz porównać zachowanie emulatora z prawdziwą chmurą.

Jak uruchomić AWS Emulator w Dockerze?

Na Windows i macOS budujesz obraz z Dockerfile dostarczonego w repozytorium (obrazu nie ma w publicznym rejestrze) i uruchamiasz kontener z flagą --telemetry off dopisaną po nazwie obrazu. Endpoint jest ten sam: HTTPS na porcie 9297.

Czy AWS Emulator obsługuje S3, Lambda i DynamoDB?

Tak, wszystkie trzy mają osobny crate w repozytorium i testy w raporcie zgodności. W wydaniu z 11 listopada zaliczone są 74,5% testów dla S3, 76,5% dla DynamoDB i 54,4% dla Lambda, a operacje jeszcze niezaimplementowane odpowiadają HTTP 501 NotImplemented.

Czym różni się AWS Emulator od LocalStack?

LocalStack to zewnętrzny projekt komercyjny z darmową edycją community na Apache-2.0 i planami od 29 USD za licencję miesięcznie, z latami doświadczenia i gotowymi integracjami. AWS Emulator jest oficjalny, pisany przez agentów, na CC0, z jawną metryką zgodności przy każdym wydaniu, ale młodszy, ze zgodnością ogółem na poziomie 56,5%.

Źródła

Powiązane artykuły