What does this Amazon Web Services Solution do?

Many Amazon Web Services services are designated to help customers build serverless IoT applications that gather, process, analyze, and act on connected device data, without having to manage any infrastructure, which can help reduce costs and increase productivity and innovation. But, it can be a challenge to test IoT applications and backend services without a large pool of connected devices.

The IoT Device Simulator solution is designated to help customers more easily test device integration and IoT backend services. This solution provides a web-based graphical user interface (GUI) console that enables customers to create and simulate hundreds of virtual connected devices, without having to configure and manage physical devices, or develop time-consuming scripts.

Amazon Web Services Solution overview

This device simulation solution enables customers to build a large fleet of virtual connected devices (widgets) from a user-defined template and simulate those widgets publishing data at regular intervals to Amazon IoT. You can also monitor individual widgets from the simulator or observe how backend services are processing the data. The diagram below presents the architecture you can deploy in minutes using the solution's implementation guide and accompanying Amazon CloudFormation template.

architecture_IoT_simulator-china-rebranded
 Click to enlarge

IoT Device Simulator architecture

The IoT Device Simulator includes a device simulator API, which leverages Amazon API Gateway to invoke the solution’s microservices (Amazon Lambda functions). These microservices provide the business logic to perform operations on virtual devices and device types, record simulation metrics, and perform administration tasks. When the device simulator API receives an authorized request, Amazon API Gateway invokes the appropriate Lambda function. The Lambda function returns the execution results to the API, which returns the results to the simulator console.

When a device simulation request is received, the device microservice sends the request to a simulation queue in Amazon Simple Queue Service (Amazon SQS). Amazon Elastic Container Service (Amazon ECS) containers provisioned by Amazon Fargate contain a simulation engine that periodically polls the simulation queue for simulation requests.

When a start simulation request is received, the simulation engine launches a virtual device that starts publishing simulated data to the Amazon IoT endpoint. After the specified duration, the simulation engine stops the simulation, terminates the virtual device, and updates the device state and metrics in Amazon DynamoDB. A simulation console displays information about virtual devices and device types, simulation states, and user profiles. You use the console to create and terminate virtual devices, start and stop simulations, and view metrics.

IoT Device Simulator

Version 2.1.1
Last updated: 06/2020
Author: Amazon Web Services 

Estimated deployment time: 5 min

Source code 

Features

IoT Device Simulator reference implementation

Leverage the IoT Device Simulator out of-the-box, or as a reference implementation to build a custom simulation engine for your specific use case.

User Interface

A web-based graphical user interface (GUI) console enables customers to create and simulate hundreds of connected devices, without having to configure and manage physical devices, or develop time-consuming scripts.
Standard Product Icons (Features) Squid Ink
Explore all Amazon Web Services Solutions

Browse our portfolio of Amazon Web Services -built solutions to common architectural problems.

Learn more 
Next-Steps-Icon_Find-a-Partner-B
Find a Partner

Find Amazon Web Services certified consulting and technology partners to help you get started.

Learn more 
Standard Product Icons (Start Building) Squid Ink
Start building in the console

Sign-up and start exploring our services.

Get started