3.2.3. Provision Reliable Storage for IoT Data Sent to the Cloud¶
ID | Priority | Best Practice |
---|---|---|
BP 3.2.3.1 | Required | Store data before processing |
BP 3.2.3.2 | Highly Recommended | Have mechanisms in place to compensate when the primary storage location is unavailable |
Architecture Notes - BP 3.2.3.1 - Store data before processing¶
Ensure that the data from the devices is stored before processing. As new requirements and capabilities are added, stored data can be analyzed to meet the new requirements.
Recommendation 3.2.3.1.1 - Use IoT Core Rules Engine to send data to Kinesis Data Firehose to batch and store data on Amazon Simple Storage Service (Amazon S3)
- IoT Rules Engine can send data to Kinesis Data Firehose to batch and store data on Amazon Simple Storage Service (Amazon S3). Intelligent tiering can be enabled on S3 to reduce storage costs.
- Understand the latency to access data and choose the Region to store the data in based on device location.
- If data will be processed in Amazon EC2 instances, consider using the highly available and low-latency Amazon Elastic Block Store (Amazon EBS).
- NoSQL data can be stored in Amazon DynamoDB, which is a key-value and document database that delivers single-digit millisecond performance at any scale.
Architecture Notes - BP 3.2.3.2 - Have mechanisms in place to compensate when the primary storage location is unavailable¶
There should be recovery plans for failures in storing and accessing device data in the cloud. Understand the Recovery Point Objective (RPO) and Recovery Time Objective (RTO) needed by your application to access data to be used for analysis.
Recommendation 3.2.3.2.1 - Know how to monitor and take action on cloud storage failures for IoT data
- AWS Personal Health Dashboard provides notification and remediation guidance when AWS is experiencing events that might impact you. Storage and access of data can be modified based on the notification.
- Use Amazon CloudWatch Logs to trigger on events on writing and reading data and take appropriate error handling action.
- Use AWS IoT rules engine error actions to provision data storage to other locations if primary storage is unavailable.
Additional Resources¶
- Amazon S3 Intelligent-Tiering
- AWS Storage Optimization
- AWS Personal Health Dashboard Status
- Track and respond to changes to your AWS resources
- Amazon S3
- AWS Cloud Storage Services
- Multi-Tiered Storage
- AWS Health
- AWS Personal Health Dashboard
- Amazon CloudWatch Logs
- AWS IoT Rules Engine
- Amazon CloudWatch Events
- Track and respond to changes to your AWS resources
- Creating a CloudWatch Events Rule That Triggers on an AWS API Call Using AWS CloudTrail
- Create a Custom Event Pattern for a CloudWatch Event Rule