AWS Greengrass とは何ですか?

AWS Greengrass は AWS のクラウド機能をローカルデバイスに拡張するソフトウェアです。このソフトウェアによって、情報源に近いローカルデバイスでデータを収集して分析しながら、ローカルネットワークの他のデバイスと安全に通信できるようになります。より具体的にいえば、Greengrass では開発者がクラウド内でサーバーレスコード (AWS Lambda 関数) を作成し、それをデバイスにデプロイしてローカルでアプリケーションを実行できます。

AWS Greengrass を利用できるのは、どの AWS リージョンですか?

AWS Greengrass は現在、次の AWS リージョンで利用可能です。

• 米国東部 (バージニア北部)
• 米国西部 (オレゴン)
• 欧州 (フランクフルト)
• アジアパシフィック (シドニー)

上記の AWS リージョンにアクセスできるすべてのお客様は、居住地に関係なく AWS Greengrass をご利用いただけます。


Amazon Greengrass をご利用いただけます

今すぐ使用を開始

 

 

AWS Greengrass は顧客にとってどのような価値がありますか?

AWS Greengrass では、ローカルアプリケーションを実行できる IoT デバイスをお客様が構築できます。デバイスはクラウドの AWS Lambda 関数を使ってプログラミングできます。具体的には、Greengrass により、ローカルのイベントやクラウドからのメッセージといったご希望の方法をトリガーとして Lambda 関数をローカルで実行できます。

AWS Greengrass によって、クラウドに接続しなくても、デバイスどうしがローカルネットワークで安全に通信してメッセージを交換できるようになります。さらに、Greengrass でインターネットに接続できなくなったときにメッセージを適切にバッファ処理できるローカルの pub/sub メッセージブローカーを利用できるため、クラウドへのインバウンドとアウトバウンドのメッセージをバッファ処理できます。

AWS Greengrass では、安全なデバイスの認証や許可の機能と安全な接続でユーザーのデータを保護します。いずれもローカルネットワーク内と、ローカルデバイスとクラウド間で行われます。デバイスのセキュリティ認証情報は定義された有効期限まで機能し続けるため、クラウドへの接続が中断されてもデバイスはローカルで安全に通信を継続できます。

AWS Greengrass では、ソフトウェアのバージョンと Lambda 関数を無線で安全にアップデートできるので、デバイス群を手軽に管理できます。このようにして、お客様はデバイス、権限、アプリケーションをクラウドから一元管理しながら、IoT ソリューションをスケールできます。

AWS Greengrass ソフトウェアの主なコンポーネントは何ですか? 各コンポーネントはどのような働きをしますか?

AWS Greengrass は、Greengrass Core と AWS IoT デバイス SDK という 2 つのソフトウェアディストリビューションで構成されています。

AWS Greengrass Core ソフトウェアでは、1) Lambda 関数を使用して作成したローカルアプリケーションをデプロイして実行し、デバイスシャドウから管理できます。2) 安全なネットワークを通して、MQTT プロトコルの pub/sub モデルによってローカル間でメッセージを送受信できるようにします。3) デバイスの認証と許可の機能によってデバイス間やクラウドとの接続を安全に保ちます。4) デバイスレジストリと無線アップデートによって、クラウドからデバイス群を管理できます。

AWS Greengrass Core のデバイス SDK は既存の AWS IoT デバイス SDK の拡張版です。これにより、制約のあるデバイスで Greengrass Core デバイスの検出、接続、通信を実行できるようになります (AWS IoT デバイス SDK を実行するデバイスを、ここでは "デバイス" と呼びます)。

AWS Greengrass Core と AWS IoT デバイス SDK の違いについては次の表を参照してください。

機能

AWS Greengrass Core

AWS IoT デバイス SDK

ロール

ローカルサービス (ストレージなど) の提供、AWS IoT デバイス SDK を実行する AWS Greengrass デバイスの命令と制御

環境とのやり取り

Lambda 関数の実行

はい

いいえ。ただし、AWS Greengrass Core からの呼び出しが可能

実行のトリガー

時間、デバイスやクラウドからのメッセージ

メッセージ、センサー、割り込みなど。

メッセージブローカーの実行

はい

いいえ

ストレージサブシステムの実行

はい

いいえ

最小要件

1 GHz および 128 MB (ユースケースによってはこれ以上必要)

Cloud Discovery あり: C++

Cloud Discovery なし: Node.js、Python 2.7

永続的ローカルストレージ

必須

不要

AWS Greengrass Core デバイスとは何ですか? ハードウェアの最小仕様要件はどのようなものですか?

AWS Greengrass Core ソフトウェアはハブ、ゲートウェイ、その他のデバイスで実行され、クラウドと自動的にやり取りして同期されます。Greengrass Core は、汎用プロセッサーを搭載し、Linux などの汎用オペレーティングシステムを実行できる性能を備えたデバイスで実行されるように設計されています。Greengrass には、1GHz 以上のコンピューティング能力 (ARM または X86 のいずれか)、128MB 以上の RAM に加え、ユースケースに応じて、ご希望の OS、メッセージスループット、AWS Lambda の実行に対応できる追加リソースが必要です。Greengrass Core は汎用性が高く、Raspberry Pi からサーバーレベルのアプライアンスまで幅広いデバイスで実行できます。

Greengrass にはどの Python Lambda をデプロイできますか?

Python 2.7 Lambda ランタイムを使用する Lambda であれば、いずれも Greengrass Core にデプロイできます。Greengrass にデプロイする Lambda は、Greengrass Core SDK と共にパッケージ化する必要があります。 さらに、DynamoDB などの AWS のサービスと簡単にやりとりするために、Lambda のパッケージに AWS SDK を追加することもできます。

注意: Greengrass Core がオフラインモードのときは、Lambda が依存する一部のクラウドサービス (DynamoDB など) を Lambda 関数で利用できず、それらのサービスへの API 呼び出しも失敗します。また、Greengrass Core SDK と AWS SDK の両方を同じパッケージに含める場合は、Lambda 関数でそれぞれの適切な名前空間を使用する必要があります。

AWS IoT デバイス SDK の実行に必要なハードウェアの最小仕様要件はどのようなものですか? デバイス SDK ではどのような言語をサポートしていますか?

TLS をサポートしているデバイスなら、いずれも AWS IoT デバイス SDK を使用できます。AWS Greengrass は、AWS IoT デバイス SDK で C++ によって利用できます。

AWS Greengrass と AWS クラウドサービスとの関係はどのようなものですか?

AWS Greengrass によって、お客様は AWS クラウドと連携するデバイス (異機混在のデバイスを含む) のシステムを構築できるようになります。Greengrass はクラウドの代わりとして設計されたものではなく、オンプレミスにデプロイできるアプリケーションとシステムをクラウドを使用して構築できるようにするツールです。Greengrass は AWS クラウドサービスの拡張機能です。Greengrass を使用してアプリケーションをローカルで実行することにより、一部のデータをローカルで処理して保存しつつ、最も重要なデータはクラウド内で処理して保存できます。 

どのデバイスが AWS Greengrass Core と互換性がありますか? すばやく利用を開始するにはどうすればよいですか?

Greengrass Core は、下記の技術的要件を満たすほとんどのデバイスと互換性があります。 すばやく開始したい場合は、パートナーから次のデバイスのいずれかを購入できます。

ADLink MXE-210 APL-I、CPU: Atom E3845/E3826

ADLink MXE-200、CPU: Atom E3845/E3826

ADLink MXE-1400、CPU: Atom E3845

Advantech EIS-D110、CPU: Celeron J1900

Advantech EIS-D150、CPU: Celeron J1900

Advantech EIS-D210、CPU: Celeron J1900

Advantech ARK-1123、CPU: Celeron E3825

ADLink ARK-1124、CPU: Atom N3350/E3940

Advantech ARK-2121、CPU: Celeron J1900

Advantech ARK-2250、CPU: Core i3/i5/i7

Advantech ARK-3520、CPU: Core i3/i5/i8

Advantech DS-370、CPU: Celeron J1900

Advantech DS-081、CPU: Core i3/i5

Advantech DS-570、CPU: Celeron J1900

Advantech UTX-3115、CPU: Celeron E3826

Advantech UTX-3117、CPU: Celeron E3930

IEI/QNAP TVS-682、CPU: Core i3-6100

Dell 5000 シリーズ、Atom E3825

Digi CC-WMX6UL-START: ConnectCore 6UL Starter Kit

Digi CC-WMX6UL-KIT: ConnectCore 6UL JSK

Digi CC-WMX6-KIT: ConnectCore Wi-i.MX6 JSK

Qualcomm DragonBoard 410C

Raspberry Pi 3 Model B

Samsung Artik 710

Samsung Artik 530

Q: どの CPU アーキテクチャとオペレーティングシステムが AWS Greengrass Core と互換性がありますか?

次のオペレーティングシステムと CPU アーキテクチャが Greengrass Core と互換性があります。

  • オペレーティングシステム: Ubuntu 14.04 LTS、Jessie Kernel 4.1/4.4、およびその他の Linux ディストリビューション (カーネル 4.4 以上)
  • CPU アーキテクチャ: x86_64、Armv7、Aarch64 (ArmV8)

詳細な依存関係の一覧については、次の質問を参照してください。

Greengrass Core を実行するための詳細な技術的依存関係にはどのようなものがありますか?

AWS Greengrass Core は、最小限のハードウェア要件を満たすデバイスの幅広い CPU アーキテクチャおよびオペレーティングシステムで動作するように設計されています。Greengrass Core の実行に必要な依存関係は以下のとおりです。

1. 必須のソフトウェアパッケージと設定

  • SQLite – バージョン 3 以上
  • Python – バージョン 2.7 以上
  • Glibc ライブラリ – バージョン 2.14
  • Linux カーネル – バージョン 4.4.11 以上、OverlayFS 有効
  • boto3 (最新バージョン)
  • botocore (最新バージョン)
  • OpenSSL – バージョン 1.0.2 以上
  • libseccomp
  • bash

 

2. カーネル設定

  • mqueue: CONFIG_POSIX_MQUEUE
  • overlay: CONFIG_OF_OVERLAY
  • overlayfs: CONFIG_OVERLAY_FS
  • seccomp arch filter: CONFIG_HAVE_ARCH_SECCOMP_FILTER
  • seccomp filter: CONFIG_SECCOMP_FILTER
  • seccomp: CONFIG_SECCOMP
  • devpts: CONFIG_DEVPTS_MULTIPLE_INSTANCES

 

3. namespace のカーネル設定 – カーネルは以下の設定を有効にしてビルドする必要があります。

  • IPC の分離: CONFIG_IPC_NS
  • ネットワークの分離: CONFIG_NET_NS
  • UTS の分離: CONFIG_UTS_NS
  • ユーザーの分離: CONFIG_USER_NS
  • PID の分離: CONFIG_PID_NS

 

4. cgroup のカーネル設定 – カーネルは以下の設定を有効にしてビルドする必要があります。

  • cgroups を有効にする: CONFIG_CGROUPS
  • memory cgroup を有効にする: CONFIG_MEMCG
  • freezer cgroup を有効にする: CONFIG_CGROUP_FREEZER
  • devices cgroup を有効にする: CONFIG_CGROUP_DEVICE
  • pids cgroup を有効にする: CONFIG_CGROUP_PIDS