ZYLK、APISIX最適化によりIoTサービスの効率化を実現

May 26, 2023

Case Study

概要

アルフォンソ・ゴンザレスは、スペインにおけるオープンソースソリューションの最適化とデジタルトランスフォーメーションを推進するリーダーであるZYLKのAI&IoT開発者です。アルフォンソは、ZYLKがAPISIXをMQTT通信に使用し、この実装内でサイバーセキュリティを実装した経験を共有しました。彼は「安全で信頼性が高く、高性能なAPISIXは、おそらくAPIにとって最良のゲートウェイです」と述べています。

課題

  • MQTTルーティング、K8Sネットワーキング、HTTP通信に関する問題に悩まされていました。
  • アクセス可能なすべてのエンドポイントとルーティングを管理および維持することが困難で、多大な時間と労力がかかっていました。
  • ネットワークに新しいユーザーを追加することが難しく、サービスやエンドポイントにアクセスする前にアーキテクチャ全体に精通する必要がありました。

結果

  • ZYLKは、APISIXを実装することでHTTP通信の問題とMQTTの問題を解決しました。
  • ZYLKは、APISIXをTCPプロキシとして使用し、Raspberry PiからクラウドのRabbitMQキューシステムへの安全なストリームルートを作成し、データ伝送の機密性と完全性を確保しました。
  • ZYLKは、ユーザーフレンドリーなインフラストラクチャの大幅な改善を経験し、時間と労力を大幅に節約し、最終的に生産性の向上につながりました。

背景情報

ZYLKは、ビッグデータ、Liferayウェブサイトとポータル、人工知能に特化した経験豊富なITコンサルティング会社で、15年以上の実績があります。同社は、2004年以降、スペインおよびヨーロッパの民間企業、公共機関、政府機関を含む多様なクライアント向けにオープンソースソリューションの最適化とデジタルトランスフォーメーションを推進するパイオニアです。

ZYLKは、オープンソースソフトウェアに完全に依存してソリューションを提供しています。なぜなら、オープンソースソフトウェアは、コスト効率、柔軟性、透明性、コミュニティサポートなど、プロプライエタリな代替品に比べて多くの利点があると信じているからです。APISIXを実装する前は、チームは通信エンドポイントを一つずつ処理し、クライアントから各エンドポイントを直接参照する必要がありました。これにより、アクセス可能なすべてのエンドポイントとルーティングを管理および維持するために多大な時間と労力がかかっていました。

以前のプロセスの主な課題は、ネットワークに新しいユーザーを追加することが難しく、サービスやエンドポイントにアクセスする前にアーキテクチャ全体に精通する必要があったことです。さらに、チームはMQTTルーティングの問題、K8Sネットワーキング関連の問題、HTTP通信の問題に直面していました。

技術選定

ZYLKは、多くのApacheプロジェクトを含むオープンソースソフトウェアを完全に使用しています。そのため、APIゲートウェイを探す際にApacheのソリューションを試すのは良い選択でした。約6ヶ月間問題の解決策を探し、Kong GatewayやHAProxyと比較した結果、ZYLKは最終的にAPISIXを実装することを選択しました。その理由は以下の通りです。

1. APISIXはシンプルで、包括的なセキュリティプラグインとユーザーフレンドリーなダッシュボードを備えています。

APISIXは、シンプルで使いやすいインターフェースと包括的なセキュリティプラグインを提供しており、ユーザーがAPIゲートウェイを管理および保護するのが容易になります。ユーザーフレンドリーなダッシュボードにより、APIゲートウェイの設定と管理が簡単になります。

2. APISIXはHTTPだけでなく、複数のプロトコルをサポートしています。

APISIXは、幅広いプロトコルをサポートしており、さまざまなタイプのAPIトラフィックを管理するための多目的なツールです。この柔軟性により、ユーザーはすべてのAPIトラフィックを一箇所で管理でき、インフラストラクチャを簡素化し、複雑さを軽減できます。

3. APISIXは、クライアントとサーバー間のmTLSを使用して、着信MQTTメッセージをリダイレクトする機能を備えています。

APISIXのMQTTメッセージングとmTLS暗号化のサポートにより、クライアントとサーバー間の通信に追加のセキュリティ層が提供されます。この機能により、着信MQTTメッセージをAPISIXを介して安全にリダイレクトし、宛先に到達する前に暗号化および認証されることが保証されます。これにより、システム全体のセキュリティが強化され、機密情報が不正アクセスや改ざんから保護されます。

APISIXは、ZYLKのソリューションに貴重な追加要素となり、APIゲートウェイのニーズをよりシンプルで安全に管理する方法を提供しました。

アーキテクチャ紹介

1. 産業用デバイス:PLCが気候制御機器のデータを登録(遠隔地の建物内)

まず、PLCなどの産業用デバイスに焦点を当てます。これらのデバイスは、気候制御機器によって生成されたデータを登録するために使用されます。気候制御システムは遠隔地の建物にあり、エッジコンピューティングインフラストラクチャと見なされます。これらのデバイスによって生成されたデータは、クラウドサーバーに保存する必要があります。クラウドにはデータを共有する2つの部分があり、データは産業用プロトコルによって接続されています。

2. 産業用プロトコル:ModbusとBACnetを使用してPLCからデータを読み取る

PLCから直接データを読み取るために、BACnetのモジュールが使用されます。ZYLKは、これらのモジュールとBACnet情報をTCPに変換して管理しやすくすることを計画しています。データが適切な形式になったら、MQTTを使用してクラウドサーバーに送信されます。MQTTはIoTデバイスにとって使いやすいですが、クラウドで扱う際にはサイバーセキュリティ対策の実装に関していくつかの課題がありました。

3. MQTT通信:TCP変換が行われ、MQTTを介してクラウドサーバーにデータが送信される

ZYLKは、ユースケースにおける安全なMQTT通信のソリューションとしてAPISIXを使用しています。産業用空調機器によって生成されたデータはPLCによって収集され、Modbus用のTCPゲートウェイによってTCP言語に変換され、Raspberry Piに送信されます。データはMQTTプロトコルを介してキューシステム(MosquittoまたはRabbitMQ)に到達する必要があり、ZYLKはこれを実現するためにAPISIXを使用しています。

エッジインフラストラクチャ

このデータを保存する目的は、機械の動作に関する履歴記録を持ち、クラウドで機械学習モデルを構築するために使用することです。ZYLKは、このデータを使用してNTLモデルをトレーニングし、フィードします。エッジインフラストラクチャは、左側に産業用空調機器がデータを生成し、PLCによって収集されるシンプルな図で構築されています。

Raspberry Piは非安全な方法でMQTTメッセージを送信しており、ZYLKにとって問題でした。なぜなら、メッセージを少なくともAPISIXから外部まで安全にする必要があったからです。Raspberry Piは遠隔地の建物にあり、メッセージがAPISIXに到達した後のセキュリティはあまり気にしていませんでした。なぜなら、キューシステムであるRabbitMQは自社のサーバー上にあったからです。しかし、通信の最初の部分を保護することは、サイバーセキュリティと暗号化されたメッセージを確保するために重要でした。

4. MLモデル:クラウドに到達したデータは保存され、LSTMモデルのトレーニングとフィードに使用される

クラウドエッジインフラストラクチャ

最後に、クラウドにはNIFIデータベースを備えたKubernetesクラスターがあります。産業用デバイスによって生成されたデータはクラウドに保存され、LSTMモデルのトレーニングとフィードに使用されます。

実装プロセス

ステップ1:プラグインを有効にする

ZYLKは、APISIXをTCPプロキシとして機能させ、APISIXからRabbitMQキューシステムへのストリームルートを作成するために行った手順を説明しています。まず、設定ファイルの数行をコメントアウトし、指定されたポートをTCPメッセージのストリームプロセスとして機能させることで、MQTTプロキシプラグインを有効にしました。この設定を行うことで、他のAPISIX機能やREST API、HTTPプロトコルを問題なく使用できることに注意してください。

プラグインを有効にする

ステップ2:ストリームルートを作成する

次に、ZYLKは、ダッシュボードには表示されないが道路に似た特別なオブジェクトを使用してストリームルートを作成しました。使用しているプラグイン、MQTTプロトコル名とバージョン、および安全な通信のための証明書に一致するSNI(サーバー名表示)を指定する簡単なコマンドを使用しました。RabbitMQサービスまたは他のメッセージキューシステムをホストするアップストリームノードを指定しました。APISIXをTCPプロキシとして有効にし、アップストリームルートを設定することで、ZYLKはRaspberry PiからクラウドのRabbitMQキューシステムに安全にMQTTメッセージを送信することができました。これにより、ユースケースに必要なサイバーセキュリティと暗号化されたメッセージが確保されました。他のAPISIX機能やREST API、HTTPプロトコルを引き続き使用できる能力により、ソリューションは柔軟でニーズに適応可能でした。ZYLKは、Mosquitto Brokerでソリューションをテストし、完璧に動作することを確認しました。

ストリームルートを作成する

ステップ3:証明書に署名してロードする

ストリームルートを作成した後、次のステップは証明書を作成し、署名してAPISIXインスタンスにロードすることでした。彼らは、証明書、キー、SNIを含むSSLオブジェクトを作成するためにPythonスクリプトを使用し、SNIがストリームルートで指定されたものと一致することを確認しました。

証明書に署名してロードする

ZYLKは、SNIが正しいことを確認することが重要であると強調しています。証明書がロードされると、クライアントとサーバー間で相互TLSが確立され、両方が証明書を表示します。この設定により、ZYLKはAPISIXから外部への安全な通信を確保しました。また、必要に応じてAPISIXとアップストリーム間の通信を暗号化することもできますが、暗号化しないことを選択しました。ZYLKは、APISIXを他の用途にも使用し、プラグインが追加の機能を提供することを発見しました。彼らは、着信トラフィックをMQTTブローカーにリダイレクトし、必要に応じてクライアントIDを使用してメッセージを異なるトピックに分割しました。また、MQTT認証も可能でした。

APISIXとMQTTの使用により、ZYLKは典型的なHTTP関連の問題を超えた独自の問題を解決し、能力を拡張することができました。安全な通信チャネルを作成することで、産業用機器によって生成されたデータを保存および分析し、予知保全のための機械学習モデルをトレーニングすることができました。

APISIX使用後の成果

ZYLKはAPISIXを強く推奨し、ビジネスパートナーに積極的に推薦しています。友人にAPISIXを説明する際、アルフォンソ・ゴンザレスは「APISIXは、認証、レート制限、トレーサビリティを含む多くのルーティング機能を提供するApache APIゲートウェイサービスです」と述べています。アルフォンソは、APISIXがAPIにとって最良のゲートウェイであると信じています。

ZYLKのユースケースは、産業用デバイス、産業用プロトコル、MQTT通信、MLモデルを含んでいました。ZYLKがAPISIXを使用して得た利点は以下の通りです。

1. 産業環境でAPISIXを使用して安全にMQTTメッセージを送信する

PLCなどの産業用デバイスは、気候制御機器のデータを登録し、TCPに変換してMQTTを使用してクラウドサーバーに送信します。APISIXを使用して、Raspberry PiからクラウドのRabbitMQキューシステムに安全にMQTTメッセージを送信し、ユースケースに必要なサイバーセキュリティと暗号化されたメッセージを確保しました。

2. MQTTプロキシプラグインと相互TLSを使用して安全な通信を実現する

ZYLKは、MQTTプロキシプラグインを有効にし、APISIX内の特別なオブジェクトを使用してストリームルートを作成しました。また、Pythonスクリプトを使用して証明書に署名し、ロードし、SNIがストリームルートで指定されたものと一致することを確認しました。クライアントとサーバー間で相互TLSを確立することで、ZYLKはAPISIXから外部への安全な通信を確保しました。

3. APISIXで能力を拡張する

ZYLKのAPISIXとMQTTの成功した実装により、典型的なHTTP関連の問題を超えた独自の問題を解決し、能力を拡張することができました。産業用機器によって生成されたデータを保存および分析し、予知保全のための機械学習モデルをトレーニングすることができました。

ZYLKは、業界の最前線に立ち続け、クライアントに最良のソリューションを提供することにコミットしています。将来の課題に取り組む中で、APISIXのようなテクノロジーを活用して目標を達成するための新しい革新的な方法を見つけることでしょう。

まとめ

APISIXを実装する前、ZYLKは通信エンドポイントを一つずつ管理する必要があり、時間がかかり非効率的でした。彼らはMQTTルーティング、K8Sネットワーキング、HTTP通信に関していくつかの問題に直面していました。

さまざまなAPIゲートウェイソリューションを調査した後、ZYLKは包括的なセキュリティ機能、ユーザーフレンドリーなダッシュボード、シンプルさからAPISIXを実装することを選択しました。APISIXを使用して、ZYLKはMQTTメッセージング通信と内部APIルーティングのためにルーターのポートを安全に公開することができました。また、クライアントとサーバー間のmTLSを使用して着信MQTTメッセージをリダイレクトすることもできました。ZYLKはまた、インフラストラクチャの大幅な改善を経験し、時間と労力を節約しました。

将来の目標に関して、ZYLKはサイバーセキュリティ、ITとOTの統合、説明可能なディープラーニングが業界にとって最大の課題であると考えています。今後6ヶ月間、チームはR&Dプロジェクトに取り組み、独自のIoTサービスを開発し続ける予定です。

Tags: