Guidance for Managing Agriculture Assets Using AWS Connected Device Framework
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.
Operational Excellence
Amazon CloudWatch metrics allow you to monitor the state of API Gateway, Lambda functions, and the Neptune database. Using dashboards with CloudWatch, you can validate that the provisioning workflow, API, and Asset Library are all functioning correctly and within normal limits. You can establish AWS IoT Rules to report on devices experiencing issues to CloudWatch.
Additionally, AWS CloudFormation and AWS CodePipeline enable consistent delivery across different environments. Well-defined continuous integration, continuous delivery (CI/CD) processes also help ensure consistent delivery of changes to the API or Asset Library.
Security
AWS IoT Core provides features to manage device security and certificates and to publish alerts in case a device exhibits behavior indicative of an issue through AWS IoT Device Management. Amazon Cognito enables granular access to APIs and asset data by maintaining and validating appropriate claims. Amazon Virtual Private Cloud (Amazon VPC) security groups enable network isolation of asset data stored in Neptune.
Reliability
The AWS IoT Device SDK has built-in functionality to support non-client-side disconnect and queuing of plain Message Queuing Telemetry Transport (MQTT) operations in case of network failure. Lambda has built-in failure logic to automatically retry failed operations and a dead-letter queue (DLQ) capability to push failed operations to Amazon Simple Notification Service (Amazon SNS).
Neptune can store an unlimited amount of edges and vertices. By using serverless compute nodes, Neptune can also automatically adjust to query demand. Through Lambda, all compute in this Guidance is stateless and relies on Neptune to persist the system state.
Performance Efficiency
By using AWS IoT Core, Lambda and Neptune, the Guidance can scale up to handle the concurrent processing of potentially thousands of requests or scale down when there are no pending calls to process.
Additionally, Neptune is purpose-built for farm ontology (FO), which is graphical in nature, with each asset being related to many other assets. We use AWS IoT Core in this Guidance for device connectivity and data ingestion that can easily scale to a hundred thousand devices and millions of messages a month.
Cost Optimization
Neptune allows you to choose storage as standard and I/O-optimized to reduce cost for I/O intensive workloads. Neptune also uses compute nodes on demand and flexibility in storage and compute pricing models, providing an optimized cost and performance ratio for graphical data.
Sustainability
Lambda and Neptune with serverless nodes reduce wasted compute cycles by enabling you to use compute only as needed, so you can provision the exact amount of compute needed at any given moment. Since Lambda and Amazon Neptune Serverless are managed services, they leverage shared compute resources and variable demand to reduce overall compute capacity. This helps minimize the environmental impact of the Guidance workload.
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