メニュー
AWS Greengrass
開発者ガイド

AWS Greengrass コアデバイスの設定

AWS Greengrass コアソフトウェアをダウンロードする

AWS Greengrass コア の配布可能な AWS Greengrass を AWS Greengrass 配布可能パッケージからダウンロードします。ナビゲーションページで、[Software] を選択します。

注記

リンク先の AWS IoT コンソールに移動します。これが AWS Greengrass コア ソフトウェアをダウンロードする正しい場所です。

次のコマンドを使用して tar ファイルを抽出します。

Copy
sudo tar -zxvf greengrass-platform-version.tar.gz -C /

platform は以下のいずれかです。

  • linux-armv7l

  • linux-x86-64

  • linux-aarch64

圧縮された tar ファイルには以下が含まれています。

GGC v1.0.0GGC v1.1.0
GGC v1.0.0
bin

AWS Greengrass コア ソフトウェアバイナリを含むディレクトリ。

configuration

証明書、config.json、group.json などの設定ファイルを含むディレクトリ。

lambda

Lambda 関数コードを含むディレクトリ。

license

ライセンスファイルを含むディレクトリ。

rootfs

AWS Greengrass コア のルートファイルシステムのディレクトリ。

runtime

Lambda ランタイムを含むディレクトリ。

greengrassd

Greengrass 起動スクリプト。

release_notes.html

Greengrass リリースノート。

version

AWS Greengrass コア ソフトウェア。

GGC v1.1.0
ggc/core/bin

AWS Greengrass コア ソフトウェアバイナリを含むディレクトリ。

config

証明書、config.json、group.json などの設定ファイルを含むディレクトリ。

ggc/deployment/lambda

使用する Lambda 関数コードを含むディレクトリ。

ggc/core/LICENSE

ライセンスファイルを含むディレクトリ。

ggc/core/rootfs

AWS Greengrass コア のルートファイルシステムのディレクトリ。

ggc/core/runtime

Lambda ランタイムを含むディレクトリ。

ggc/core/greengrassd

Greengrass 起動スクリプト。

ggc/core/release_notes.html

Greengrass リリースノート。

ggc/packages/version

シンボリックリンク ggc/core が指定する AWS Greengrass コア ソフトウェア

AWS Greengrass グループを作成する

Greengrass グループは、ローカル環境を記述するリソースです。AWS Greengrass グループ は、グループ内の他のすべてのデバイスと通信する AWS Greengrass コア デバイス、グループに属するデバイスのリスト、Lambda 関数のリスト、およびサブスクリプションテーブル (デバイス、AWS Greengrass コア、Lambda 関数の間でのメッセージの受け渡し方法を定義する) で構成されます。

Greengrass グループを作成するには、AWS IoT コンソールを開き、ナビゲーションペインで [Greengrass] を選択します。[Define a Greengrass group] タイルで、[Get Started] を選択します。[Set up your Greengrass Group] ページで [Use easy creation] を選択し、表示される手順に従って以下を作成します。

  • Greengrass グループ。

  • AWS Greengrass グループ の AWS Greengrass コア を表す AWS IoT モノ。

  • AWS Greengrass コア が AWS IoT と AWS Greengrass での認証に使用する証明書とキーペア。

クラウドで AWS Greengrass コアデバイスを作成する

AWS IoT コンソールを使用して、AWS Greengrass コア デバイスの AWS IoT モノ、証明書、およびポリシーを作成します。

  1. AWS 認証情報を使用して AWS IoT コンソールにサインインします。

  2. AWS Greengrass コア の AWS IoT モノを作成します。詳細については、モノの作成を参照してください。

  3. AWS Greengrass コア の AWS IoT 証明書およびプライベートキーを作成します。詳細については、デバイス証明書の作成を参照してください。証明書とプライベートキーは、AWS Greengrass コア でクラウドベースの AWS IoT サービスへの接続を確立するために使用されます。この証明書により、AWS Greengrass コア は以下のことができます。

    • クラウドとの間でメッセージをやり取りする。

    • デプロイに関する情報を取得する。

    証明書とプライベートキーをダウンロードし、安全な場所に保存します。後で AWS Greengrass コア デバイスにコピーします。

  4. デバイス証明書を AWS IoT モノにアタッチします。詳細については、「モノに証明書をアタッチする」を参照してください。

  5. 証明書が有効になっていることを確認します。

  6. AWS IoT ポリシーを作成してデバイス証明書にアタッチします。ポリシーによって、AWS Greengrass コア がアクセスできる AWS IoT リソースが決まります。AWS IoT コンソールで、[Security]、[Policies] の順に選択します。[Create] を選択して AWS IoT ポリシーを作成します。

    [Create a Policy] ページで、ポリシーの名前を入力します。[Add statements] で、[Action] テキストボックスに「iot:*, greengrass:*」と入力します。[Resource ARN] テキストボックスに、「*」 と入力します。[Effect] で [Allow] を選択し、[Create] を選択します。これにより、このポリシーに関連付けられたアイデンティティですべての AWS IoT および AWS Greengrass オペレーションを実行できます。詳細については、「AWS IoT ポリシーの作成」を参照してください。

    注記

    AWS Greengrass コア ソフトウェアは、ランダムなクライアント ID を使用して MQTT 接続を確立します。したがって、AWS Greengrass コア の AWS IoT ポリシーでは {iot:ClientId} ポリシー変数を使用しないでください。

AWS Greengrass コアをプロビジョンする

AWS Greengrass コア をプロビジョンするには、AWS Greengrass コア デバイスに AWS Greengrass コア ソフトウェアと証明書をインストールする必要があります。

AWS Greengrass コアソフトウェアのインストール

  1. AWS Greengrass コア ソフトウェアは、AWS Greengrass からダウンロードした greengrass-platform-version.tar.gz ファイルにあります。次のコマンドを使用して greengrass-platform-version.tar.gz を抽出します。

    Copy
    sudo tar -zxf greengrass-platform-version.tar.gz -C /

    注記

    これにより、配布可能な AWS Greengrass がデバイスのルートディレクトリの greengrass ディレクトリに抽出されます。

  2. Linux コントロールグループ (cgroup) が AWS Greengrass コア デバイスのオペレーティングシステム上で有効になっていない場合は、こちらのスクリプトを実行します。

    注記

    Linux コントロールグループは、AWS Greengrass コア デバイス上で実行される Lambda 関数からアクセスできるリソースを制限します。

  3. Lambda の cgroup を自動的に設定するには、cgroup /sys/fs/cgroup cgroup defaults 0 0 をデバイスの /etc/fstab ファイルに追加し、デバイスを再起動します。

tar ファイルを抽出する際に /greengrass ディレクトリが作成されます。

AWS Greengrass コアデバイスへの証明書のインストール

GGC v1.0.0GGC v1.1.0
GGC v1.0.0

AWS Greengrass コア デバイスは、MQTT over TLS を使用して AWS IoT への安全な接続を確立する必要があります。そのためには、証明書、デバイスに関連付けられたプライベートキー、および AWS IoT ルート CA 証明書を /greengrass/configuration/certs ディレクトリに配置します。

注記

AWS IoT ルート CA 証明書は、Verisign からダウンロードできます。

GGC v1.1.0

AWS Greengrass コア デバイスは、MQTT over TLS を使用して AWS IoT への安全な接続を確立する必要があります。そのためには、証明書、デバイスに関連付けられたプライベートキー、および AWS IoT ルート CA 証明書を /greengrass/certs ディレクトリに配置します。

注記

AWS IoT ルート CA 証明書は、Verisign からダウンロードできます。

AWS に接続する

以下の手順では、AWS Greengrass を設定してクラウドに保存し、変更内容を AWS Greengrass コア にプッシュする方法を示します。以下は AWS Greengrass を操作するための推奨される方法です。

Greengrass サービスロールの作成

AWS Greengrass は、AWS Lambda と AWS IoT データにアクセスする必要があります。

IAM ロールを作成するには、IAM コンソール (https://console.aws.amazon.com/iam/) を使用します。

  1. [Role Type] で、[AWS Greengrass Role] を選択します。

  2. [AWSGreengrassResourceAccessRolePolic] を選択してから、[次のステップ] を選択します。

  3. ロールの名前を入力し、[ロールの作成] を選択します。

ロールの作成後に、ロールの ARN をメモし、それを使用して次の CLI コマンドを呼び出します。

Copy
aws greengrass associate-service-role-to-account --role-arn arn:aws:iam::123451234510:role/GreengrassRole

AWS Greengrass コアの設定

GGC v1.0.0GGC v1.1.0
GGC v1.0.0

設定ファイルを編集するか、/greengrass/configuration/config.json で新規作成します。

Copy
{ "coreThing": { "caPath": "[ROOT_CA_PEM_HERE]", "certPath": "[CLOUD_PEM_CRT_HERE]", "keyPath": "[CLOUD_PEM_KEY_HERE]", "thingArn": "[THING_ARN_HERE]", "iotHost": "[HOST_PREFIX_HERE].iot.[AWS_REGION_HERE].amazonaws.com", "ggHost": "greengrass.iot.[AWS_REGION_HERE].amazonaws.com", "keepAlive": 600 }, "runtime": { "cgroup": { "useSystemd": "[yes|no]" } } }

フィールド 説明 コメント

caPath

AWS IoT ルート CA 証明書へのパス (/greengrass/configuration/certs フォルダを基準とした相対パス)。

ファイルを /greengrass/configuration/certs に保存します。

certPath

AWS Greengrass コア 証明書へのパス (/greengrass/configuration/certs フォルダを基準とした相対パス)。

ファイルを /greengrass/configuration/certs に保存します。

keyPath

AWS Greengrass コア プライベートキーへのパス (/greengrass/configuration/certs フォルダを基準とした相対パス)。

ファイルを /greengrass/configuration/certs に保存します。

thingArn

AWS Greengrass コア を表すモノの ARN。

iotHost

AWS IoT エンドポイント。

CLI コマンドの aws iot describe-endpointを使用するか、AWS IoT コンソールの [Settings] セクションを使用して取得できます。

ggHost

AWS Greengrass エンドポイント。

keepAlive

MQTT KeepAlive 期間 (秒単位)。

オプション。デフォルト値は 600 秒 (10 分) です。

useSystemd

systemd を使用して cgroup を管理します。

システムの init システムが systemd である場合は、systemd を使用して cgroup を管理することを強くお勧めします。

有効な値は、yes および no です。

値を指定する必要があります。

無効な値を指定すると、次のエラーメッセージが返されます: useSystemd [invalid value] is invalid, it should be "yes" or "no".

GGC v1.1.0

設定ファイルを編集するか、/greengrass/config/config.json で新規作成します。

Copy
{ "coreThing": { "caPath": "[ROOT_CA_PEM_HERE]", "certPath": "[CLOUD_PEM_CRT_HERE]", "keyPath": "[CLOUD_PEM_KEY_HERE]", "thingArn": "[THING_ARN_HERE]", "iotHost": "[HOST_PREFIX_HERE].iot.[AWS_REGION_HERE].amazonaws.com", "ggHost": "greengrass.iot.[AWS_REGION_HERE].amazonaws.com", "keepAlive": 600 }, "runtime": { "cgroup": { "useSystemd": "[yes|no]" } } }

フィールド 説明 コメント

caPath

AWS IoT ルート CA 証明書へのパス (/greengrass/certs フォルダを基準とした相対パス)。

ファイルを /greengrass/certs に保存します。

certPath

AWS Greengrass コア 証明書へのパス (/greengrass/certs フォルダを基準とした相対パス)。

ファイルを /greengrass/certs に保存します。

keyPath

AWS Greengrass コア プライベートキーへのパス (/greengrass/certs フォルダを基準とした相対パス)。

ファイルを /greengrass/certs に保存します。

thingArn

AWS Greengrass コア を表すモノの ARN。

iotHost

AWS IoT エンドポイント。

CLI コマンドの aws iot describe-endpointを使用するか、AWS IoT コンソールの [Settings] セクションを使用して取得できます。

ggHost

AWS Greengrass エンドポイント。

keepAlive

MQTT KeepAlive 期間 (秒単位)。

オプション。デフォルト値は 600 秒 (10 分) です。

useSystemd

systemd を使用して cgroup を管理します。

システムの init システムが systemd である場合は、systemd を使用して cgroup を管理することを強くお勧めします。

有効な値は、yes および no です。

値を指定する必要があります。

無効な値を指定すると、次のエラーメッセージが返されます: useSystemd [invalid value] is invalid, it should be "yes" or "no".

AWS Greengrass コアソフトウェアの実行

GGC v1.0.0GGC v1.1.0
GGC v1.0.0

AWS Greengrass コア デバイスで /greengrass から sudo ./greengrassd start を実行します。AWS Greengrass コア デバイスがインターネットに接続されていることを確認します。AWS Greengrass コア デバイスが実行されているかどうかを確認するには、/greengrass/crash.log が空であり、/greengrass/var/log/system/runtime.log に次のようなテキストが含まれていることを確認します。

Copy
[INFO]-Deployment agent connected to cloud [INFO]-Subscribed to topic $aws/things/GGC_Thing-gda/shadow/update/delta [INFO]-Subscribed to topic $aws/things/GGC_Thing-gda/shadow/get/accepted

このテキストは、AWS Greengrass コア デバイスが AWS IoT に接続されていて、デプロイを待機中であることを示します。

GGC v1.1.0

AWS Greengrass コア デバイスで /greengrass/ggc/core から sudo ./greengrassd start を実行します。AWS Greengrass コア デバイスがインターネットに接続されていることを確認します。AWS Greengrass コア デバイスが実行されているかどうかを確認するには、/greengrass/ggc/var/log/crash.log が空であり、/greengrass/ggc/var/log/system/runtime.log に次のようなテキストが含まれていることを確認します。

Copy
[INFO]-Deployment agent connected to cloud [INFO]-Subscribed to topic $aws/things/GGC_Thing-gda/shadow/update/delta [INFO]-Subscribed to topic $aws/things/GGC_Thing-gda/shadow/get/accepted

このテキストは、AWS Greengrass コア デバイスが AWS IoT に接続されていて、デプロイを待機中であることを示します。