AWS Greengrassについてまとめています。
AWS Greengrassで、IoT制御用エッジサーバにデバイスソフトをデプロイ・管理
AWS Greengrassは、IoTエッジデバイス(エッジデバイス)にデバイスソフトウェアを導入し、AWSからIoTデバイスが制御できるようにするサービスです。
関連)AWS IoT Greengrass(AWS をエッジデバイスへシームレスに拡張)| AWS
2021年時点で、370のAWS Greengrass対応のIoTデバイスがパートナー会社からリリースされています。AWS Greengrass対応のデバイスは、AWS Partner Device Catalogのページで、QualificationsのAWS IoT Greengrassにチェックを入れて検索が可能です。
関連)Find IoT hardware that works with AWS | Search by industry, application, features, and more
AWS IoT GreengrassをIoTデバイスは、数百万台規模のデバイスにデバイスソフトウェアをデプロイして管理が可能。デバイスをグループ化して管理できます。また、無線によるIoTデバイスのデバイスウェアアップデートに対応。AWS IoT Greengrass コンソール、API、コマンドラインインターフェイスから、IoTデバイスのAWS IoT Greengrass Core やコンポーネントのバージョンを更新し、セキュリティ更新、バグ修正、AWS IoT Greengrass の新機能のデプロイが可能です。
Greengrassでは、ハードウェアとセキュリティを統合しており、デバイスのプライベートキーをエッジサーバー(IoTデバイス付近に設置する現場用サーバー)のセキュアエレメントに保存するオプションがあります。
AWS Greengrassの構成
AWS Greengrassは、以下のような構成で使用します。
- AWS Greengrass コンソール
- AWS Lambda(サーバサイドの処理)
- Greengrass コアデバイス(エッジサーバー) Greengrass コアソフトウェア
- IoTデバイス(Thing)
AWS Greengrass コンソールは、Greengrass コアデバイス(または、エッジサーバーと呼ばれるケースもあり)と呼ばれる現場のサーバーを通じて、IoTデバイスを制御します。Greengrass コアデバイスには、Greengrass コアソフトウェアという制御用のソフトウェアをインストールするんですね。Greengrass コアデバイスには、LinuxまたはWindowsマシンを使用できます。
また、IoTのサーバサイドの処理には、サーバーレスサービスのAWS Lambdaを割り当てることが可能。
【関連記事】
▶AWS Lambdaとは、サーバレスでコード実行可能なコンピューティングサービス
サーバサイドのLambda、コアデバイス上のパッケージ、IoTデバイス上のプログラムの3つが連携して動作するとイメージすると良いでしょう。
AWS Greengrassの使い方
AWS Greengrassは、AWS マネジメントコンソールから開くことができます。
【関連記事】
▶AWSを集中管理したい!AWS マネジメントコンソールを使いこなそう!
AWSマネジメントコンソールの検索窓に「green」と入力して、検索結果の「IoT Greengrass」をクリックします。
AWS IoT Greengrassの管理画面です。「1つのCoreデバイスをセットアップ」をクリックします。
関連)AWS IoT
「1 つの Greengrass コアデバイスをセットアップする」画面が表示されます。
この画面では、以下の情報を入力します。
- ステップ 1: Greengrass コアデバイスを登録する
- ステップ 2: モノのグループに追加して継続的なデプロイを適用する
- ステップ 3: Greengrass コアソフトウェアをインストール
「ステップ 1: Greengrass コアデバイスを登録する」では、コアデバイス名を入力します。デフォルトでコアデバイス名が生成されるので、特に問題なければデフォルトのままでも構いません。
「ステップ 2: モノのグループに追加して継続的なデプロイを適用する」では、コアデバイスを「モノ=Thing」のグループに追加します。グループの新規作成、既存グループ、グループなしを選択することが可能です。
「ステップ 3: Greengrass コアソフトウェアをインストール」では、コアデバイスにコアソフトウェアをインストールします。コアデバイスには、LinuxかWindowsが選択できます。
例えばLinuxの場合、画面に表示されているコマンドを実行していきます。
下記の環境変数には、アクセスキーとシークレットアクセスキー、IAMロールの一時的なセキュリティクレデンシャルを使用する場合はAWSのセッショントークンを設定します。
【関連記事】
▶AWSのアクセスキーの作成や管理方法 シークレットアクセスキーの確認方法は無い
export AWS_ACCESS_KEY_ID=<AWS_ACCESS_KEY_ID> export AWS_SECRET_ACCESS_KEY=<AWS_SECRET_ACCESS_KEY> export AWS_SESSION_TOKEN=<AWS_SESSION_TOKEN>
以下のコマンドでGreengrassコアソフトウエアをダウンロード&インストールします。なお、インストールには、Java 8ランタイムが前提となっています。
curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip > greengrass-nucleus-latest.zip && unzip greengrass-nucleus-latest.zip -d GreengrassCore sudo -E java -Droot="/greengrass/v2" -Dlog.store=FILE -jar ./GreengrassCore/lib/Greengrass.jar --aws-region us-east-1 --thing-name GreengrassQuickStartCore-17e03b1808c --thing-group-name GreengrassQuickStartGroup --component-default-user ggc_user:ggc_group --provision true --setup-system-service true --deploy-dev-tools true
Coreソフトウェア導入後は、AWSが提供するパブリックコンポーネント、コミュニティで開発されたコンポーネント(GitHubにて共有)、独自開発したマイコンポーネントを組み込むことができるようになります。
AWS Greengrassの料金
AWS Greengrassには、クラウドサービスに接続するAWS IoT Greengrass Core デバイスの数に課金がされます。例えば、米国東部(オハイオ)リージョンでの料金は以下の通りです。
- デバイス 1〜10,000 台 の場合 デバイス1台あたり0.16USD/月
- デバイス 10,000 台超の場合は、要お問い合わせ
関連)料金 – AWS IoT Greengrass | AWS
AWSの他のサービスと連携させる場合は、連携させるAWSのサービスに対して料金が発生します。例えば、以下のサービスとの連携が考えられます。
- AWS IoT Core (接続、メッセージング、およびデバイスシャドウ操作の料金を含む)
- Amazon Kinesis (データストリーミング、スループット容量、データ保持の料金を含む)
- Amazon S3 (ストレージ、リクエスト、およびデータ転送の料金を含む)
- Amazon DynamoDB (データストレージ、スループット容量、データ転送の料金を含む)
AWS Greengrassのまとめ
- AWS Greengrass は、IoT用エッジサーバへのIoT制御ソフトウェアデプロイと制御をおこなうサービス
- エッジサーバには、パブリックコンポーネント、コミュニティコンポーネント、マイコンポーネントを組み込み可能
- AWS Greengrassの料金は、Coreサーバの台数で課金される