What does this AWS Solution do?
Many AWS 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.
AWS 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 AWS 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 AWS CloudFormation template.
IoT Device Simulator architecture
The IoT Device Simulator includes a device simulator API, which leverages Amazon API Gateway to invoke the solution’s microservices (AWS 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 AWS 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 AWS 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 reference implementation
Browse our portfolio of AWS-built solutions to common architectural problems.
Find AWS certified consulting and technology partners to help you get started.
Sign-up and start exploring our services.