Skip to main content

AWS Developer Tools

AWS Emulator

Local AWS for development, coding agents, test runs and CI jobs. It runs your AWS SDK and AWS CLI calls in milliseconds, with no AWS account and no deployments required.

What is AWS Emulator?

  • Keep your inner loop fast: Create resources and test and iterate without waiting for a deployment. Your resources stay in the emulator and never reach your AWS account.

  • Run as many copies as you need: Each copy of AWS Emulator gets its own port, keys and in-memory state, so agents and different CI environments never see or overwrite each other's resources, and nothing waits on a deploy.

  • Stays current with the latest AWS updates: With AWS Emulator, services are generated from the API models AWS publishes, the same models behind the AWS SDKs. When AWS adds a service or API, it shows up in AWS Emulator, and its behavior is filled in and verified release by release.
AWS emulator on local machine and AWS environment are the same.

What can you do with AWS Emulator?

Give coding agents a safe test loop

How do you let a coding agent test AWS code without access to your account?

Point the agent at the emulator. It creates the bucket, runs the code, reads the AWS error and fixes it. The agent can run the emulator in a sandbox with no network access, and nothing it creates reaches your AWS account.

Read the documentation

Run several agents in parallel

How do you run several agents on the same service without collisions?

Start one emulator per agent, each on its own port. Each agent gets its own buckets, tables and queues, and no two emulators share state.

Set up parallel emulators

Test AWS integrations on pull requests

How do you test your AWS service calls before you merge?

Start the emulator in your CI environment and run your integration tests against it. There are no per-branch accounts, no stored credentials and no leftover resources.

Add it to your CI pipeline

Replace hand-written mocks

How do you stop your mocks from drifting away from how AWS behaves?

Point the tests that break after deploy at the emulator. Tests fail when AWS would reject a request, and new APIs arrive with each release, so there are no fixtures to update.

How the emulator compares to mocks

Run workshops and onboarding

How do you teach AWS services without setting up an AWS account for each learner?

Each participant runs the emulator on their own laptop. There are no accounts to set up and nothing to clean up afterwards.

Plan a workshop

Start testing in three steps

How do you start using AWS Emulator?

  1. Start the emulator: Run it on your laptop or in your CI environment. It starts in seconds.
  2. Point your tools at it: Set your AWS endpoint URL and use the credentials the emulator provides. Your AWS SDK clients and AWS CLI scripts send their requests to the emulator instead of AWS.
  3. Build and test: Create resources locally, from a single Amazon S3 bucket to an application that stores data in Amazon DynamoDB and passes messages through Amazon SQS queues.

Get started with AWS Emulator

Frequently asked questions

General

Open all

    AWS Emulator stands in for AWS services on your laptop or in your continuous integration (CI) environment. You create and manage resources with the same AWS SDK and AWS CLI calls you use with AWS. AWS Emulator returns the same result as AWS for valid calls and the same errors for invalid ones. It also keeps the state of your resources across calls. Independent developers and enterprise teams use it to build and test applications before they deploy to AWS.

    Install AWS Emulator and start it on your laptop or in your CI environment. Then point your AWS SDK clients and the AWS CLI at the endpoint URL and credentials the emulator provides, and create resources the way you do on AWS. For step-by-step instructions, see Getting started with AWS Emulator.

    People who write code that calls AWS APIs, from independent developers to enterprise teams, and the coding agents they work with. Use it while you build, in CI on your pull requests, and in agent loops that write code, run it and fix errors.

    You can practice AWS SDK and AWS CLI calls on your own computer without an AWS account. The resources you create stay in the emulator and never reach an AWS account.

    No. The emulator handles your requests locally. You need an account only when you deploy to AWS.

    AWS Emulator has no additional service fee. You pay only for AWS resources when you deploy to AWS. Its source code is on GitHub under the CC0 1.0 Universal public domain dedication, except third-party code in the vendor/ directory, which is under the Apache License 2.0. While you build and test, you don't wait for a deployment to see each change.

    AWS Emulator is built to emulate AWS services through their publicly documented APIs. Each service is generated from the API model AWS publishes for it, the same models behind the AWS SDKs, and its behavior is filled in and verified release by release. To see how an API's behavior compares with AWS, check the fidelity report.

    AWS Emulator is for development and testing, not production. It doesn't replace testing your security settings on AWS, and how closely it matches AWS varies by service and feature. For current limits, see the documentation.

    Each emulated API is generated from the model AWS publishes for it, and its behavior is checked against AWS with each release. To see how well the APIs your application uses are covered, check the fidelity report.

    A mock returns whatever you tell it to. The emulator runs the API itself, including validation, errors and state that carries across calls. Your tests catch the bugs a mock would hide, and you no longer maintain mock fixtures.

    Keep what's working for you. Use the emulator for the tests and agent loops where your current setup is slow, costly or hard to scale.

    AWS Emulator works with the AWS SDKs and the AWS CLI. Point your SDK or the CLI at the emulator's endpoint URL, and your code stays the same. On Linux, it runs as a native binary with no container runtime. Rust tests can also use embedded mode, which runs one emulator inside each test with no separate process.

    Yes. Start one emulator per agent, test suite or branch. Each copy gets its own port, keys and in-memory state, so they never see or overwrite each other's resources

    Your resources and their data stay on your device. AWS Emulator collects usage telemetry by default, and you can turn it off. The documentation lists what it collects and how to opt out.

    No. State is kept in memory and is gone when you stop the emulator. A new run starts from a clean slate.

    No. AWS Emulator is for development and testing. It offers no durability, availability or security guarantees. Don't use it for production traffic or production data.

    Report it through the AWS Emulator GitHub repository. Include the request you sent, the response you got and the response AWS returns.

Did you find what you were looking for today?

Let us know so we can improve the quality of the content on our pages