

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# SageMaker Edge Manager でのデバイスとフリートのセットアップ
<a name="edge-device-fleet"></a>

フリートは、データの収集および分析に使用できる、論理的にグループ化されたデバイスの集合です。SageMaker Edge Manager を使用すると、複数のスマートカメラ、スマートスピーカー、ロボット、その他のエッジデバイスのフリートで機械学習モデルを稼働させることができます。

フリートを作成し、 または SageMaker AI コンソール AWS SDK for Python (Boto3) を使用してプログラムでデバイスを登録します。

**Topics**
+ [フリートを作成する](edge-device-fleet-create.md)
+ [デバイスの登録](edge-device-fleet-register.md)
+ [ステータスをチェックする](edge-device-fleet-check-status.md)

# フリートを作成する
<a name="edge-device-fleet-create"></a>

フリートは、 AWS SDK for Python (Boto3) または SageMaker AI コンソール [https://console.aws.amazon.com/sagemaker](https://console.aws.amazon.com/sagemaker/) を使用してプログラムで作成できます。

## フリートを作成する (Boto3)
<a name="edge-device-fleet-create-boto3"></a>

`CreateDeviceFleet` API を使用してフリートを作成します。フリートの名前、 `RoleArn`フィールドの AWS IoT ロール ARN、およびデバイスがサンプルデータを保存する Amazon S3 URI を指定します。

必要に応じて、フリート、タグ、および AWS KMS キー ID の説明を含めることができます。

```
import boto3

# Create SageMaker client so you can interact and manage SageMaker resources
sagemaker_client = boto3.client("sagemaker", region_name="aws-region")

sagemaker_client.create_device_fleet(
    DeviceFleetName="sample-fleet-name",
    RoleArn="arn:aws:iam::999999999:role/rolename", # IoT Role ARN
    Description="fleet description",
    OutputConfig={
        S3OutputLocation="s3://bucket/",
        KMSKeyId: "1234abcd-12ab-34cd-56ef-1234567890ab",
    },
        Tags=[
        {
            "Key": "string", 
            "Value" : "string"
         }
     ],
)
```

デバイスフリートを作成すると、 AWS IoT ロールエイリアスが作成されます。ロールエイリアスは、接続されたデバイスが X.509 AWS IoT 証明書 AWS IoT を使用して を認証し、 AWS IoT ロールエイリアスに関連付けられている IAM ロールから有効期間の短い AWS 認証情報を取得するメカニズムを提供します。

`DescribeDeviceFleet` を使用して、ロールのエイリアス名と ARN を取得します。

```
# Print Amazon Resource Name (ARN) and alias that has access 
# to AWS Internet of Things (IoT).
sagemaker_client.describe_device_fleet(DeviceFleetName=device_fleet_name)['IotRoleAlias']
```

`DescribeDeviceFleet` API を使用して作成したフリートの説明を取得します。

```
sagemaker_client.describe_device_fleet(
    DeviceFleetName="sample-fleet-name"
)
```

デフォルトでは、フリートの名前、デバイスフリート ARN、Amazon S3 バケット URI、IAM ロール、 で作成されたロールエイリアス AWS IoT、フリートが作成された時刻のタイムスタンプ、およびフリートが最後に変更された時刻のタイムスタンプを返します。

```
{ "DeviceFleetName": "sample-fleet-name",
  "DeviceFleetArn": "arn:aws:sagemaker:us-west-2:9999999999:device-fleet/sample-fleet-name",
  "IAMRole": "arn:aws:iam::999999999:role/rolename",
  "Description": "this is a sample fleet",
  "IoTRoleAlias": "arn:aws:iot:us-west-2:9999999999:rolealias/SagemakerEdge-sample-fleet-name"
  "OutputConfig": {
              "S3OutputLocation": "s3://bucket/folder",
              "KMSKeyId": "1234abcd-12ab-34cd-56ef-1234567890ab"
   },
   "CreationTime": "1600977370",
   "LastModifiedTime": "1600977370"}
```

## フリート (コンソール) を作成する
<a name="edge-device-fleet-create-console"></a>

Amazon SageMaker AI コンソール ([https://console.aws.amazon.com/sagemaker](https://console.aws.amazon.com/sagemaker/)) を使用して、Edge Manager のパッケージ化ジョブを作成できます。

1. SageMaker AI コンソールで、**[Edge Manager]** を選択して **[Edge デバイスフリート]** を選択します。

1. **[Create device fleet]** (デバイスフリートを作成) を選択します。  
![\[コンソールの [デバイスフリートを作成] の場所。\]](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/images/smith/create-device-button-edited.png)

1. デバイスフリートの名前を **[Device fleet name]** (デバイスフリート名) フィールドに入力します。[**次へ**] を選択します。  
![\[コンソールの [デバイスフリートプロパティセクション] の [次へ] ボタンの場所。\]](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/images/smith/create-device-fleet-filled.png)

1. **[Output configuration]** (出力設定) ページで、デバイスフリートのサンプリングデータを保存する Amazon S3 バケット URI を指定します。オプションで、ドロップダウンリストから既存のキーを選択するか、 AWS KMS キーの ARN を入力して、暗号化キーを追加することもできます。[**Submit**] を選択してください。  
![\[コンソールの [出力設定] ページの例。\]](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/images/smith/create-device-fleet-output-filled.png)

1. デバイスフリートの詳細に移動するには、デバイスフリートの名前を選択します。このページには、デバイスフリートの名前、ARN、説明 (指定した場合)、フリートの作成日、フリートが最後に変更された時刻、Amazon S3 バケット URI、 AWS KMS キー ID (指定した場合)、 AWS IoT エイリアス (提供した場合)、IAM ロールが表示されます。タグを追加した場合、タグは **[Device fleet tags]** (デバイスフリートのタグ) セクションに表示されます。

# デバイスの登録
<a name="edge-device-fleet-register"></a>

**重要**  
SageMaker Edge Manager のフリートを使用するには、デバイスを登録する必要があります。

フリートは、 AWS SDK for Python (Boto3) または の SageMaker AI コンソールを使用してプログラムで作成できます[https://console.aws.amazon.com/sagemaker](https://console.aws.amazon.com/sagemaker/)。

## デバイスを登録する (Boto3)
<a name="edge-device-fleet-register-boto3"></a>

デバイスを登録するには、まず AWS IoT モノのオブジェクトを作成して登録し、IAM ロールを設定します。SageMaker Edge Manager は AWS IoT Core サービスを活用して、エッジデバイスとクラウド間の接続を容易にします。Edge Manager と連携するようにデバイスをセットアップした後、既存の AWS IoT 機能を活用できます。

デバイスを に接続する AWS IoT には、 AWS IoT モノのオブジェクトを作成し、クライアント証明書を作成して に登録し AWS IoT、デバイスの IAM ロールを作成して設定する必要があります。

詳細な例については[「入門ガイド](https://docs.aws.amazon.com/sagemaker/latest/dg/edge-manager-getting-started.html)」、[または実践的なチュートリアルの「Explore AWS IoT Core サービス](https://docs.aws.amazon.com/iot/latest/developerguide/iot-gs-first-thing.html)」を参照してください。

`RegisterDevices` API を使用してデバイスを登録します。デバイスを所属させるフリートの名前と、デバイスの名前を指定します。オプションで、デバイスに関連付けられたデバイス、タグ、 AWS IoT モノの名前に説明を追加できます。

```
sagemaker_client.register_devices(
    DeviceFleetName="sample-fleet-name",
    Devices=[
        {          
            "DeviceName": "sample-device-1",
            "IotThingName": "sample-thing-name-1",
            "Description": "Device #1"
        }
     ],
     Tags=[
        {
            "Key": "string", 
            "Value" : "string"
         }
     ],
)
```

## デバイスを登録する (コンソール)
<a name="edge-device-fleet-register-console"></a>

SageMaker AI コンソール ([https://console.aws.amazon.com/sagemaker](https://console.aws.amazon.com/sagemaker/)) を使用してデバイスを登録できます。

1. SageMaker AI コンソールで、**[エッジ推論]** を選択して **[エッジデバイス]** を選択します。

1. **Register devices]** (デバイスを登録) を選択します。  
![\[コンソールのエッジの [デバイス] セクションの [デバイスを登録] の場所。\]](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/images/smith/register-device-button.png)

1. **[Device properties]** (デバイスプロパティ) セクションの **[デバイスプロパティ]** (デバイスフリート名) フィールドにデバイスが属するフリートの名前を入力します。[**次へ**] を選択します。  
![\[コンソールの [デバイスのプロパティ] セクション。\]](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/images/smith/register-devices-empty.png)

1. **[Device source]** (デバイスソース) セクションで、デバイスを 1 つずつ追加します。フリート内の各デバイスに **[Device Name]** (デバイス名) を含める必要があります。任意で、説明 (**[Description]** (説明) フィールド) と IoT オブジェクト名 (**[IoT name]** (IoT 名) フィールド) を入力できます。すべてのデバイスを追加したら、**[Submit]** (送信) を選択します。  
![\[コンソールの [デバイスのソース] セクション。\]](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/images/smith/register-devices-device-source.png)

   **デバイス**ページには、追加したデバイスの名前、それが属するフリート、登録日時、最後のハートビート、および指定した場合は説明と AWS IoT 名前が表示されます。

   デバイスを選択すると、デバイス名、フリート、ARN、説明、IoT モノオブジェクト名、デバイスの登録日時、最後のハートビートの日時といったデバイスの詳細が表示されます。

# ステータスをチェックする
<a name="edge-device-fleet-check-status"></a>

デバイスまたはフリートが接続され、データをサンプリングしていることを確認します。手動または自動で定期的にチェックすると、デバイスまたはフリートが適切に動作していることを確認できます。

Amazon S3 コンソール ([https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)) を使用して、ステータスチェックを行うフリートを対話的に選択します。また、 AWS SDK for Python (Boto3)を使用することもできます 以下では、デバイスまたはフリートのステータスチェックに使用できる Boto3 のさまざまな API について説明します。ユースケースに最も適した API を使用してください。
+ **個々のデバイスをチェックする。**

  個々のデバイスのステータスをチェックするには、`DescribeDevice` API を使います。モデルがデバイスにデプロイされている場合は、1 つ以上のモデルが含まれたリストが表示されます。

  ```
  sagemaker_client.describe_device(
      DeviceName="sample-device-1",
      DeviceFleetName="sample-fleet-name"
  )
  ```

  実行中の `DescribeDevice` は以下を返します。

  ```
  { "DeviceName": "sample-device".
    "Description": "this is a sample device",
    "DeviceFleetName": "sample-device-fleet",
    "IoTThingName": "SampleThing",
    "RegistrationTime": 1600977370,
    "LatestHeartbeat": 1600977370,
    "Models":[
          {
           "ModelName": "sample-model", 
           "ModelVersion": "1.1",
           "LatestSampleTime": 1600977370,
           "LatestInference": 1600977370 
          }
     ]
  }
  ```
+ **デバイスのフリートをチェックする。**

  フリートのステータスをチェックするには、`GetDeviceFleetReport` API を使用します。デバイスフリートの名前を指定して、フリートの概要を取得します。

  ```
  sagemaker_client.get_device_fleet_report(
      DeviceFleetName="sample-fleet-name"
  )
  ```
+ **ハートビートをチェックする。**

  フリート内の各デバイスは、定期的にシグナル(「ハートビート」)を生成します。このハートビートを使用すると、デバイスが Edge Manager と通信していることを確認できます。最後のハートビートのタイムスタンプが更新されない場合は、デバイスに障害が発生している可能性があります。

  `DescribeDevice` API を使用して、デバイスが最後に生成したハートビートを確認します。デバイスの名前とエッジデバイスが属するフリートの名前を指定します。

  ```
  sagemaker_client.describe_device(
      DeviceName="sample-device-1",
      DeviceFleetName="sample-fleet-name"
  )
  ```