Amazon Web Services ブログ

Trend Micro が AWS IoT Core Device Advisor を使用して速度と俊敏性を向上させた方法

このブログは、Greg Breen 、Wayne Huang、Shan Raoによって書かれた、How Trend Micro improved their velocity and agility using AWS IoT Core Device Advisor を翻訳したものです。

イントロダクション

IoT デバイスまたはクライアントの開発は、大変な作業になる可能性があります。設計、プロトタイピング、テスト、品質保証などの開発作業には、数年とは言わないまでも、数か月かかることがあります。開発速度と俊敏性の向上は、製品コストと市場投入までの時間にとって明らかに魅力的です。ただし、高速化によって品質が損なわれてはならず、信頼性、パフォーマンス、安全性に優れたデバイスまたはクライアントを提供する必要があります。

幅広いインターネットセキュリティおよびウイルス対策ソフトウェア製品とソリューションを提供する多国籍サイバーセキュリティ企業である Trend Micro は、Cloud One security platform を開発する際に同様の課題に直面しました。Cloud One は、Trend Micro のセキュリティソリューションを単一のプラットフォームで提供することにより、顧客がクラウドインフラストラクチャを保護するのに役立つ包括的な SaaS (Software as a Service) ソリューションであり、シームレスなクラウドジャーニーを提供します。SaaS ソリューションには、アプリケーション制御、マルウェア対策、ファイアウォール保護などを提供するためにコンピューターに展開されるエージェントが含まれています。このエージェントは AWS IoT Core に接続し、脅威の分析と管理を目的としてメトリクスとイベントを継続的に収集し、サイバーセキュリティインシデントの防止と迅速な対応を行います。


AWS IoT Core Device Advisor は、Cloud One エージェントなどの AWS IoT Core に接続する IoT デバイスまたはクライアントを検証するためのクラウドベースのフルマネージドなツールです。Trend Micro は、AWS IoT Core Device Advisor で事前に構築されたテストケースを使用して、社内の Cloud One 継続的インテグレーション/継続的デプロイ (CI/CD) パイプラインを通じて、Cloud One プラットフォームの開発を加速し、回帰テストを自動化しました。

「このプロセスを自動化する前は、すべてのテストケースを手動で実行するのに 1 時間かかるため、すべてのビルドをテストすることは現実的ではありませんでした。現在、プロセスはすべてのビルドで自動的に実行され、人間の介入なしで 30 分以内に完了します。フィードバックは迅速で、手動のテスト作業は大幅に節約されます。」と Trend Micro の テスト自動化エンジニアの Shan Rao は言及しています。

課題

Cloud One セキュリティエージェントに AWS IoT Core を採用する前は、Trend Micro は従来の API ベースのクライアントとサーバーのアーキテクチャを使用していました。API ベースのクライアント/サーバー モデルは、Cloud One のようなアプリケーションを構築するための一般的な方法です。

ただし、クライアントの数が数十万、さらには数百万に増えると、ソリューションの拡張が難しくなる可能性があります。インフラストラクチャとメンテナンスに関連するコストは急速に上昇する可能性があり、アーキテクチャ設計では同時接続数に容易に対応できない場合があります。Trend Micro は Cloud One 製品でこれらの問題に直面しました。この製品には、Cloud One エージェントから届くリクエストに対応するための信頼性が高く安定したインフラストラクチャが必要でした。さらに、Trend Micro は、顧客を脆弱性や不正な変更から保護するために、新しい機能と更新を迅速に提供することを目指しています。

その結果、彼らは次世代の Cloud One エージェントを構築するために AWS IoT Core を選択しました。インフラストラクチャを管理することなく、何十億もの IoT クライアントを接続し、何兆ものメッセージを AWS のサービスにルーティングできるからです。Trend Micro は、AWS IoT Core を使用して Cloud One アーキテクチャを簡素化し、運用の複雑さを軽減し、製品機能の開発と差別化により重点を置きました。

Figure 1: Simplified Cloud One Agent architecture

図 1: 簡素化された Cloud One Agent アーキテクチャ

AWS IoT Core を選択すると、Trend Micro は開発プロセスを改善し、AWS IoT Core と Cloud One エージェント間の互換性を検証するためのツールを必要としました。AWS IoT Core Device Advisor は、この検証専用に構築されており、物理デバイスとソフトクライアントの両方の検証に使用できます。したがって、それは論理的な選択でした。

ソリューションの概要

AWS のお客様は、AWS IoT Device SDK を使用して IoT クライアントを構築できます。これらの SDK は、AWS IoT Core Device Advisor に対して既に認定されており、お客様の開発負担を軽減します。または、お客様顧客は選択したサードパーティの MQTT クライアントを使用して AWS IoT Core に接続したり、独自のクライアントを開発したりすることもできます。

Trend Micro は、カスタム MQTT クライアンライブラリを使用して Cloud One エージェントを開発することを選択しました。エージェントの開発を支援するために、Trend Micro は AWS IoT Core Device Advisor をエージェントの CI/CD パイプライン内の自動化テストワークフローとして統合しました。これにより、エージェントのすべてのビルドが AWS IoT Core に安全に接続でき、再試行とバックオフのシナリオを処理できることが確認されます。さらに、機能のデグレードはすぐに特定されるため、迅速な修正が可能になり、重大なデグレードが現場に到達するのを防ぐことができます。

テストケース

CI/CD パイプラインは、AWS IoT Core Device Advisor で事前に構築された TLS テストケースMQTT テストケースの選択を使用するテストスイートを実装します。テストスイートには、ハッピーパスとサッドパスの両方のテストケースが含まれており、開発プロセス中によくあるデバイスソフトウェアの問題をすばやく特定できます。

次のテストケースは、エージェントが AWS IoT Core との TLS ハンドシェイクを完了できること、およびエージェントが TLS クライアント Hello メッセージで有効な暗号スイートを提示することを検証するために使用されます:

  • TLS Connect
  • TLS Support AWS IoT Cipher Suites

サーバー証明書が要件を満たしていない場合、エージェントは接続を閉じる必要があります。次のテストケースでは、無効なサーバー証明書をエージェントに提示し、エージェントが有効な証明書を提示するエンドポイントにのみ接続することを確認します:

  • TLS Unsecure Server Cert
  • TLS Incorrect Subject Name Server Cert

これらのテストケースは、エージェントの MQTT 実装を検証し、エージェントが MQTT ブローカーとの接続を確立し、メッセージを発行してトピックにサブスクライブできることを確認します:

  • MQTT Connect
  • MQTT Publish
  • MQTT Subscribe

次のテスト ケースでは、エージェントがブローカーとの接続中に適切なジッターとエクスポーネンシャルバックオフを使用することを検証します:

  • MQTT Connect Jitter Retries
  • MQTT Connect Exponential Back-off Retries
  • MQTT Reconnect Back-off Retries On Server Disconnect

一部のテスト ケースは長時間実行されますが、これらの自動テストは迅速なフィードバックを提供し、手動テストよりも効率的です。

ワークフロー

CI/CD パイプラインの自動テストは、AWS IoT Core Device Advisor ワークフローに基づいており、次のように要約できます:

Figure 2: Cloud One Agent automated test workflow.

図 2: Cloud One Agent 自動テスト ワークフロー

パイプラインの実行ごとに、自動化テストジョブは AWS SDK を使用して IoT Thing を作成し、X.509 証明書を作成し、証明書を Thing にアタッチし、AWS IoT ポリシーをアタッチします。テストジョブは、AWS CLIを使用してテストスイートを作成し、スイートの実行を開始し、スイートのステータスをポーリングします。

テストに予想以上の時間がかかる場合、テストジョブはテストスイートを停止します。停止したテスト スイートは失敗したテストとして認識され、失敗したテストと共に AWS マネジメントコンソールに保持されるため、開発者は Amazon CloudWatch ログにアクセスして、より詳細な調査トラブルシューティングを行うことができます。

この特定の CI/CD パイプラインでは、成功したテストスイートの実行を削除するように設計が選択されました。したがって、開発者が調査できるように、停止したテストスイートの実行と失敗したテストスイートの実行のみが保持されるため、成功したテストの実行は AWS マネジメント コンソールには表示されません:

Figure 3: Failed and stopped tests in the AWS Management Console.

図 3: AWS マネジメント コンソールでの失敗したテストと停止したテスト

まとめ

Trend Micro は、継続的インテグレーションと継続的デプロイの実践の一環として、AWS IoT Device Advisor の事前構築済みテストケースを使用することができ、製品の品質を損なうことなく、Trend Micro Cloud One セキュリティプラットフォームをより迅速に市場に投入しました。自動化された回帰テストにより、新機能や拡張機能が高い信頼性で加速されたペースで出荷されるようになるため、彼らは引き続きこの恩恵を受けています。

「最も重要なことは、Device Advisor を既存の CI/CD パイプラインに統合し、すべての変更をテストできることです。これにより、変更が適切であるという自信が得られます。変更が適切でない場合、それは分離され、何が問題なのかを理解するために Device Advisor から診断を受けます。これは、品質を損なうことなく、より迅速に納品できることを意味します。」と Trend Micro のシニアスタッフソフトウェアエンジニアの Michael Dysart は言及しています。

AWS IoT Core Device Advisor の使用を開始するには、「How to Get Started with AWS IoT Core Device Advisor」を視聴し、以前のブログシリーズをお読みください。

AWS IoT サービスとソリューションの詳細については、AWS IoT にアクセスするか、お問い合わせください。Trend Micro の詳細については、ウェブサイトをご覧ください。

著者について

Greg BreenGreg Breen は、アマゾンウェブサービスのシニア IoT スペシャリストソリューションアーキテクトです。オーストラリアを拠点とし、アジア太平洋地域の顧客が IoT ソリューションを構築するのを支援しています。組み込みシステムでの豊富な経験を持つ彼は、製品開発チームがデバイスを市場に投入するのを支援することに特に関心を持っています。
Wayne HuangWayne Huang は、台湾を拠点とするアマゾンウェブサービスのソリューションアーキテクトです。Wayne は IoT とソフトウェア開発に深い経験があり、AWS の IoT Technical Field Community (TFC) のメンバーです。彼は、お客様が IoT アーキテクチャを設計し、エンドツーエンドの IoT ソリューションをゼロから構築できるよう支援しています。
Shan RaoShan Rao は、Trend Micro の自動化テストエンジニアです。彼女は DevOps、IoT、自動化の愛好家です。彼女は、高品質で市場へのリリースを加速するために、AWS で自動化テストを実装することに情熱を注いでいます。

このブログは、ソリューションアーキテクトの戸塚智哉が翻訳しました。