Upgrade to Pro — share decks privately, control downloads, hide ads and more …

IoT-Greengrass-SubDeploy.pdf

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for Yona Yona
February 04, 2026
67

 IoT-Greengrass-SubDeploy.pdf

Avatar for Yona

Yona

February 04, 2026
Tweet

Transcript

  1. AWS IoT Greengrass とは IoT デバイス や 工場機器 (Greengrass Coreデバイス)

    データ/ステータスの送信など 新機能の追加/状態監視など IoT Greengrass S3 IoT Core CloudWatch
  2. デプロイとは IoT デバイス や 工場機器 新機能の追加/設定変更 IoT Greengrass コンポーネント xxx.py

    xxx.py を実行 メッセージの最大サイズは xxx MBまで 認証エンドポイントは xxx を使う
  3. グループA グループB グループC S3にデータ送信 KVSにデータ送信 Amazon SNSにメッセージ 送信 共通 ログ送信

    メトリクス送信 バージョンアップや管理が 楽になる 個別 共通 ログ送信 メトリクス送信
  4. 親デプロイにコンポーネントを追加 【親デプロイ】コンポーネント nucleus aws.greengrass.Cli 【親デプロイ】コンポーネント nucleus aws.greengrass.Cli aws.greengrass.LogManager(追加) 【サブデプロイ】コンポーネント nucleus

    aws.greengrass.Cli 【サブデプロイ】コンポーネント nucleus aws.greengrass.Cli aws.greengrass.LogManager(追加される) demo-device-01 demo-device-01 demo-device-02 demo-device-02 親デプロイ 親デプロイ サブデプロイ サブデプロイ コンポーネント追加 結果: 親デプロイに追加したコンポーネントはサブデプロイにも追加される
  5. 親デプロイのコンポーネントを削除 結果: 親デプロイで削除されたコンポーネントはサブデプロイも同様に削除される 【親デプロイ】コンポーネント nucleus aws.greengrass.Cli aws.greengrass.LogManager 【親デプロイ】コンポーネント nucleus aws.greengrass.Cli

    【サブデプロイ】コンポーネント nucleus aws.greengrass.Cli aws.greengrass.LogManager 【サブデプロイ】コンポーネント nucleus aws.greengrass.Cli demo-device-01 demo-device-01 demo-device-02 demo-device-02 親デプロイ 親デプロイ サブサブデプロイ サブサブデプロイ コンポーネント削除
  6. サブデプロイのコンポーネントを削除、その後親デプロイを更新 結果: サブデプロイの変更は親デプロイへの影響はなし、親デプロイ更新時はサブデプロイに影響がある 【親デプロイ】コンポーネント nucleus aws.greengrass.Cli aws.greengrass.LogManager 【親デプロイ】コンポーネント nucleus aws.greengrass.Cli

    aws.greengrass.LogManager 【親デプロイ】コンポーネント nucleus aws.greengrass.Cli aws.greengrass.LogManager 【サブデプロイ】コンポーネント nucleus aws.greengrass.Cli aws.greengrass.LogManager 【サブデプロイ】コンポーネント nucleus aws.greengrass.Cli 【サブデプロイ】コンポーネント nucleus aws.greengrass.Cli aws.greengrass.LogManager demo-device-01 demo-device-01 demo-device-01 demo-device-02 demo-device-02 demo-device-02 親デプロイ 親デプロイ 親デプロイ サブデプロイ サブデプロイ サブデプロイ コンポーネント削除 親デプロイ更新
  7. 【親デプロイ】コンポーネント nucleus aws.greengrass.Cli 【親デプロイ】コンポーネント nucleus(コンポーネント設定変更) aws.greengrass.Cli 【サブデプロイ】コンポーネント nucleus aws.greengrass.Cli 【サブデプロイ】コンポーネント

    nucleus( ) aws.greengrass.Cli 親デプロイの変更が適用される demo-device-01 demo-device-01 demo-device-02 demo-device-02 親デプロイ 親デプロイ サブデプロイ サブデプロイ コンポーネント設定変更 結果: 親デプロイで変更されたコンポーネントはサブデプロイも同様に変更される 親デプロイのコンポーネントの設定を一部変更
  8. サブデプロイのコンポーネントを設定変更 結果: 当たり前ですがサブデプロイの変更は親デプロイへの影響はありませんでした 検証は次に続きます.. 【親デプロイ】コンポーネント nucleus aws.greengrass.Cli 【親デプロイ】コンポーネント nucleus( )

    aws.greengrass.Cli 影響なし 【サブデプロイ】コンポーネント nucleus( ) aws.greengrass.Cli 設定変更 name: hoge 【サブデプロイ】コンポーネント nucleus( ) aws.greengrass.Cli name: hoge demo-device-01 demo-device-01 demo-device-02 demo-device-02 親デプロイ 親デプロイ サブデプロイ サブデプロイ サブデプロイを設定変更 nucleus name: hoge
  9. 結果: サブデプロイ側で設定変更した場合でも共通コンポーネントであれば、親デプロイ更新時に上書きされま した パターン1(サブデプロイの設定変更の続き) 親デプロイを更新 【親デプロイ】コンポーネント nucleus aws.greengrass.Cli 【親デプロイ】コンポーネント nucleus

    aws.greengrass.Cli 【サブデプロイ】コンポーネント nucleus( ) aws.greengrass.Cli name: hoge 【サブデプロイ】コンポーネント nucleus( ) aws.greengrass.Cli 親デプロイの設定で上書き demo-device-01 demo-device-01 demo-device-02 demo-device-02 親デプロイ 親デプロイ サブデプロイ サブデプロイ 親デプロイを更新 (更新時はreset 例: [/”name”]])
  10. 結果: 共通コンポーネントであっても、親デプロイ更新時にresetを定義しなければサブデプロイの設定は上書き されませんでした。 パターン2(サブデプロイの設定変更の続き) 親デプロイを更新 (resetなし) 【親デプロイ】コンポーネント nucleus aws.greengrass.Cli 【親デプロイ】コンポーネント

    nucleus aws.greengrass.Cli 【サブデプロイ】コンポーネント nucleus( ) aws.greengrass.Cli name: hoge 【サブデプロイ】コンポーネント nucleus( ) aws.greengrass.Cli name: hoge demo-device-01 demo-device-01 demo-device-02 demo-device-02 親デプロイ 親デプロイ サブデプロイ サブデプロイ 親デプロイを更新 (更新時にresetしない)
  11. 結果: 親デプロイ同じ設定項目 (例: name: hoge → test) を変更した場合は親デプロイの設定で上書きされました パターン3(サブデプロイの設定変更の続き) 親デプロイを更新

    (resetなし & 同一項目更新) 【親デプロイ】コンポーネント nucleus aws.greengrass.Cli 【親デプロイ】コンポーネント nucleus( ) aws.greengrass.Cli name: test 【サブデプロイ】コンポーネント nucleus( ) aws.greengrass.Cli name: hoge 【サブデプロイ】コンポーネント nucleus( ) aws.greengrass.Cli name: test demo-device-01 demo-device-01 demo-device-02 demo-device-02 親デプロイ 親デプロイ サブデプロイ サブデプロイ 親デプロイのna meを更新 nu cl eus na me: 未定義→t est (更新時にr es etしない)
  12. 結果: サブデプロイ管理から単体デバイスまたはグループ管理に変更したい場合、一度デプロイキャンセルして新 たな親デプロイとして上書きすることで切り話すことができました 【親デプロイ】コンポーネント nucleus aws.greengrass.Cli 【サブデプロイ】コンポーネント nucleus aws.greengrass.Cli aws.greengrass.LogManager

    【親デプロイ】コンポーネント nucleus aws.greengrass.Cli aws.greengrass.LogManager demo-device-01 demo-device-02 demo-device-02 親デプロイ 親デプロイ サブデプロイ サブデプロイをキャンセル 新たな親デプロイで上書き サブデプロイの切り離し
  13. 親デプロイ(共通コンポーネント) サブデプロイ(個別コンポーネント) サブデプロイ(個別コンポーネント) サブデプロイ(個別コンポーネント) aws.greengrass.Cli aws.greengrass.LogManager 共通コンポーネント aws.greengrass.Cli aws.greengrass.LogManager aws.

    greengrass.StreamManager 共通コンポーネント aws.greengrass.Cli aws.greengrass.LogManager aws.greengrass.SNS 共通コンポーネント aws.greengrass.Cli aws.greengrass.LogManager aws.iot.EdgeConnectorForKVS 懸念点① 依存関係により親デプロイが更新できない 共通コンポーネントのバージョンに依存している場合 親デプロイが更新できない
  14. 親デプロイ(共通コンポーネント) サブデプロイ(個別コンポーネント) サブデプロイ(個別コンポーネント) サブデプロイ(個別コンポーネント) aws.greengrass.Cli aws.greengrass.LogManager 共通コンポーネント aws.greengrass.Cli aws.greengrass.LogManager aws.

    greengrass.StreamManager 共通コンポーネント aws.greengrass.Cli aws.greengrass.LogManager aws.greengrass.SNS 共通コンポーネント aws.greengrass.Cli aws.iot.EdgeConnectorForKVS aws.greengrass.LogManager 懸念点② 個別化できないコンポーネントがある AWS提供のコンポーネントの設定値を サブデプロイごとに個別に設定することはできない
  15. 懸念点③ サブデプロイはマネコンでの管理が難しい 【親デプロイ】コンポーネント nucleus aws.greengrass.Cli 【親デプロイ】コンポーネント nucleus aws.greengrass.Cli aws.greengrass.LogManager(追加) 【サブデプロイ】コンポーネント

    nucleus aws.greengrass.Cli 【サブデプロイ】コンポーネント nucleus aws.greengrass.Cli aws.greengrass.LogManager(追加される) demo-device-01 demo-device-01 demo-device-02 demo-device-02 親デプロイ 親デプロイ サブデプロイ サブデプロイ コンポーネント追加 実際にデプロイされているコンポーネントと、マネコン上に表示されるコンポーネントは必ずしも一致しない 親デプロイの更新に合わせて変更された内容はサブデプロイのマネコン上には表示されない