AWSでスケーラブルなIoTシステムを設計することで、御社はインフラストラクチャ管理について心配することなく、コアビジネス要件に集中できます。 スケーラビリティが重要であることを覚えておくことが重要ですが、適切なIoTシステムを設計する際には、システムのコスト効率を維持することも重要な懸念事項です。 処理のためにデータをバッチ処理し、さまざまなタイプのデータに適切なサービスを使用し、そのデータを適切に保存することで、あらゆるIoTシステムをコスト効率よく拡張できます。
IoT Coreの使用
AWS IoT Coreを使用する主な利点は、接続されたデバイスへの双方向通信を可能にすることです。 MQTTプロトコルを使用すると、デバイスはリクエストを公開できるだけでなく、サブスクライブすることもできます。 一部のIoTシステムはこの機能を必要としないため、デバイスがデータを送信するだけでよい場合、IoT Coreは必要ありませんが、それでも役立つ可能性があります。
また、IoT Core MQTTペイロードの制限(リクエストあたり最大128kB)は、IoT Coreを使用するときにデータフローの設計が重要であることを意味します。
データによるスケーリング
すべての受信データを管理するために単一のIoT Coreトピックを割り当てることは、IoTクラウドサービスを簡単にセットアップするための簡単なソリューションかもしれませんが、これはスケーラビリティにとって不適切な選択である可能性があります。 トピックを通じて送信されるデータの量によっては、サービスがフラッディングされ、イベントの失敗が発生する可能性があります。
IoTシステムは、デバイスやゲートウェイからのほぼリアルタイムの大量のストリーミングデータを処理できる必要があります。 インフラストラクチャの設計は、現在および将来接続されるデータとデバイスの量に応じて拡張できる必要があります。
データベース処理を過負荷にしないようにしながら、ほぼリアルタイムのデータ交換を効率的に実現する最も効率的な方法は、データをメッセージキューにバッチ処理し、メモリキャッシュバッファにロードしてから、データベースやストレージバケットに書き込むことです。 このバッチ処理により、データを効率的にキャッシュでき、データベースの読み取りと書き込みのクォータを常にトリガーしないため、コストを節約できます。
IoTルールの適切な使用
デバイストピックから単一のサービスに直接受信データを消費すると、システムが完全なスケーラビリティを実現できなくなります。 このようなアプローチでは、障害が発生した場合や、データが多すぎてフラッディングが発生した場合に、システムの可用性が制限されることがあります。
IoTコアルールにより、システムはさまざまなAWSサービスにデータを並行してルーティングする際の優れた柔軟性が得られます。 AWSサービスには、さまざまなデータフロープロパティとさまざまなユースケースがあります。 これらのさまざまなサービスをシステムへの単一のエントリポイントとして使用することはできません。そのため、データを適切に識別して適切な場所に送信するには、ルールが重要です。 AWS IoTサービスを不適切に使用すると、システムに潜在的な弱点が生じ、スケーラビリティと効率が低下する可能性があります。 データフローの制限とパイプラインの使用に注意することが重要です。
Conclusion
データフローを知ることで、IoTアーキテクトは適切なAWSサービスのみを使用してシステムを適切に設計できます。 AWSで効率的に設計されたIoTシステムは、すべてのデータを単一のサービスまたはトピックにパイプして単一のデータベースに保存する代わりに、さまざまなAWSサービスを使用して最大限の相乗効果を実現します。 InCloudは、すべてのサービスに関する深い知識とさまざまなIoTデータストリームの経験を活用して、AWS上で優れたIoTシステムを設計できます。