次の方法で共有


切断されたデバイスの更新のサポートについて (プレビュー)

IoT Edge デバイス用の Microsoft 接続キャッシュ (MCC) モジュールを使用すると、ゲートウェイの背後にある切断されたデバイスに対してデバイスの更新機能を有効にできます。 透過的ゲートウェイのシナリオでは、1 台以上のデバイスから、Azure IoT Hub への接続を維持する単一のゲートウェイ デバイスを経由して、メッセージを渡すことができます。 このような場合に、子デバイスがインターネットに接続されていなかったり、インターネットからのコンテンツのダウンロードを許可されていなかったりすることがあります。 MCC モジュールでは、インテリジェントなネットワーク内キャッシュの機能を Device Update for IoT Hub のお客様に提供します。 このキャッシュによって、IoT Edge ゲートウェイ ("ダウンストリーム" IoT デバイスとも呼ばれます) の背後にある Linux OS ベースのデバイスのイメージ ベースとパッケージ ベースの更新が可能になります。 キャッシュは、更新に使用される帯域幅を減らすのにも役立ちます。

注意

この情報は、初期のテストや運用環境での使用を目的として提供されるプレビュー機能に関連するものです。 この機能は完全にサポートされていますが、まだ開発が続いており、一般提供までに大幅な変更が生じる可能性があります。

IoT Edge ゲートウェイに慣れていない場合は、「IoT Edge デバイスをゲートウェイとして使用する方法」を参照してください。

Microsoft 接続キャッシュとは

Microsoft 接続キャッシュは、Device Update for IoT Hub 用に公開されたコンテンツのインテリジェントな透過的キャッシュであり、パッケージ リポジトリなどの他のソースにあるコンテンツもキャッシュするようにカスタマイズできます。 Microsoft 接続キャッシュは、配信の最適化クライアントによって要求された正確なファイル範囲に対し、クライアント要求によってウォーミングされるコールド キャッシュであり、コンテンツの事前シードは行われません。 次の図とステップバイステップの記述で、Microsoft 接続キャッシュが Device Update インフラストラクチャ内でどのように機能するかを説明します。

注意

このフローでは、IoT Edge ゲートウェイにインターネット接続があることを前提としています。 ダウンストリームの IoT Edge ゲートウェイ (Nested Edge) のシナリオでは、"Content Delivery Network" (CDN) を親 IoT Edge ゲートウェイでホストされている MCC と見なすことができます。

Microsoft 接続キャッシュ モジュールを使用して、切断されたデバイスの更新を可能にする方法を示す図。

  1. Microsoft 接続キャッシュは、オンプレミス ゲートウェイ サーバーに IoT Edge モジュールとしてデプロイされます。

  2. Device Update for IoT Hub クライアントは、IoT リーフ デバイスのデバイス接続文字列の GatewayHostName 属性、IoT Edge 子デバイスの config.toml 内に設定した parent_hostname を使用して、Microsoft 接続キャッシュからコンテンツをダウンロードするように構成されます。

  3. Device Update for IoT Hub クライアントでは Device Update サービスからダウンロード コマンドを受け取り、CDN ではなく Microsoft 接続キャッシュに対して更新コンテンツを要求します。 Microsoft 接続キャッシュは既定で HTTP ポート 80 でリッスンし、配信最適化クライアントはポート 80 でコンテンツ要求を行うため、親はこのポートでリッスンするように構成する必要があります。 現時点では、http プロトコルのみがサポートされています。

  4. Microsoft 接続キャッシュ サーバーは、CDN からコンテンツをダウンロードし、ディスクに格納されているローカル キャッシュをシードして、コンテンツを Device Update クライアントに配信します。

    注意

    パッケージベースの更新プログラムを使用する場合、必要なパッケージのホスト名を使用して管理者によって Microsoft 接続キャッシュ サーバーが構成されます。

  5. 同じ更新コンテンツに対する他の Device Update クライアントからの後続の要求は、キャッシュから取得されるようになり、同じコンテンツに対して Microsoft 接続キャッシュから CDN への要求は行われません。

親/子ホスティング シナリオでのインダストリアル IoT (IIoT) のサポート

産業用 IoT (IIoT) のシナリオでは、多くの場合、複数のレベルの IoT Edge ゲートウェイが使用され、最上位のみがインターネットにアクセスできます。 このシナリオでは、各ゲートウェイでは、親ゲートウェイに更新コンテンツを要求するように構成された Microsoft 接続キャッシュ サービスをホストします。

子 (またはダウンストリーム) IoT Edge ゲートウェイから親ゲートウェイに更新コンテンツを要求すると、インターネットにアクセスできる Microsoft 接続キャッシュ サーバーをホストする最上位の IoT Edge ゲートウェイに到達する前に、必要な数のレベルに対してこの要求が繰り返されます。 インターネットに接続されたサーバーから CDN にコンテンツが要求され、その時点で、コンテンツの要求元である子 IoT Edge ゲートウェイにコンテンツが配信されます。 コンテンツは、すべてのレベルでディスクに保存されます。

プレビューへのアクセスを要求する

Microsoft 接続キャッシュ IoT Edge モジュールは、Device Update for IoT Hub を使用してソリューションをデプロイしようとしているお客様向けにプレビューとしてリリースされています。 プレビューへのアクセスは招待によって行います。 このモジュールへのアクセスを希望される場合は、Device Update for IoT Hub 用 Microsoft 接続キャッシュ プレビューへのアクセスを要求し、必要な情報を入力してください。

Microsoft 接続キャッシュ モジュールの構成

Microsoft 接続キャッシュは、IoT Edge モジュールとして Azure IoT Edge ゲートウェイにデプロイされます。 他の IoT Edge モジュールと同様に、MCC モジュールを構成するために環境変数とコンテナー作成オプションが使われます。 このセクションでは、Device Update for IoT Hub で使用される MCC モジュールを正しくデプロイするために必要な環境変数とコンテナー作成オプションを定義します。

Microsoft 接続キャッシュ モジュールに名前付けの要件はありません。これは、他のモジュールまたはサービスの相互作用が通信のために MCC モジュールの名前に依存していないからです。 また、Microsoft 接続キャッシュ サーバーの親子関係は、このモジュール名には依存していませんが、Azure IoT Edge ゲートウェイの FQDN または IP アドレスには依存します。

モジュール環境変数

Microsoft 接続キャッシュ モジュール環境変数は、基本的なモジュール ID 情報と機能モジュール設定をコンテナーに渡すために使用されます。

変数名 値の書式 説明
CUSTOMER_ID Azure サブスクリプション ID GUID 必須

この値は顧客の ID であり、配信の最適化サービスにキャッシュ ノードのセキュリティで保護された認証を提供します。
CACHE_NODE_ID キャッシュ ノード ID GUID 必須

配信の最適化サービスに対して MCC ノードを一意に識別します。
CUSTOMER_KEY カスタマー キー GUID 必須

この値は顧客のキーであり、配信の最適化サービスにキャッシュ ノードのセキュリティで保護された認証を提供します。
STORAGE_N_SIZE_GB (この N はキャッシュ ドライブです) Integer 必須

コンテンツをキャッシュする最大 9 個のドライブを指定し、各キャッシュ ドライブ上でコンテンツに割り当てる最大容量をギガバイト単位で指定します。 ドライブの番号は、コンテナー作成オプションの MicrosoftConnectedCacheN 値で指定されたキャッシュ ドライブのバインド値と一致している必要があります。

例 :
STORAGE_1_SIZE_GB = 150
STORAGE_2_SIZE_GB = 50

キャッシュの最小サイズは 10 GB です。
UPSTREAM_HOST FQDN/IP 省略可能

この値では、接続キャッシュ ノードがインターネットから切断された場合に、プロキシとして機能するアップストリーム MCC ノードを指定できます。 この設定は、入れ子になった IoT シナリオをサポートするために使われます。

注: MCC は HTTP の既定のポート 80 をリッスンします。
UPSTREAM_PROXY FQDN/IP:PORT 省略可能

送信インターネット プロキシ。 この値は、ISA 95 ネットワークの OT DMZ プロキシにすることもできます。
CACHEABLE_CUSTOM_N_HOST HOST/IP
FQDN
省略可能

カスタム パッケージ リポジトリをサポートするために必要です。 リポジトリはローカルでもインターネット上でもホストできます。 構成できるカスタム ホストの数に制限はありません。

例 :
名前 = CACHEABLE_CUSTOM_1_HOST 値 = packages.foo.com
名前 = CACHEABLE_CUSTOM_2_HOST 値 = packages.bar.com
CACHEABLE_CUSTOM_N_CANONICAL エイリアス 省略可能

カスタム パッケージ リポジトリをサポートするために必要です。 この値は別名として使用できます。また、キャッシュ サーバーからさまざまな DNS 名を参照するために使われます。 たとえば、リポジトリ コンテンツのホスト名を packages.foo.com にすることができますが、リージョンによって westuscdn.packages.foo.com や eastuscdn.packages.foo.com のように、追加のプレフィックスをホスト名に付加できます。 標準の別名を設定すると、ホストは同じで CDN ソースは異なるコンテンツの場合に、コンテンツが重複しないようにすることができます。 標準の値の形式は重要ではありませんが、ホストに対して一意である必要があります。 ホストの値と一致するように値を設定することが最も簡単な場合があります。

前のカスタム ホストの例に基づく例:
名前 = CACHEABLE_CUSTOM_1_CANONICAL 値 = foopackages
名前 = CACHEABLE_CUSTOM_2_CANONICAL 値 = packages.bar.com
IS_SUMMARY_PUBLIC True または False 省略可能

ローカル ネットワークまたはインターネットでの概要レポートの表示を有効にします。 True に設定した場合、概要レポートを表示するために API キー (後述) を使用する必要があります。
IS_SUMMARY_ACCESS_UNRESTRICTED True または False 省略可能

ネットワーク内のデバイスから API キーを使わずに、ローカル ネットワークまたはインターネットで概要レポートを表示できるようにします。 ブラウザーを介して、キャッシュ サーバーの概要データの表示へのアクセスをロック ダウンしない場合に使います。

モジュール コンテナー作成オプション

コンテナー作成オプションを使って、Microsoft 接続キャッシュ モジュールで使われるストレージとポートに関連する設定を制御します。

サンプルのコンテナー作成オプション:

{
    "HostConfig": {
        "Binds": [
            "/microsoftConnectedCache1/:/nginx/cache1/"
        ],
        "PortBindings": {
            "8081/tcp": [
                {
                    "HostPort": "80"
                }
            ],
            "5000/tcp": [
                {
                    "HostPort": "5100"
                }
            ]
        }
    }
}

以下のセクションでは、MCC モジュールのデプロイに使われる必要なコンテナー作成変数を一覧で紹介します。

HostConfig

HostConfig パラメーターは、コンテナー ストレージの場所をディスク上のストレージの場所にマップするために必要です。 最大 9 つの場所を指定できます。

注意

ドライブの番号は、環境変数 STORAGE_N_SIZE_GB 値で指定されたキャッシュ ドライブのバインド値と一致している必要があります (/MicrosoftConnectedCache*N*/:/nginx/cache*N*/)

PortBindings

PortBindings パラメーターを使って、コンテナー ポートをホスト デバイス上のポートにマップします。

1 つ目のポート バインディングで、MCC がコンテンツ要求のためにリッスンする外部マシンの HTTP ポートを指定します。 現在、ADU クライアントはポート 80 で要求を行っているので、既定の HostPort はポート 80 であり、現時点では他のポートはサポートされていません。 TCP ポート 8081 は、MCC がリッスンしている内部コンテナー ポートであり、変更することはできません。

2 つ目のポート バインドで、コンテナーがホスト ポート 5000 をリッスンしないことを確保します。 Microsoft 接続キャッシュ モジュールには、.NET Core サービスがあり、これは、さまざまな機能のためにキャッシュ エンジンによって使用されます。 入れ子になったエッジをサポートするには、レジストリ プロキシ モジュールが既にホスト ポート 5000 でリッスンしているため、HostPort を 5000 に設定することはできません。

Microsoft 接続キャッシュの概要レポート

現在、概要レポートは、IoT Edge ゲートウェイにデプロイされている Microsoft 接続キャッシュ インスタンスのキャッシュ データをお客様が表示する唯一の方法です。 レポートは 15 秒間隔で生成され、その期間の平均統計と、モジュールの有効期間の集計された統計が含まれます。 レポートで提供される主な統計情報は次のとおりです。

  • hitBytes - キャッシュから直接取得した、配信されたバイト数の合計。
  • missBytes - Microsoft 接続キャッシュがキャッシュを表示するために CDN からダウンロードする必要のあった、配信されたバイト数の合計。
  • eggressBytes - hitBytes と missBytes の合計であり、クライアントに配信された合計バイト数。
  • hitRatioBytes - hitBytes と egressBytes の比率。 たとえば、ある期間に配信された eggressBytes の 100% が hitBytes と同じであれば、この値は 1 になります。

概要レポートは http://<IoT Edge gateway>:5001/summary にあります。この <IoT Edge Gateway> は、MCC モジュールをホストしている IoT Edge ゲートウェイの IP アドレスまたはホスト名に置き換えてください。

次の手順

単一ゲートウェイまたは入れ子になった産業用 IoT ゲートウェイに Microsoft 接続キャッシュを実装する方法について説明します。