AWS CloudFormation templates - Disaster Recovery for AWS IoT

AWS CloudFormation templates

This solution uses AWS CloudFormation to automate the deployment of the Disaster Recovery for AWS IoT in the AWS Cloud. It includes the following CloudFormation templates, which you can download before deployment:

        disaster-recovery-for-aws-iot.template template button
      disaster-recovery-for-aws-iot.template: By launching this template (also referred to as main template) you initiate the launch of the whole solution. It creates a CodeBuild project and a Lambda function which starts the CodeBuild project. CodeBuild deploys the solution as such in the primary and secondary Regions.


The CodeBuild project automatically launches these templates after you launch the disaster-recovery-for-aws-iot template.

primary-region.template: Creates resources in the primary Region. A DynamoDB table, topic rules to ingest messages from registry events and shadows into the DynamoDB table, Lambda functions for JITR and IAM roles with permission for AWS IoT and Lambda.

secondary-region.template: Creates resources in the secondary Region. A DynamoDB table with streams enabled, Lambda functions and a step function setup. When messages are ingested in the DynamoDB table a step function workflow is launched by a Lambda reading data from the DynamoDB stream. Step Functions replicate devices and shadows.

r53-health-checker.template: Launches the required AWS resources for Route 53 in the primary and secondary Region. Creates an Amazon API Gateway, a Lambda function which checks the MQTT message broker and a health check in Route 53. It also creates a device in AWS IoT Core which is used to perform MQTT health checks.

CodeBuild project: Apart from launching the CloudFormation template the CodeBuild project executes additional tasks to launch the solution.

  • Creates Amazon S3 buckets in both Regions and copies CloudFormation templates and tools to these buckets.

  • Creates a global DynamoDB table out of the tables in both Regions.

You can customize all templates to meet your specific requirements.