メニュー
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 ファイルには以下が含まれています。

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 コア ソフトウェア。

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 コアデバイスへの証明書のインストール

AWS Greengrass コア デバイスは、MQTT over TLS を使用して AWS IoT への安全な接続を確立する必要があります。そのためには、証明書、デバイスに関連付けられたプライベートキー、および AWS IoT ルート CA 証明書を /greengrass/configuration/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. 1AWSGreengrassResourceAccessPolicy</guilabel>] を選択してから、[Next Step] を選択します。

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

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

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

AWS Greengrass コアの設定

設定ファイルを編集するか、/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".

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

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 に接続されていて、デプロイを待機中であることを示します。