- AWS Solutions Library›
- Guidance for Monitoring Livestock Health and Quality of Life on AWS
Guidance for Monitoring Livestock Health and Quality of Life on AWS
Overview
How it works
These technical details feature an architecture diagram to illustrate how to effectively use this solution. The architecture diagram shows the key components and their interactions, providing an overview of the architecture's structure and functionality step-by-step.
Well-Architected Pillars
The architecture diagram above is an example of a Solution created with Well-Architected best practices in mind. To be fully Well-Architected, you should follow as many Well-Architected best practices as possible.
This Guidance recommends using Amazon CloudWatch for each AWS service and configuring alarms and event notifications through Amazon Simple Notification Service (Amazon SNS) to increase operational efficiency. You can also establish AWS IoT rules to report to CloudWatch on devices experiencing issues. By using CloudWatch logs, you can understand the system performance and observe if end-user content consumption is meeting business goals. You can script this reference architecture using AWS CloudFormation, adding it to your own development pipeline and deploying it in your cloud environment. This Guidance also uses AWS CodePipeline to deploy changes to Amazon ECS and Lambda.
This Guidance uses only serverless and managed services to reduce your security maintenance tasks. For example, it uses AWS Identity and Access Management (IAM) policies to manage permissions and authorization for AWS IoT Core devices, and it authenticates message queuing telemetry transport (MQTT) messages to AWS IoT Core. An AWS IoT message broker encrypts all communications in transit. AWS IoT Core also lets you manage device security and certificates and publish alerts if a device exhibits certain behaviors. You should follow best practices when setting access requirements using IAM, including least-privilege access, password and key rotation, service control policies, and automated alerting. You should also implement appropriate OAuth or similar authentication for the dashboard services, such as by using Amazon Cognito.
This Guidance uses network isolation of managed services and offers firewall options to control network access. Each specific AWS service encrypts its data, and AWS encrypts all data in transit between services. An AWS Certificate Manager (ACM) certificate encrypts all traffic in transit into AWS, and Application Load Balancer uses TLS 1.2 for communication. This Guidance also protects data in data lakes using SSE-S3 encryption and uses dashboards and data APIs instead of providing direct data access to users.
This Guidance incorporates managed services with availability design goals of at least 99.9 percent. AWS IoT Core and the MQTT protocol were built for resilience, and AWS IoT Device Software Development Kits (SDKs) have built-in resilience features and support non-client-side disconnect and queuing of plain MQTT operations in the case of a network failure. AWS IoT Core stores information about IoT devices, CA certificates, device certificates, and device shadow data and automatically replicates it across Availability Zones in a hardware or network failure. The AWS IoT Device Shadow service uses AWS IoT Greengrass to sync local device shadow states with AWS IoT Core, so an app running on an IoT device can still communicate with its shadows and AWS IoT if the device goes offline. The AWS IoT Greengrass stream manager batches data feeds in a network failure and automatically forwards information when connectivity is restored. Additionally, all compute in this Guidance is stateless and relies on data storage that is purpose built to persist system state.
This Guidance uses services chosen for low latency, high availability, resilience, removal of undifferentiated heavy lifting, and efficiency. For data ingestion, it uses Amazon Kinesis, which can easily scale to hundreds of thousands of devices and millions of messages per month. For processing compute, it uses Lambda, which scales alongside serverless ingestion and data services. Amazon ECS provides steady state, high availability, and quick responsiveness. This Guidance scales its use of serverless and managed services and components up and down as needed. It can handle 100,000 messages per minute from devices and over one billion messages stored in DynamoDB.
You can configure this Guidance to meet your needs. For example, you can set up Lambda functions and AWS IoT rules, as well as CloudWatch alerts, alarm thresholds, configurations, and logs. You can also experiment to pick the right data store for your needs, and AWS CodePipeline lets you make changes to the Amazon ECS and Lambda parts of the architecture.
This Guidance uses a serverless infrastructure to avoid overprovisioning resources, and it uses managed services to relieve your management burden, helping you save on operational costs. Serverless architectures provide a pay-as-you-go pricing model and scale based on demand. You can also optimize costs by service. For example, you cache dashboard responses in Amazon CloudFront or move data in Amazon S3 and DynamoDB based on access patterns. Kinesis Data Streams and DynamoDB let you choose between on-demand and automatically scaling modes, and you can implement throttling using AWS WAF. This Guidance does not anticipate any inter-Region data transfer charges. For OpenSearch Service you can purchase the optimal instance type for your needs and manage storage to reduce costs. You can also use Compute Savings Plans to optimize compute costs.
You can select from existing IoT device partners that fit your technical and financial needs within the AWS Marketplace, or if you manufacture your own IoT hardware, you can directly control the connectivity costs using AWS IoT. AWS IoT Core lets you filter important equipment data and use the MQTT protocol to efficiently transfer data to AWS, minimizing repetitive data. This Guidance also recommends that you use AWS Budgets and Amazon Data Lifecycle Manager policies to reduce unnecessary costs and Cloud Intelligence Dashboards for comprehensive cost management.
This Guidance uses managed services that are serverless where possible and that you can easily scale up and down based on demand, minimizing the environmental impact of backend services. This Guidance also minimizes redundant data sent from IoT devices to AWS IoT Core and stores data once in DynamoDB, reducing data movement across the network.
Disclaimer
Did you find what you were looking for today?
Let us know so we can improve the quality of the content on our pages