第4回 補助的な機能、ローカルリソースアクセスとコネクタ
【第4回 新世代エッジエンジニアのための技術講座 コラム】
この連載コラムでは、AWS IoT Greengrassについて、数回に分けてお伝えします。
本連載は、次のような想定・目的で記述しています。
想定する読者 |
|
想定する読者の 知識レベル |
|
本連載を読んだ後に得られる期待値 |
|
1. AWS Greengrass の機能解説 (後半1)
前回は、アプリケーションロジックの実行 (3)についてご説明しました。
今回は、補助的な機能であるローカルリソースアクセス(6)、コネクタ(7)を取り上げます。
https://member.eureka-box.com/products/4/categories/4011892/posts/13450002
ローカルリソースアクセス(6)
https://www.eureka-box.com/media/column/a45
まず、エッジデバイス上のローカルなリソースへのアクセス(赤枠部分)です。
エッジデバイスのGreengrass Core上で動くアプリケーションロジック(Lambdaファンクション)は、エッジデバイスにつながっているローカルリソースにアクセス(実行、制御など)することができます。
そのためには、使用できるようにアクセス権限を設定しておく必要があります。Lambdaファンクションごとに、どのリソースにどうアクセスできるかの権限を設定する必要があり、権限が付与されていないリソースへのアクセスは許可されません。このアクセス権限の付与は、管理コンソール上で実行します。
ローカルリソースの種類には、エッジデバイスに直接つながるデバイスや、エッジデバイス内のボリュームがあります。
種類 | 対象 | アクセスの例 |
デバイス |
/dev配下のファイル |
|
ボリューム |
ファイルシステム上のフォルダやファイル (/dev、/sys、/varを除く) |
|
Eureka Boxは厚生労働省が実施している助成金、人材開発支援助成金の適用対象となります。
コネクタ(7)
「データの収集と配信」の節で、GreengrassではMQTTという通信プロトコルが使われると説明しました。しかし、MQTTでは通信できないサービスもあります。そこで、GGCでは「コネクタ」というモジュールを用意しています。利用したいコネクタを管理コンソールでGGCに組み込むことで、アプリケーションロジックは、特殊な手順・プロトコルや詳細を意識せずに、簡単に対象にアクセスできるようになります。
https://www.eureka-box.com/media/column/a45
コネクタの種類
MQTT以外のプロトコルを使用するIoTデバイスやクラウド上のサービスとも容易に連携できるよう、さまざまなコネクタが用意されています。具体的には、AWSの各種サービスへのアクセスや、Raspberry PIとGPIOで繋がっているデバイスのコントロール、あるいはTwilio(クラウド上で電話やショートメッセージを利用できるようにするためのサービス)との連携などのコネクタが存在します。以下では、役割ごとに主なコネクタとその概要をまとめます。
AWSサービスとの連携
- CloudWatch Metrics:システム監視/モニタリングサービスCloudWatchへのメトリクスデータの転送
- IoT Analytics:デバイスデータの収集・保存・分析サービスAWS IoT Analyticsへの転送
- Kinesis Firehose:AWSサービス間のデータ転送サービスKinesis Firehoseへのデータ転送
- Docker Application Deployment:GGCにDockerベースのアプリケーションをデプロイ(Amazon ECRなどのコンテナリポジトリに格納されたイメージのダウンロード)
ローカルリソースへのアクセス
- ML画像分類:MLによる画像分類を実行するサービスへのアクセス(Machine Learning SDK※を介してアクセス可能。※第3回「Lambdaファンクションの開発」の項を参照)
- Raspberry PI GPIO:Raspberry PIのGPIOピンの操作
- シリアルストリーム:シリアルポートに対する読み書き
3rdパーティのサービスとの連携
- Twilio通知:VoIPやSMSが実現可能なAPIを提供するサービスTwilioとの連携
コネクタのメリット
コネクタの多くとはMQTTで通信できます。つまり、アプリケーションロジックは、トピックをやり取りする形でコネクタの機能を利用できます。具体例で説明しましょう。
https://www.eureka-box.com/media/column/a45
たとえばTwilioを利用する場合、Twilioとの間で何らかのAPI通信、API操作をしなければなりません。しかし、そのやり取りの詳細はTwilio Connectorに任せてしまえるので、アプリケーションロジックは、標準的な仕組みであるMQTTでコネクタにトピックをPublishすることで、メッセージを送るなどTwilioの操作をすることができます。同様のことがGPIOについても言えます。たとえばボタンを使う場合に、GPIOからデータを読むのはかなり煩雑な操作なのですが、そういった部分の詳細はRaspberry PI GPIO Connectorが処理してくれます。そのため、アプリケーションロジックは、そのコネクタから取得できるトピックをSubscribeし、それに基づいて処理するだけですみます。
今回は、補助的な機能であるローカルリソースアクセス(6)、コネクタ(7)を取り上げました。次回は補助的な機能の続き、デバイスシャドウ(5)、IoTデバイスの機能(8)、最後に管理コンソールとOTA(4)を取り上げます。
これからのエッジエンジニアに求められる技術を知るには
新世代エッジエンジニアのための技術を実際に学んでみたいという方に、まずは無料でお試しいただけるオンライン学習プラットフォームを準備しています。
業務が多忙なエンジニアでも、スキマ時間で効率的に実践的な学習が出来るEureka Boxは、エンジニアの現場の声から生まれたツールです。
ソフトウェア開発を改善するための開発技術を“知り・学び”“実践する”
超実践的オンライン学習プラットフォーム
Eureka Box(ユーリカボックス)
Greengrassを正しく理解した上で適用し、最大限の効果を得られるようスキルアップしたい方にもEureka Box(ユーリカボックス)での学習をお勧めで、無料会員登録だけでも以下の特典が受けられます。
- 各連載コラムの全容、未公開コラムも一気にまとめて読める(一部動画解説付!)
- USDM(要求記述)、MBD(モデルベース開発)、システムズエンジニアリング、AWS Greengrass(新世代エッジエンジニアのための技術講座)など、ソフトウェア開発に関わる知識がギュッと凝縮、困った時のお助けアイテムとしても長期で活用出来る
- ソフトウェア開発に関わる無料お試しコンテンツも充実
デジタル人材が不足している今の時代、特にソフトウェア開発の現場では「上流技術」のスキルを持つ人が必要とされています。
そのスキルが効率よく身につくように設計されたのが「オンライン学習のEureka Box(ユーリカボックス)」
Eureka Boxの運営企業であるエクスモーションは、日本を代表する大手自動車メーカー、医療機器メーカー等、ソフトウェア開発の支援を実際に行っている企業だからこそ、現場で活かせる学びに焦点をあてたプログラムに構成されています。
「Eureka Box(ユーリカボックス)」を是非ご活用ください。