Greengrassの2.14でnucleus liteが追加されました。
軽量が売りです。
これまでのnucleus(マネジメントコンソール上の表記はNucleus Classic)はJavaで実装されていましたが、nucleus liteはC言語で実装されています。
nucleusの全機能が提供されているわけではありません。
2024/12/18時点でnucleus liteがサポートしているAWS提供コンポーネントは以下の通りです。
- CloudWatch metrics
- Secure tunneling
- Stream manager
まだ少ないですね。
参考:https://docs.aws.amazon.com/greengrass/v2/developerguide/public-components.html
とりあえずインストールしてみて、ディスクとメモリの使用量を確認しました。
環境
EC2
- Ubuntu Server 24.04 LTS (HVM), SSD Volume Type
- arm64
- t4.micro(2 vCPU、0.5 GiB メモリ)
- 8GiBストレージ
インストール(Nucleus Classic)
-
左メニューの「Greengrassデバイス」の「コアデバイス」を選択します
「コアデバイスをセットアップ」メニューの「1つのCoreデバイスをセットアップ」を選択します -
コアデバイス名とモノのグループの情報を入力します(とりあえずデフォルトでOK)
-
「Nucleus Classic」を選択します
オペレーティングシステムは「Linux」を選択します
「インストーラのダウンロードでデバイスをセットアップ」を選択します -
「モノを作成」ボタンをクリックします
「接続キットをダウンロード」をクリックしNucleusClassic-connectionKit.zipをダウンロードします
「インストーラをダウンロード」をクリックしgreengrass-nucleus-latest.zipをダウンロードします -
以下のコマンドを実行します
ダウンロードしたファイルはS3に格納し、
s3 sync
でコピーする手順にしていますsudo su - ubuntu
sudo apt update sudo apt install -y unzip default-jdk # AWS CLIをインストール curl "https://awscli.amazonaws.com/awscli-exe-linux-aarch64.zip" -o "awscliv2.zip" unzip awscliv2.zip sudo ./aws/install aws s3 sync s3://637423213562-us-east-1-greengrass/classic/ ./ unzip greengrass-nucleus-latest.zip -d GreengrassInstaller sudo mkdir -p /greengrass/v2 sudo unzip NucleusClassic-connectionKit.zip -d /greengrass/v2 sudo sed -i 's|{{config_dir}}|/greengrass/v2|g; s|{{nucleus_component}}|aws.greengrass.Nucleus|g' /greengrass/v2/config.yaml && sudo -E java -Droot="/greengrass/v2" -Dlog.store=FILE -jar ./GreengrassInstaller/lib/Greengrass.jar --init-config /greengrass/v2/config.yaml --component-default-user ggc_user:ggc_group --setup-system-service true
インストール(Nucleus Lite)
-
左メニューの「Greengrassデバイス」の「コアデバイス」を選択します
「コアデバイスをセットアップ」メニューの「1つのCoreデバイスをセットアップ」を選択します -
コアデバイス名とモノのグループの情報を入力します(とりあえずデフォルトでOK)
-
「Nucleus Lite」を選択します
「パッケージのダウンロードでデバイスをセットアップ (約 1 MB)」を選択します -
「モノを作成」ボタンをクリックします
「接続キットをダウンロード」をクリックしNucleusLite-connectionKit.zipをダウンロードします
「インストーラをダウンロード」をクリックしaws-greengrass-lite-ubuntu-arm64.zipをダウンロードします -
以下のコマンドを実行します
ダウンロードしたファイルはS3に格納し、
s3 sync
でコピーする手順にしていますsudo su - ubuntu
sudo apt update sudo apt upgrade -y sudo apt install -y unzip # AWS CLIをインストール curl "https://awscli.amazonaws.com/awscli-exe-linux-aarch64.zip" -o "awscliv2.zip" unzip awscliv2.zip sudo ./aws/install aws s3 sync s3://637423213562-us-east-1-greengrass/lite/ ./ unzip aws-greengrass-lite-ubuntu-arm64.zip sudo mkdir -p /greengrass/v2 # 以下のファイルが同一ディレクトリ内にあることを確認 ls -l install-greengrass-lite.sh aws-greengrass-lite-0.1.1-Linux.deb NucleusLite-connectionKit.zip sudo ./install-greengrass-lite.sh
メトリクスを確認
CloudWatchメトリクスを確認しました。
一番左が何もインストールしないで起動した状態、真ん中がNucleus Classic、一番右がNucleus Liteです。
-
メモリ使用量(100% = 512MiB)
未インストール Nucleus Classic Nucleus Lite 223.232MiB 317.952MiB 234.496MiB -
ディスク使用量(100% = 8GiB)
未インストール Nucleus Classic Nucleus Lite 2.952GiB 4.624GiB 3.8GiB
確かにメモリとディスクの使用量は抑えられているようです。
まとめ
インストーラーが.deb形式だけの提供なので、Amazon Linux 2023では自前でビルドする必要がありそうです。ただ、エッジデバイス向けOSとしてはRaspberry Pi OSやUbuntuがデファクトなのかもしれません。
それはそうと、インストール手順が簡単になっていて、びっくりでした。