AWS認定資格 WEB問題集&徹底解説

ソリューションアーキテクト-プロフェッショナル

AWS IoT Greengrass の概要と試験出題ポイントは?

AWSサービスの一つであるAWS IoT Greengrassはどんな内容なのでしょうか?また、AWS認定資格のソリューションアーキテクト-プロフェッショナル(SAP)に合格するためには、サービスのどんなポイントを押さえておけばよいのでしょうか?
ここでは、そんなあなたの疑問に回答していきたいと思います

AWS IoT Greengrass 徹底解説 | AWS認定試験の頻出ポイントまとめ

1. サービス概要

AWS IoT Greengrassは、クラウドとローカルデバイス間のギャップを埋めるエッジコンピューティングプラットフォームです。 デバイス上でAWS Lambda関数を実行し、ローカルのメッセージブローカーでデバイス間通信を可能にし、オフライン時にもローカルで処理と意思決定を実行可能です。 AWS IoT Coreと連携し、クラウドとの間で選択的なデータ同期を行い、帯域幅やレイテンシ、セキュリティ上の要件に応じた柔軟なアーキテクチャ構築を支援します。

ユースケースには、産業機器や自動車、スマートホーム機器などのエッジデバイス上で機械学習推論やローカルイベント処理を行い、必要なデータのみクラウドへ送信するパターンが挙げられます。

2. 主な特徴と機能

2.1 ローカルLambda実行

クラウドへ常時接続せずとも、Greengrass Core(エッジデバイス上のランタイム)でAWS Lambda関数をローカル実行可能。 クラウドでデプロイしたLambda関数をローカルにプッシュし、ネットワーク障害時も継続稼働できます。

2.2 メッセージブローカーとトピックベース通信

ローカルMQTTメッセージブローカーを備え、複数デバイス間でPub/Sub通信をローカルで完結。 これにより、クラウド往復を減らし、レイテンシやコスト削減が可能です。

2.3 オフライン動作とクラウド同期

インターネット接続が不安定またはオフラインの環境でも、ローカルで処理・保存し、再びオンラインになった際にクラウド(IoT Coreや他AWSサービス)との同期を行えます。

2.4 デバイスフリート管理とコンポーネントモデル

Greengrass v2以降はコンポーネント単位で管理可能。Lambda、システムコンポーネント、サードパーティソフトウェアをコンポーネント化し、ローカルデバイスへデプロイ、バージョン管理、ロールバックが簡易化。

2.5 統合と拡張性

AWS IoT Device ManagementやAWS IoT Core、S3、Lambda、SageMaker、Secrets Managerなどとの統合により、スケーラブルなエッジ-クラウドソリューションが構築可能。

3. アーキテクチャおよび技術要素

  1. Greengrass Core(エッジデバイス)上にGreengrassランタイムをインストール。
  2. クラウド側のAWS IoTコンソールでGreengrassグループやコンポーネントを作成し、デバイスにデプロイ。
  3. ローカルでLambda関数やコンポーネントが実行され、MQTTメッセージブローカーでデバイス間通信。
  4. 必要なデータや状態のみクラウドへ同期し、オフライン時もローカルで継続稼働。

4. セキュリティと認証・認可

  • X.509証明書: デバイス認証はAWS IoT Coreと同様にX.509証明書で行い、安全な通信チャネルを確立。
  • AWS IoTポリシー・IAMロール: デバイスがクラウドサービスにアクセスする際の権限を制御。
  • ローカルセキュリティ: デバイス上で機密情報(認証情報、秘密鍵)をSecrets Managerやローカルストレージ(暗号化)で安全に保持。
  • VPCエンドポイント: クラウドとの通信をプライベート接続に限定可能(要アーキテクチャ設計)。

5. 料金形態

AWS IoT Greengrass自体は無料でソフトウェアを利用できますが、クラウド側のAWSサービス利用によるコスト、データ転送料金、Lambda実行、Secrets Managerなどを考慮する必要があります。

  • ローカル実行は無料だが、クラウドリソース使用時の標準料金が適用。
  • 必要に応じて、S3やKinesisなど追加サービス利用時は別途課金。

6. よくあるアーキテクチャ・設計パターン

  • エッジ推論: SageMakerで学習したモデルをGreengrassにデプロイしてデバイス上で推論、結果のみクラウド送信。
  • ローカルイベント処理: センサーイベントをローカルで即時処理、異常時のみクラウド通知。
  • 帯域幅節約: オフラインや低帯域環境でローカルにバッファリングし、オンライン時に必要なデータのみアップロード。
  • 冗長性確保: クラウドダウン時もローカルで業務継続可能。

7. 設定・デプロイ手順(ハンズオン例)

  1. Greengrass Coreソフトウェアをエッジデバイス(Linux系OS)にインストール。
  2. AWS IoTコンソールで証明書発行、デバイスに設定。
  3. Greengrassコンポーネント(Lambda関数やアプリ)をクラウド側で定義。
  4. コンソールまたはCLIからデバイスへデプロイ指示。
  5. デバイス上でローカルLambda実行、MQTTメッセージ交換、クラウド同期確認。

8. 試験で問われやすいポイント

8.1 GreengrassとIoT Coreの違い

  • IoT Coreはクラウド上のメッセージブローカー、Greengrassはローカルでの処理・ブローカー実行が可能。

8.2 オフライン動作

  • インターネット接続がなくてもローカルLambda実行、デバイス間通信維持。

8.3 セキュリティモデル

  • X.509証明書でデバイス認証、AWS IoTポリシーでアクセス制御。

8.4 コンポーネントとデプロイモデル

  • Greengrass v2でコンポーネントベース管理、バージョン管理、依存関係解決。

8.5 ローカルメッセージブローカー

  • Pub/Subモデルでデバイス間通信をローカルに実現、クラウド往復不要。

8.6 機械学習モデルのエッジデプロイ

  • SageMakerで学習→モデルをGreengrass上にデプロイ→低レイテンシ推論。

8.7 コスト最適化

  • ローカル処理でクラウド利用回数減少、通信料節約。

8.8 試験で頻出となる具体的な問われ方と答え

  • Q: GreengrassとIoT Coreの主な違いは?
    A: IoT Coreはクラウド上でメッセージブローカーを提供、Greengrassはローカルデバイス上でLambda実行やローカルブローカーを提供し、オフライン処理が可能。
  • Q: Greengrassでオフライン時にLambdaを実行できる仕組みは?
    A: Greengrass Coreデバイス上にLambda関数をデプロイして実行することで、クラウド接続不要で処理が継続できる。
  • Q: デバイス間通信をローカルで行うメリットは?
    A: クラウド往復が不要となり、レイテンシ低減、帯域幅節約、ネットワーク障害耐性向上を実現。
  • Q: コンポーネントとは何か?
    A: Greengrass v2で導入された単位で、Lambda関数やサードパーティアプリをコンポーネント化し、バージョン管理・依存管理が容易にできる。
  • Q: Greengrassで機械学習モデルをエッジにデプロイする利点は?
    A: エッジ側で低レイテンシ推論が可能になり、クラウドへのラウンドトリップ不要でリアルタイム応答が実現。