An IoT Cloud Service Comparison
If you’re looking for an easy way to get your Internet of Things (IoT) projects set up, consider partnering with a premier IoT Cloud service. Two of the big kahunas right now are AWS’s IoT Core and Google’s Cloud IoT Core. These platforms do the heavy lifting, offering the end-to-end features that help you run your applications. This allows you to focus less on things like infrastructure and more on developing product features.
Most IoT platforms include features like authentication and authorization, device management, and robust data analytics. This should be expected, as IoT and data analytics go hand-in-hand as the data such devices gather are immensely useful and informative. But how do you choose the right fit for your project? What are the differences that matter to you?
You could opt for the tried and true coin toss method. However, before you resort to this level of entertaining, though haphazard, decision making, we suggest taking a gander through the sections below. In them, we will look at the IoT Core offerings from Amazon Web Services and Google Cloud. We will compare how they are similar, how they are different, and which option would be best for your project.
AWS IoT Core
You probably know what Amazon Web Services (AWS) is, and its IoT Core offering is one of the most robust platforms available today. In short, IoT Core is a managed cloud service that allows you to connect devices, both to each other and with the other bountiful cloud services offered by Amazon.
AWS IoT Core supports the HTTP, WebSockets, and/or MQTT protocols. It even goes so far as to offer an MQTT test client to help you verify that your devices are publishing the appropriate messages on topics. No matter which protocol you use, all communications are secured using TLS. You can integrate your IoT devices with the other services offered by AWS to gather, process, analyze, and act on the data that the connected devices generate. You can also track and communicate with devices, even if they’re not connected at that moment.
AWS offers a free, low throughput tier that allows you to try out its features. Pricing is dependent on your use of connectivity, messaging, device state and metadata storage, and the Rules Engine for message transformation and routing. There are no minimum fees or mandatory service usage. AWS offers a calculator (aka fancy Excel Spreadsheet) to help you estimate the cost of your usage.
Google Cloud IoT Core
Google Cloud IoT Core is also a fully managed service that you can use to connect your various IoT devices. If used with the other services offered by Google Cloud, you have an end-to-end IoT solution. You can gather, process, analyze, and visualize the data your devices generate.
Google Cloud IoT currently supports the use of HTTP and MQTT protocols and requires TLS encryption for messages sent via MQTT.
Pricing for Cloud IoT Core usage is based on the amount of data exchanged. You can test out the service using the free tier, which supports a maximum of 250 MB per month. After that, the amount you pay per MB of usage depends on your total data volume; the more you consume, the cheaper your per-MB cost is. Prices begin at $0.0045 per MB.
To help you get started, Google offers samples written in a variety of languages. Depending on what you are looking for specifically, you’ll find examples written in C, C#, Go, Java, Node.js, PHP, Python, or Ruby.
A Comparison of AWS vs. Google
At a glance, the IoT platforms offered by AWS and Google look to be pretty similar, making it difficult to choose between the two. In the end, the best choice for you depends on your comfort with complexity and the specific features you need for your project. For example, AWS is slightly more challenging to secure for those new to the process, while Google offers better data integration. However, Google doesn’t support the WebSockets protocol.
Authentication and Authorization:Google Cloud IoT Core supports authentication via public/private key pairs and JSON Web Tokens. These are ways your devices can “prove” that they’re allowed to work with your platform. AWS, on the other hand, offers a slightly more complex custom authorizers scheme where you can authenticate devices and authorize operations using the strategies of your choice.
Communication Protocols:Both Google and AWS support the use of HTTP and MQTT protocols, but AWS also supports WebSockets for asynchronous communication. All require communications to be secured using TLS.
Data Analytics:Google offers out-of-the-box tools, including integration with Google Big for data analytics and a variety of machine learning services (e.g., Cloud Dataflow, BigQuery, and more). AWS, on the other hand, only collects the data and offers basic data management (e.g., filtering and transforming it before routing it elsewhere). Further processing requires the use of another service, such as AWS’ IoT Analytics Service.
AWS, which is device type and OS agnostic, allows both individual and bulk device registrations, as well as individual permissions management, monitoring, and troubleshooting. Google, on the other hand, allows coarse-grained device configuration and management for registered devices.
SDKs:AWS offers a more significant number of fully-developed SDKs in a variety of languages. Google offers just one end-to-end sample with numerous other samples for individual tasks. It should also be mentioned that not all samples are available in all languages. For example, HTTP client samples are only available in Java, Node.js, and Python.
And the Verdict Is....
Well, really the verdict will be up to you. Partnering with a cloud-based IoT platform is a way to outsource a tremendous amount of the burden you would otherwise have to account for. This lets you focus on what makes your project stand out: user features. Both Google and AWS offer two top-notch options that you should consider for your next project.