2.2 Greengrassのセットアップ

Greengrassセットアップスクリプトの実行

Cloud9の画面に戻りますので、ブラウザのタブを閉じてしまった場合は、再度Cloud9の環境を開いてください。

Cloud9の画面で、緑色の+を選択し、ポップアップメニューのNew Terminalを選択して、ターミナルのタブを開きます

Greengrass

以降の作業ではコマンドを修正して実行するような作業があるため、同様に New Fileでタブを追加しするとエディタとして利用できますので、作業が楽になります

一時認証情報の取得

この後の手順でAWS IoT Greengrassのセットアップを行うスクリプトを実行するために、クレデンシャル情報(Access Key、Secret Key)を必要とします。

自分の AWS アカウントを利用している場合

利用しているIAMユーザーに発行されているクレデンシャルを利用します。

クレデンシャルがない場合は、こちらのページを参考にキーを発行します。

新たに発行する場合は、ハンズオンが終了した際にクレデンシャルの削除も忘れずに行なってください。

AWS Event Engine で払い出されたアカウントを利用している場合

Event Engine の Team Dashboard > AWS Console から以下のような AWS の認証情報をコピーします。

export AWS_ACCESS_KEY_ID=xxxxx
export AWS_SECRET_ACCESS_KEY=xxxxx
export AWS_SESSION_TOKEN=xxxx

Cloud9のクレデンシャルを無効にする

以降の作業ではAWSのクレデンシャルを環境変数で指定するため、Cloud9の設定を変更します。

右上の歯車のアイコンを選択すると、Preferencesのタグが開きますので、AWS Settingsのメニューを開き、AWS managed temporary credentialsのトグルを無効に変更します。

Cloud9

最後にPreferencesタブを閉じましょう。

環境変数の設定

以下の環境変数を開いたターミナルのタブで設定します

  • AWS_ACCESS_KEY_ID
  • AWS_SECRET_ACCESS_KEY
  • AWS_SESSION_TOKEN
    • 自分のアカウントをご利用の場合は、指定しないで進めます

export AWS_ACCESS_KEY_ID=xxxxx
export AWS_SECRET_ACCESS_KEY=xxxxx
export AWS_SESSION_TOKEN=xxxx

セットアップスクリプトの実行

AWS IoT Greengrassではセットアップ用のスクリプトを利用できますので、そのスクリプトを利用してセットアップします。 Quick Start: Greengrass Device Setup

スクリプトをダウンロードします。

cd ~/environment
wget -q -O ./gg-device-setup-latest.sh https://d1onfpft10uf5o.cloudfront.net/greengrass-device-setup/downloads/gg-device-setup-latest.sh && chmod +x ./gg-device-setup-latest.sh

スクリプトを実行する際に、以下の引数を指定する必要があります。

引数 説明
region リージョン Cloud9と同じリージョンを指定してください
group-name Greengrassのグループ名 handson_YYYYMMDD_Group の様な名前
core-name Greengrass Coreの名前 handson_YYYYMMDD_Core の様な名前

引数を正しく指定し、スクリプトを実行します

sudo -E ./gg-device-setup-latest.sh bootstrap-greengrass \
--region ap-northeast-1 \
--group-name handson_20200501_Group \
--core-name handson_20200501_Core

エラーが出ずに、以下のように表示されれば、Greengrassのセットアップは完了です。

Setup information:

Device info: Linux-4.15.0-1065-aws-x86_64-with-Ubuntu-18.04-bionic
Greengrass core software location: /
Installed Greengrass core software version: 1.10.1
Greengrass core: arn:aws:iot:ap-northeast-1:1234567890:thing/handson_20200501_Core
Greengrass core IoT certificate: arn:aws:iot:ap-northeast-1:1234567890:cert/b39e8dbac3f3e95386bedc4f5544ab5bd3d50b6dd942cf29edde118d352a84ce
Greengrass core IoT certificate location: /greengrass/certs/de118d352a.cert.pem
Greengrass core IoT key location: /greengrass/certs/de118d352a.private.key
Deployed Greengrass group name: handson_20200501_Group
Deployed Greengrass group ID: abfe0943-2890-4781-8807-e9b74acc3967
Deployed Greengrass group version: arn:aws:greengrass:ap-northeast-1:1234567890:/greengrass/groups/abfe0943-2890-4781-8807-e9b74acc3967/versions/9bbbae9d-33ca-45d2-804a-32f00b341935
Greengrass service role: arn:aws:iam::1234567890:role/service-role/Greengrass_ServiceRole
GreengrassDeviceSetup log location: GreengrassDeviceSetup-20200507-084408.log

You can now use AWS IoT Console to manage your Greengrass group.


=======================================================================================

セットアップが終了すると、Greengrassが自動で起動されます。

Greengrassの起動を行いたい場合は、以下のコマンドを使います。

sudo /greengrass/ggc/core/greengrassd start

Greengrassを停止したい場合は、以下のコマンドを使います。

sudo /greengrass/ggc/core/greengrassd stop

セットアップスクリプトでは、以下のようにGreengrassのグループ、Core、Core用の証明書及び、IoT Policyが作成されています。

Greengrass

Greengrassの状態をマネージメントコンソールで確認

Cloud9のタブしかない場合は、左上にあるAWS Cloud9 > Go To Your Dashboardを選択して、新しいタブを開きます。そして、サービスからAWS IoT Coreのコンソールを開きます。

Greengrass

左側のメニューからGreengrass > グループ > 先の手順で指定した、Greengrassのグループを選択します。

Greengrass

グループの詳細でCoreを選択すると、作成したCoreが存在することが確認できます。

Greengrass

この時点ではまだ情報だけが登録されている状態ですので、右上のアクション > デプロイを選択してデプロイを行います。

Greengrass

Coreの検出方法を聞かれるので、自動検出を選択します。

Greengrass

デプロイが終了すると、履歴が追加されます。履歴を選択します。

Greengrass

デプロイの詳細を確認することが出来ます。デプロイに失敗した時は、この画面でエラーを確認します。左上の矢印で前の画面に戻ります。

Greengrass

もう一度Coreを選択し、作成したCoreの詳細を開きます。

Greengrass

左側の接続を選択すると、Greengrassが動いているデバイスのIPアドレスなど確認することが出来ます。

Greengrass

左上の矢印でIoT Coreのコンソールのトップに戻り、管理 > モノと開き、Greengrass Coreの詳細を開きます。

Greengrass

この様に、Greengrass CoreはAWS IoT Coreのモノとして登録されています。 さらに、左側のセキュリティー > 作成された証明書を選択します

Greengrass

証明書の詳細画面で、左側のポリシー > 作成されたポリシーを選択します

Greengrass

ポリシーの詳細画面では、このGreengrass Coreに許可されているAWS IoT Coreの操作が設定されているのが確認できます。

デフォルトでは比較的ゆるいPolicyが設定されていますが、本番環境で利用される場合は、AWS IoT Greengrass のセキュリティのベストプラクティスや、AWS IoT Greengrass コアデバイスの最小限の AWS IoT ポリシーを参考に、適切な権限を設定しましょう。

Greengrass

AWS IoT Greengrassがうまく動かない場合は、トラブルシューティングを参照してください。

この手順での作業は以上となります。