Amazon Web Services(AWS)は2026年11月11日、AWSのAPIをローカル環境で実行できる「AWS Emulator」の一般提供を開始した。AWSアカウントなしで利用でき、追加のサービス料金も発生しない。実際のAWSへリソースをデプロイした場合は通常の料金がかかる。さらにAWSは、このエミュレータのソースコードをすべて自律型AIエージェントが作成し、開発チームの人間はコードの執筆もレビューもしていないと明らかにした。

AWS Emulatorを使えば、アプリケーションを修正するたびにクラウドへデプロイする必要がなくなり、手元のPCや継続的インテグレーション(CI)環境で動作確認を繰り返せる。ただし、実AWSと完全に同じ動作が保証されるわけではなく、サービスごとにAPIの対応状況や再現精度が異なる。特にアクセス権限や負荷に関する検証は、引き続き実AWSで行う必要がある。

AD

AWSのAPI呼び出しをローカル環境で再現

AWS Emulatorは、AWSのAPIリクエストをローカルで受け付け、実際のクラウドサービスに代わって処理するエミュレータだ。AWS CLIや各言語のAWS SDKが接続するエンドポイントを環境変数で切り替えることで、アプリケーションのコードを変更せずに利用できる。既定の接続先はhttps://127.0.0.1:9297で、HTTPSを使用する。

例えばAmazon DynamoDBを利用するアプリケーションなら、テーブルの作成、データの書き込み、読み出しといった一連の操作をローカルで試せる。AIコーディングエージェントも同じ環境を使用できるため、コードの生成、動作確認、修正を実AWSへのデプロイなしで繰り返せる。ただし、対象のAPIが実装されていることに加え、必要な処理がAWSと同じように動作することが前提となる。

エミュレータは起動するたびに専用のアクセスキー、証明書、設定ファイルを生成する。アクセスキーはEMULATORで始まる形式で、原則としてその起動中に生成された鍵で署名されたリクエストだけを受け付ける。SDKによっては自己署名証明書を信頼するための設定も必要だ。リソースの状態はメモリ上に保持され、エミュレータを停止すると消去される。

AWSの公式ドキュメントによると、APIのリクエストやレスポンス、リソースデータはAWSへ送信されない。ただし、匿名化された利用状況とエラーデータの送信は初期設定で有効になっており、無効化も可能だ。なお、エミュレータが独自のアクセスキーを検証することと、AWSのIAMポリシーに基づいて権限を判定することは別である。

AIエージェントが全コードを作成、実AWSとの比較で品質を検証

今回の発表でもう一つ注目されるのが、開発手法だ。AWSのシニアプリンシパルエンジニアであるMatthew Goldberg氏は、Amazonの公式記事で、AWS Emulatorのコードをすべて自律型AIエージェントが作成したと説明している。人間の開発チームはコードの執筆もレビューも行わず、エージェントが自律的に作業できる仕組みや品質管理の工程を整備したという。国内でもITmediaが、この開発手法に注目して報じている。

開発のきっかけは、AIエージェントにAWSのAPI仕様と実際のクラウド環境を参照させれば、同じ挙動を再現するプログラムを構築できるのではないかという着想だった。Goldberg氏がKiroに指示したところ、約15分でAmazon SQSの初期実装が完成。その週末にはAWS全体を対象とした粗い試作版ができあがったという。ただし、実際の製品として公開するまでには、品質と安全性を確保するための追加開発が必要だった。

本格的な開発では、AIエージェントを役割の異なる3つのチームに分けている。第1チームがAWSのAPIモデルからテストを作成し、実AWSで正しい結果を確認する。第2チームは同じテストをエミュレータで実行し、実AWSとの挙動の違いを検出する。第3チームが見つかった問題を修正し、修正内容を検証するという流れだ。

初期段階のエミュレータは、438件のAWS APIモデルに対応するリクエストを受け付けられるだけの空のサーバーだった。そこからエージェントが各サービスの処理を実装し、実AWSとの違いを修正していった。修正コードは統合前にビルド、コーディング規約、セキュリティ、既存機能への影響を検査され、問題があれば差し戻される。AWSによると、数百のエージェントが並列に作業し、1日に数千件の課題を解決しているという。

コードはAWS CodeCommitで管理され、AWS CodePipelineによるビルドと再テストを経て配布される。公開用のソースコードは、その工程の最後にGitHubへ反映される。つまり、人間が個々のコードをレビューする代わりに、実AWSを基準とする自動テストと複数のAIエージェントによる検査を品質管理の中心に据えた開発体制となっている。

AD

APIの対応範囲と実AWSとの互換性は別

AWS Emulatorを利用する際に注意したいのは、APIモデルへの対応と、実際のAWSの動作を再現できることは同義ではないという点だ。APIモデルはリクエストやレスポンスの形式を定義するものであり、そこに含まれる操作がすべて実装されているとは限らない。未実装の操作を呼び出すと、HTTP 501とNotImplementedエラーが返される。

AWSは実際のサービスとの一致度を「忠実度(fidelity)」と呼び、比較テストによって評価している。テストではSDKを使って一連の操作を実行し、戻り値だけでなく、リソースの状態変化、副作用、不正なリクエストに対するエラーまで確認する。ただし、すべての挙動が網羅されているわけではない。

開発者が確認すべき項目を整理すると、次のようになる。

検証項目 ローカルで確認できること 実AWSでの検証が必要なこと
APIの対応 必要な操作が実装されているか 未実装・未検証操作の動作
処理の忠実度 戻り値、状態変化、副作用、エラー 比較テストで確認されていない挙動
アクセス権限 エミュレータ専用の認証 IAMやリソースベースポリシーによる許可・拒否
データの永続性 起動中のメモリ内状態 長期保存、再起動後の状態維持
負荷・構成 単一インスタンスでの基本動作 負荷、長期稼働、アカウント間・リージョン間の動作

AWSの忠実度に関する説明によると、現時点で実AWSに最も近い動作を再現できるのは、リソースの作成、参照、更新、削除などを扱う制御プレーンのAPIだ。一方、オブジェクトの読み書きなどを行うデータプレーンのAPIや、CloudFormation、Terraform、AWS CDKなどのInfrastructure as Code(IaC)ツールへの対応状況は、サービスによって異なる。

各サービスの忠実度スコアは、用意された比較テストのうち何件に合格したかを示す値であり、サービス全体の互換率ではない。AWSはリリースごとにスコアとテストのバージョンを公開しているため、導入時には自分のアプリケーションで使用する操作が検証されているかを確認する必要がある。テスト項目の追加によって分母が増えれば、エミュレータの機能が改善していてもスコアが下がる場合がある。

特に重要なのがアクセス制御だ。AWS EmulatorはIAMポリシーやリソースベースポリシーを実AWSと同じようには評価しないため、本番環境では拒否される操作がローカルでは成功する可能性がある。また、1つのインスタンスは原則として単一のAWSアカウントとリージョンを想定しており、複数リージョンを試す場合は別ポートでそれぞれ起動する必要がある。実際のリージョン間通信やアカウント間アクセスは再現されず、長期稼働や負荷試験についても検証されていない。

Linuxはパッケージ提供、macOSとWindowsはDockerで動作

AWS EmulatorはRustで実装されており、Linuxではx86_64とArm64向けのRPMおよびDebianパッケージが提供される。必要なglibcのバージョンは2.17以上だ。macOSとWindowsではDockerを利用するが、完成済みのコンテナイメージは配布されておらず、公式Dockerfileを使って利用者がビルドする必要がある。

Rust SDK向けには、エミュレータをテストプロセス内で直接動作させる組み込みモードも用意されている。別のサーバープロセスを起動する必要がなく、テストごとに独立した状態を持つインスタンスを利用できる。ただし、組み込みモードではエミュレータのコードをテストプログラムとともにコンパイルするため、初回のビルド負荷は大きい。

公式GitHubリポジトリのREADMEでは、ソースコードからのビルドにtarget/ディレクトリ用として100GB以上の空きディスク容量を求めている。Rust組み込みモードでも、初回のcargo testでは同程度のビルド規模を見込む必要がある。これはソースからビルドする場合の要件であり、パッケージ版の実行に100GBの空き容量が必要という意味ではない。

ソースコードはCC0 1.0で公開されているが、vendor/ディレクトリ内の第三者コードにはApache License 2.0が適用される。GitHubでは各リリースの忠実度スコアに加え、未対応の機能や修正済みの問題も公開されている。

AWS Emulatorは、開発中のAPI呼び出しや基本的なワークフローのテストをローカルへ移すことで、AWSへのデプロイ回数と開発時の待ち時間を減らせる可能性がある。AIコーディングエージェントによる高速な試行錯誤とも相性がよい一方、実AWSとの互換性にはまだ差がある。導入にあたっては、利用するAPIの実装状況と比較テストの結果を確認し、権限や負荷、本番環境での動作については実AWSで検証することが重要だ。