執筆
カテゴリー
Tech
Engineer
IoT
IoTチーム日記
趣味
テキスト
投稿日
Sep 8, 2022
みなさまこんにちは。もうりです。
今回は、技術書典13で販売される「AWS Amplify で作る IoT バックエンド — 低コスト‧スケーラブルなシステムを スピーディに構築! —」の書評です。 会社で同じIoTチームに所属している @yuuu (
Yuhei Okazaki
Yuhei Okazaki
) が執筆したものです。 事前にレビューをしたのですが、とても良いものだったので、みなさまにご紹介しようと思います。 ピンときた方はぜひご購入をば!9/11の技術書展会場 or 9/10-9/25のオンラインで販売しています。
AWS Amplifyで作るIoTバックエンド:yuuu
本書は読者の皆様が「AWS Amplifyを使って低コスト・高速にIoTバックエンドを構築できるようになること」を目的に執筆しました。 公式サイトにも記載があるとおり、AWS AmplifyはフロントエンドのWeb・モバイルデベロッパーが フルスタックアプリケーションをすばやく簡単に構築できるようにする専用のツールと一連の機能です。 一見、IoTとは関わりのないサービスに見えますが、Custom AWS Resourcesを利用し、 IoTでの用途に合わせた設計をすることで、IoTバックエンドの構築にも活用できます。 これは、特に実証実験フェーズのIoT開発において非常に重宝します。 本書を通じて、AWS Amplifyを使ってIoTバックエンドを開発する人が増え、 AWS AmplifyやIoT開発がより活発となることを祈っています。 ■取り扱う技術要素 - AWS(AWS Amplify, AWS IoT Core等) - React/Next.js - JavaScript/TypeScript ■対象読者 本書は次のような読者を対象としています。 - IoTシステムに興味がある人 - IoTシステムの企画・開発に関わっている人、もしくは関わる予定のある人 - IoTシステムの実証実験において速く・低コストでバックエンドを構築したい人 ■前提とする知識 本書を読むにあたり、次のような知識が必要となります。 - JavaScript/TypeScriptの知識 - React/Next.jsの知識 - クラウドサービスの基礎知識 - Webシステムにおける通信の知識
AWS Amplifyで作るIoTバックエンド:yuuu

概要

オンラインの販売ページより引用です。

本書のおすすめポイント

一言で言えば、IoTのプロトタイピングを行う際の一つの型を武器として持てる、という点です。
IoTという言葉がメジャーになってしばらく経ちますが、世の中に出ているIoT系の記事は趣味でIoTをやってみたという記事が比較的多く、デバイスは1点もので、管理画面のようなものもありません。 これらの記事ももちろん価値があるものですが、お仕事でIoTのプロトタイピングをしようとしたときにはもう1段階踏み込んだ開発が必要になります。それが、本書で扱うIoTシステムを管理・モニタリングするようなIoTバックエンドです。
しかし、IoTバックエンドを作る記事というのは、あまり見かけるものではありません。IoTシステムを作るとなると、デバイスや通信、データ処理が注目されがちで、管理やモニタリングというのは地味でそれほど新規性が無いものだからかな、と思います。ですが、これをいざ作ろうとすると思ったより時間がかかります。スピード感が求められるIoTプロトタイピングでは、このあたりはサッと終わらせたいものですよね。
本書は、あまり表舞台に現れない裏方、IoTバックエンドというものを、IoTプロトタイピングに必要十分な機能をもたせた状態でスピーディーに作るということを目的としたものです。「ちゃんとした」IoTシステムを作ろうとした際に、必ずや力になってくれると思います!

目次

第1章 AWS Amplify と IoT

実際にものを作る前に、Amplifyの説明や、IoTの実証実験フェーズとの相性の良さについて説明してくれます。 また、IoTの実証実験フェーズに関する制約に関する言及もあり、これから初めてIoTの実証実験を行うという方にも参考になるかと思います。
また、コラムに「AWS Amplify は銀の弾丸ではない」というものがあるのですが、このあたりもちゃんと説明してくれるのは良心的ですね。何事も適材適所!

第2章 認証機能を付けて Web アプリケーションを公開する

目次だけ見ると、いきなりそんなことやるの!?という印象になるかもしれませんが、本書では、ローカルで動くReact製のWebアプリケーションは提供されています(そしてこのクオリティが高いw)。そのため、Amplifyの学習に注力することができ、「今何してるんだっけ?」という状態に陥ることは少ないかなと思います。
本章では、このWebアプリケーションに対して、Cognitoによる認証機能を付けつつ、デプロイする、ということをやります。2章で早くも公開、Amplifyのスピード感が伝わってきます。
ちなみに、Webアプリケーションの部分はMITライセンスとして公開されているので、自身のIoTシステムを作るときにも流用可です。おトク!!

第3章 デバイスの CRUD を実装する

デバイス登録を題材に、GraphQLを使ったCRUD(内部的にはAppSync)を実装します。 CRUDができれば、ほかにもいろんな応用が効くはず。です!

第4章 IoT Core のエンドポイントを表示する

第3章はDynamoDBのデータを読み書きするAPIなのでSchemaを書けばあとはいい感じにしてくれていましたが、独自の処理を書く場合にはそうはいきません。 本章では、IoT Coreのエンドポイントを表示する操作を題材に、GraphQLとLambdaを合わせたAPIの実装を行います。Lambdaが使えるようになればもうほぼ何でもできる!
Lambdaを作る際に、ちゃんとLambdaLayerを作っているのが丁寧ですね。

第5章 X.509 クライアント証明書の CRUD を実装する

IoT Coreで使うX.509証明書のCRUDを実装します。技術的には第4章の応用編のようなイメージでしょうか。 AWSのコンソールに入らずとも、ここだけで管理ができるのは便利ですね!

第6章 デバイスの計測値を表示する

もろもろの管理機能が整ったので、デバイスからデータを送信して(本書では実デバイスの代わりにmockmockという弊社サービスを利用します)、計測値を画面に反映します。 IoT CoreのルールはAmplify標準ではサポートされていないので、Custom AWS Resourcesという仕組みを使って追加します。これができれば(CloudFormationで対応しているものであれば)どんなリソースでも追加できるように!

まとめ

今回で3作目になりますが、今回も非常に高いクオリティでまとめられています。
本書は、IoTの裏方、デバイスの管理やモニタリングといったIoTのバックエンドをAmplifyを利用してスピーディーに開発することを目的としています。 ないがしろにされがちな内容ですが、IoTのプロトタイピングをする上で必ず役に立つと思います。 また、Amplifyの各種機能を順を追って身に付けられるような構成にもなっているので、純粋にAmplifyの学習としても十分役立つと思います。
IoTをちゃんとやろうとしている方、Amplifyとお友達になりたい方、ぜひ本書を頼りにしてみてはいかがでしょうか?
なお、1作目、2作目もおすすめなのでここにリンクを貼っておきます! こちらはIoTの第一歩を踏み出したい方にぜひ!
 
 


 
Loading...