- 최신
- 최다 투표
- 가장 많은 댓글
In your case, it's not likely a question of IoT Core versus Greengrass. You will likely use IoT Core. It's just whether you will use Greengrass as well.
IoT Core runs in the cloud and Greengrass runs at the edge (usually). IoT Core is a cloud service but Greengrass is an edge runtime, with supporting cloud service.
You can build your device software on top of the Greengrass edge runtime. For devices with sufficient resources, Greengrass is a great way to compose and manage your device software. For your central unit, you would likely use either Greengrass or one of our IoT Device SDKs (https://docs.aws.amazon.com/iot/latest/developerguide/iot-sdks.html) to create your device software. AWS IoT Device Client (https://github.com/awslabs/aws-iot-device-client ) may also be of interest; it is a Linux reference implementation using the C++ IoT Device SDK. Greengrass is likely a good choice for your device if the device will perform edge processing (Lambdas or ML inference for example) and/or if the device acts as a hub for other IoT devices.
However you choose to compose your device software, your device will likely connect to IoT Core and publish messages to the IoT Core message broker.
https://aws.amazon.com/iot-core/features/
Hi there! A few points to below to add to the details Greg provided.
-
You can think of IoT Core as a pub/sub messaging broker with added features for device management, security, OTA etc. Greengrass is a software runtime designed to operate on edge devices and provides functionality to make it easier to develop edge solutions such as local compute, ML inference, ability to build custom components etc. When you use Greengrass, it uses IoT Core for secure connectivity to AWS and other infrastructure services.
-
Since IoT Core is an ingestion & device management service and Greengrass is a software runtime used to develop device software it doesn't make sense to compare them since they serve different use-cases.
-
Some questions to ask when deciding how to architect your overall solution:
-
Do you have a need for local compute? If so, Greengrass would likely make your development easier since you can create "components" which can be deployed to an entire fleet of devices
-
How much and what type of data do you need to send for ML processing and what is the cost of sending data back to the cloud? Sending telemetry data is different than image files, video data.
-
Do you need to operate the solution when there is no viable network connection? If so, then Greengrass is essential since messages cannot be sent to IoT core without a connection. Greengrass can operate without network connectivity and run ML inference which may be useful if your solution requires real-time decision-making capabilities. Even with a connection there would be latency with cloud-based inference.
-
Do you have a need for real-time processing? (See above)
-
What is your plan for deploying software to your edge hardware? If you are deploying software to many devices, Greengrass would simplify the process and DevOps/management/compliance components.
It sounds like you are currently in the prototyping phase, however once you develop device software which requires management at scale, then Greengrass would simplify your operations, OTA, security posture etc.
관련 콘텐츠
- 질문됨 24일 전